用户UDP协议
UDP数据包结构
- 源和目的端口号:用于UDP实现复用与分解
- 长度字段:在UDP报文段中的字节数(首部和数据的总和)
- 校验和:接收方用来检测该报文段是否出现了差错。
计算校验和:
- 对所有参与运算的内容(包括UDP报文段)按16位(16位对齐)求和;
- 求和过程中遇到的任何溢出(即进位)都被回卷(即进位与和的最低位再加);
- 最后得到的和取反码;
TCP报文结构
TCP链接管理
链接建立——三次握手:
SYN链接请求
SYNACK去人
ACK确认
TCP三次握手建立链接过程
TCP的可靠数据传输实现机制包括差错编码、确认、序号、重传、计数器等。
TCP的可靠数据传输是基于滑动窗口协议,但是发送窗口大小动态变化。
封装TCP报文段
发送一个报文段后启动一个计时器
通过校验和发现数据差错
通过序号重新排序,丢弃重复的报文段
流量控制
TCP协议利用窗口机制实现流量控制,但不是简单的滑动窗体协议。
TCP链接建立时,双方都为之分配了固定大小的缓冲空间;TCP的接受段只允许另一端发送其缓冲区所能接纳的数据。
接受端再给发送到发送确认段时,通告接受窗体大小
发送端在接下来发送数据段时,确保未确认段的应用层数据总量不超过接收端通告的接收窗体大小,从而确保接收端不会发生缓存溢出。