为什么 TCP 校验和被反转?

Ran*_*lue 1 tcp specifications checksum

维基百科页面

校验和字段是标题和文本中所有 16 位字的补码和的 16 位补码。

为什么在对标头和文本中的 16 位求和后,要采用补码来计算 TCP 校验和?

Ser*_*sov 8

取补码是为了使校验和验证更简单——而不是再次计算校验和,然后将计算出的值与标头中的校验和字段(位于求和数据的中间)进行比较,而是可以求和(使用一个补码算术)标头中的所有 16 位字(包括校验和字)并将结果与​​零进行比较。