<aside> 💡 UDP: 用户数据报协议(User Datagram Protocol)

</aside>

Untitled

UDP报文格式

Untitled

UDP校验和

<aside> 💡 接收方自己计算校验和,判断(取反后)与发送方发来头部中的校验和是否相等,如果不相等说明一定出错(但相等也不代表一定没出错(残存错误))

</aside>

Untitled

<aside> 💡 UDP的校验和算法是一种简单的一位反码求和算法

</aside>

校验和判断步骤:

  1. 将UDP数据包中的数据按16位(两个字节)进行划分,如果数据长度为奇数,则在最后一个字节后补0,使得每个字节都有对应的16位。
  2. 对所有16位的数据进行二进制求和。
  3. 如果结果超出了16位,则将高位溢出的部分加到低位中(进位回滚)
  4. 累加和和校验和相加得到0xffff(16bits全为1),校验成功,否则失败。

Untitled