UDP校验和中的伪头部

790阅读 0评论2014-03-19 shaohui973
分类:网络与安全

UDP校验和

UDP的校验和包含UDP数据包中所有数据和一个伪头部以及将UDP数据包补足16BIT的整数倍的一个全为0的8BIT字。

计算校验和时,UDP协议先构造一个伪头部(该头部在发送时并不存在),然后将UDP数据包的校验和字段设置为0并连接到伪头部后,将UDP数据包长度补足为16BIT的整数倍,然后按IP协议校验和的计算方法对这个新结构计算校验和并填入校验和字段。UDP伪头部和长度补足部分不会进行传输,其长度也不包含在UDP数据包长度字段内。

 

UDP伪头部格式

0

8

16

31

源IP地址

目的IP地址

0

协议代码(17)

UDP数据包长度

 

其中包含源和目的IP地址,协议代码为UDP协议的代码17。长度字段就是UDP数据包的UDP包长度字段值。

 

UDP伪头部目的是为了让数据包接受者确定发送和接受的UDP数据包是来自正确的源且是发给自己的。由于UDP结构中只包含了源和目的的UDP端口号,而且没有IP地址信息,所以使用伪头部结构来计算校验和以确定数据包的正确性。

上一篇:Kdump & Crash 学习笔记(七)
下一篇:Linux协议栈accept和syn队列问题