一、UDP用户数据协议
无连接服务。不可靠协议
报头格式:
源端口号 目的端口号 UDP长度 校验和 数据 填充 UDP长度:包括报头和数据以及填充,单位为字节。
校验和:伪首部
源IP地址4字节 目的IP地址4字节 0 1字节 17(表示UDP)1字节 UDP长度2字节
二、TCP传输控制协议
面向连接的可靠性协议。字节流,只适用于单点连接。不适合组播和广播。全双工。
报头格式:
源端口号 目的端口号 序号SEQ 确认序号ACK 数据偏移 4位,单位为4字节 保留 6位 6位 窗口,用于滑动窗口 检验和 紧急指针 选项 填充
数据偏移:单位为4字节,分段之后表示偏移。
保留:目前未使用。
URG:置一表示紧急指针有效。
ACK:只有ACK置一时确认号才有用。
PSH:置一表示无需缓存,直接发送。
RST:置一表示链路连接出现问题,重新建立连接。
SYN:连接建立时使用。
FIN:关闭链路时使用。
窗口:单位字节。
检验和:与UDP类似,增加伪首部,TCP长度包括数据。
紧急指针:偏移量,单位字节,表示有多少的紧急数据。
连接建立,ACK总是为1.
TCP最少20字节,最多40字节。
超时重传技术:采用四个计时器。
重传计时器解决数据包超时未被确认问题:最低为1s
持久计数器解决确认帧丢失情况:比如,接收方先发送一个窗口为0的确认帧,然后发送窗口为1的确认帧,但该帧丢失,结果死锁。
保活计数器:TCP连接分为两种,短连接和长连接,短连接是建立连接,发送数据,断开连接,建立连接,发送数据,断开连接;而长连接是:建立连接,发送数据,发送数据,断开连接。解决长连接问题。
关闭状态计数器:关闭连接使用。
拥塞控制:
四种算法:慢启动,拥塞避免,快速重传,快速恢复。
慢启动:指数增加。
拥塞避免:线性增加。
快速重传:接受三次ACK之后,立即重传。
快速恢复:恢复到慢启动阈值。
cwnd:拥塞窗口
rwnd:接收端窗口
发送端最大数据段尺寸:SMSS
慢启动阈值:ssthresh
三、QUIC协议
QUIC在Google部署