基本信息
User Datagram Protocol 用户数据报协议
基于IP的简单协议,不可靠的协议。
优点:简单,轻量化。
缺点:没有流控制,没有应答确认机制,不能解决丢包、重发、错序问题。
应用程序可以自己实现可靠的数据传输
报文结构
Ports 端口
数量理论上最多有:2^16个,端口号范围在0~65535。
端口 0 是保留的,但如果发送进程不需要响应消息,则端口 0 是允许的源端口值。
Length 长度
此字段 表示 header 和 data 的总长度,单位为 字节
最小长度为 8 个字节,即 header 的长度。
理论限制最大值为 65535 字节(8 字节标头 + 65,527 字节数据)。
但是,IPv4 协议施加的数据长度的实际限制为 65,507 字节(65,535 字节 - 8 字节 UDP header - 20 字节 IP header )
使用 IPv6 jumbograms 可以拥有大小大于 65,535 字节的 UDP 数据报。如果 UDP 标头加上 UDP 数据的长度大于 65,535,则 Length 字段设置为零。
Checksum 校验和
校验和字段可用于对 头部和数据 进行错误检查(整个报文都参与校验和计算)。
此字段在 IPv4 中是可选的,在 IPv6 中在大多数情况下是必需的。
如果未使用,则该字段带有全零。
IPv4 pseudo header - IPv4 伪头部
pseudo header 不是真正用于发送的 header,他仅用于校验和计算。
源地址和目标地址是 IPv4 头部中的地址。
协议是 UDP 的协议:17 (0x11)(List of IP protocol numbers)