分类: 网络与安全
2014-03-18 14:09:21
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地址信息,所以使用伪头部结构来计算校验和以确定数据包的正确性。