答案1
采用补码是为了简化校验和验证——不需要再次计算校验和,然后将计算出的值与报头中的校验和字段(位于求和数据的中间)进行比较,而是可以对报头中所有 16 位字(包括校验和字)求和(使用补码算法),然后将结果与零进行比较。
答案2
答案3
校验结果为零是有问题的,因为所有零也是由断电设备或没有电源的东西产生的。如果结果为全一,则可以更好地保证硬件正常运行。
二进制补码是一个更复杂的术语,用于逐个分析位而不是将其作为整个单元进行分析(即 AND/OR/XOR/NOT)。
答案4
补码运算之所以使用二进制补码,是因为 TCP 是 20 世纪 70 年代为当时的计算机设计的,当时的大多数计算机都使用二进制补码算法。现代计算机使用的二进制补码算法直到 20 世纪 70 年代末和 80 年代的个人计算机才真正开始流行。