IP校验和,位数不足

时间:2012-11-03 22:20:09

标签: ip checksum

我必须计算并验证IP数据包的校验和(我正在用C编写路由器)。表示IP头的结构具有16位校验和,但结构中的总位数不能被16整除 - 它是8位短。

我的问题是这个。我是否一次读取16位结构并用零填充最后一组位来计算校验和?

1 个答案:

答案 0 :(得分:0)

如果您的位数错误,则将零位填充到数据的 end

然而,IP计算标头字段,因此始终具有16位的倍数,用于计算校验和。 TCP有时在数据末尾需要额外的零字节。

http://en.wikipedia.org/wiki/IPv4_header_checksum