首页 理论教育UDP报文格式|计算机网络技术

UDP报文格式|计算机网络技术

【摘要】:UDP 报文由数据字段和首部字段两部分组成,其格式如图8.1所示。图8.1UDP 数据报格式其中,首部包含源端口、目的端口、长度和校验和四个字段,每个字段都是16 位长度。UDP 协议通过校验和来确保报文被送到正确的目的端。所谓伪首部,是因为它并不是UDP报文的真正首部,只是在计算校验和时临时与UDP 报文拼接在一起参与校验和的计算。在接收方,将收到的UDP 数据报连同伪首部一起按二进制反码求这些16 位字的和。图8.2UDP 计算检验和

UDP 报文由数据字段和首部字段两部分组成,其格式如图8.1所示。

图8.1 UDP 数据报格式

其中,首部包含源端口、目的端口、长度和校验和四个字段,每个字段都是16 位长度。

UDP 协议通过校验和来确保报文被送到正确的目的端。UDP 校验和计算有一个与众不同的特点,即校验过程除了覆盖UDP 报文外,还覆盖一个附加头部,称为伪首部,伪首部由来自IP 报头的四个字段(协议、原地址,目的地址和UDP 长度)与填充字段组成。其中,填充字段为全“0”,目的是使伪首部的长度为32 位的整数倍;协议字段就是IP 报头格式中的协议字段,为“17”(表示UDP 协议);UDP 长度字段表示UDP 报文长度。(www.chuimin.cn)

由于UDP 报文包含源端口和目的端口,而伪首部包含源IP 地址和目的IP 地址,因此有些数据传输的差错,可以通过UDP 协议的校验和检查出来。所谓伪首部,是因为它并不是UDP报文的真正首部,只是在计算校验和时临时与UDP 报文拼接在一起参与校验和的计算。伪首部既不向下传送也不向上递交。

UDP 报文校验和的计算方法与IP 首部校验和的计算方法相似,但不同的是:IP 数据报的校验和只检验IP 数据报的首部,但UDP 的校验和是将首部和数据部分一起都检验。在发送方,首先将全“0”放入检验和字段,再将伪首部以及UDP 数据报看成是由许多16 位字串接起来。若UDP 数据报的数据部分不是偶数个字节,则要填入一个全“0”字节。然后按照二进制反码计算出这些16 位字的和。将此和的二进制反码写入检验和字段后,就发送这样的UDP数据报。在接收方,将收到的UDP 数据报连同伪首部一起按二进制反码求这些16 位字的和。当无差错时,结果应为全“1”;否则,就表明数据存在差错,接收方便丢弃这个UDP 数据报(也可以向上交付,但附上出现差错的警告)。不难看出,这种简单的差错检测方法虽然检错能力不强,但好处是简单,处理速度快。图8.2 给出了一个计算UDP 检验和的例子。

图8.2 UDP 计算检验和