TCP/IP 中的二进制反码求和算法

 更新时间:2012年04月03日 13:08:20   转载 作者:  
对于这个算法,很多书上只是说一下思路,没有具体的实现。我在这里举个例子吧
以4bit(计算方便一点,和16bit是一样的)做检验和来验证。

建设原始数据为 1100 , 1010 , 0000(校验位)

那么把他们按照4bit一组进行按位取反相加。 1100取反0011 , 1010取反是0101,0011加上0101 是1000,填入到校验位后

1100 , 1010 , 1000

那么这个就是要发送的数据。收到数据后同样进行按位取反相加。0011+0101+0111 =1111;全为1表示正确


另外注意,当地一步计算校验和的时候,有可能相加后最高位会有进位,那么不能舍弃,一定要加到低位,才能是结果正确。

相关文章

最新评论