UDP (User Datagram Protocol) 是一个无连接的、不可靠的传输层协议。 [RFC 768]

  • 主要特点:
    • 无连接:发送数据前不需要握手。
    • 尽力而为:不保证可靠交付,不使用拥塞控制。
    • 面向报文:不对应用层交付的报文进行拆分或合并,保留报文边界。
    • 首部开销小:仅 8 字节。

UDP 报文格式

  • 源端口:2 字节。
  • 目的端口:2 字节。
  • 长度:2 字节,UDP 用户数据报的总长度(首部 + 数据)。
  • 校验和:2 字节,检测报文段在传输中是否出错。

UDP 校验和

重点 UDP 校验和的计算涵盖了伪首部、首部和数据部分。

  • 伪首部:包含源 IP、目的 IP、全 0、协议字段(17)和 UDP 长度。仅用于计算校验和,不向下传递。
  • 计算方法:二进制反码求和。
    1. 将段内容处理为 16 比特整数序列。
    2. 计算所有 16 比特整数的和(最高位进位回卷加到最低位)。
    3. 最后结果取反。
  • 接收方:计算接收段的校验和,若结果不为全 1(或按不同实现判断),则检测到差错。