UDP 首部格式

UDP 首部格式_第1张图片

源端口:
表示发送端端口,字段长度16位。可选项,有时候可能不会设置源端口号。没有源端口号的时候该字段的值设置为0。可用于不需要返回的通信中。

目标端口:
表示接收端端口,字段长度16位。

包长度:
该字段保存了UDP首部的长度跟数据长度之和。单位为字节(8位的字节),实际最大长度不可能超过65507字节 2^16(635535) - 8字节UDP报头 − 20字节IP头部

校验和:
校验和是为了提供可靠的UDP首部和数据。
如果不使用校验和,该字段应被填充为全0。这种情况下,由于不进行校验和计算,协议处理的开销就会降低,从而可以提高数据转发的速度。
在计算校验和时,为了能够计算校验和,需要在UDP数据包前添加一个“伪首部”( 如下图)。伪首部包括了IPv4头部中的一些信息,但它并不是发送IP数据包时使用的IP数据包的头部,而只是一个用来计算校验和而已。接收主机在收到UDP报文以后,从IP首部获悉IP地址信息构造UDP伪首部。在进行校验和计算。

UDP 首部格式_第2张图片

计算UDP伪首部的理由

识别一个通信应用需要5个因素。"源IP地址"、"目标IP地址"、"源端口"、"目标端口"、"协议号"。UDP首部只包含了(源端口和目标端口),用此来校验,如果其他三项信息被破坏,极有可能导致应收包应用收不到,不应该收包的应用收到。

为此,有必要在通信中,验证这5项的识别码是否正确,就引入了伪首部的概念。

你可能感兴趣的:(TCP/IP)