udp协议

udp协议

udp协议 包体

image

  1. 源端口 源端口号
  2. 目的端口 目的端口号
  3. 长度 UDP 数据报的长度,包含首部,最小为 8
  4. 检验和 UDP 数据报的校验和,如果接收到检验和不正确的情况下,直接丢弃该报文。

计算校验和算法

UDP 计算校验和的方法和 IP 数据报首部校验和的方法相似。不同的是:IP 数据报校验和只校验 IP 数据报的首部,但 UDP 的校验和是把首部和数据部分一起都检验。

UDP 的校验和需要计算 UDP 首部加数据荷载部分,但也需要加上 UDP 伪首部。这个伪首部指,源地址、目的地址、UDP 数据长度、协议类型(0x11),协议类型就一个字节,但需要补一个字节的 0x0,构成 12 个字节。伪首部+UDP 首部+数据一起计算校验和。

UDP 检验和的计算方法是:
按每 16 位求和得出一个 32 位的数;
如果这个 32 位的数,高 16 位不为 0,则高 16 位加低 16 位再得到一个 32 位的数;
重复第 2 步直到高 16 位为 0,将低 16 位取反,得到校验和。