为什么TCP / UDP校验和最终得到补充?

时间:2011-10-03 23:59:01

标签: tcp checksum

在TCP / UDP中,发送方xors 16位字和最终结果再次补充以获得校验和。现在,这样做是为了接收器将使用数据和校验和重新计算校验和,如果结果都是1,那么可以肯定(好吧,几乎!)没有错误。我的问题是为什么我们必须在发件人处对结果做最后的补充。我们也可以这样发送它,以便当接收方重新计算校验和时,它必须检查所有零,而不是像其他情况那样检查所有零。

2 个答案:

答案 0 :(得分:3)

因为0具有特殊含义。它用于指示要忽略校验和计算。

答案 1 :(得分:0)

这样接收器就可以只对所有数据(包括校验和字段)进行1的补码求和,看看它是否为-0 (0xffff)