UDP首部格式
源端口号 | 目标端口号 |
包长度 | 校验和 |
数据部分 | |
源端口号
表示发送端端口号,长度16位,可选项,如果不需要返回数据数据,可以不设置。
目标端口号
表示接收端端口号,长度16位。
包长度
该字段保存了UDP首部+数据的长度之和,单位为字节。
校验和(可选)
校验和是为了支持可靠的UDP而设计的。虽然它是可选项,但它还是默认使用[RFC1122]。
IPv4头部中的校验和只覆盖整个头部,它在每个IP跳都要被重新计算,因为TTL会在转发是被路由器减少。
UDP计算校验和时,需要计算UDP首部和其他部分。
伪首部+UDP首部+数据 一起计算校验和。
伪首部组成如下:
源IP地址(32位)| 目的IP地址(32位)|填充0(8位)|协议号(8位)|UDP包长度(16位)
为什么要把这个伪首部加进来呢?
TCP/IP通信中有五个要素,源地址IP,目标地址IP,协议号,源端口号,目的端口号。
前三项全部在IP首部中,如果缺少,可能导致收不到包或者收错包,因此有必要加进来一起验证。