使用端口(Port)来标记不同的网络进程
端口(Port)使用16比特位表示(0~65535)
udp协议详解
UDP(User Datagram Protocol:用户数据报协议)
是一个非常简单的协议
数据报(Datagram):不合并、不拆分
UDP的长度由应用层决定,应用层传递的越长,UDP协议就越长
UDP的首部:
UDP的特点:
- 面向无连接的协议
- 不能保证可靠的交付数据
- 面向报文传输
- 无拥塞控制
-
首部开销很小
tcp协议详解
TCP(Transmission Control Protocol:传输控制协议)
TCP协议特点:
- 面向连接
- 点到点的通信
- 提供可靠的传输服务
- 提供全双工通信
- 面向字节流
TCP协议的头部:
可靠传输的基本原理
停止等待协议:
超时定时器:
每发送一个消息,都需要设置一个定时器
停止等待协议是最简单的可靠传输协议
停止等待协议对信道的利用率不高
连续ARQ协议:
ARQ(Automatic Repeat reQuest:自动重传请求)
tcp协议的可靠传输
TCP的可靠传输基于连续ARQ协议
TCP的滑动窗口以字节为单位
选择重传:
需要指定需要重传的字节
每一个字节都有唯一的32位序号
tcp协议的流量控制
流量控制指让发送发发送速率不要太快
流量控制是使用滑动窗口与来实现的
坚持定时器:
当接收到窗口为0的消息,则启动坚持定时器
坚持定时器每隔一段时间发送一个窗口探测报文
tcp协议的拥塞控制
流量控制考虑点对点的通信量的控制
拥塞控制考虑整个网络,是全局性的考虑
慢启动算法:
拥塞避免算法:
tcp连接的三次握手(建立)
tcp连接的四次挥手(释放)
等待计时器:
为什么需要等待2MSL:
套接字与套接字编程
套接字(Socket)是抽象的概念,表示TCP连接的一端
通过套接字可以进行数据发送或接收
服务端和客户端的过程: