tcp - 为什么TCP/UDP checksum最后补齐了?

标签 tcp checksum

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

最佳答案

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

关于tcp - 为什么TCP/UDP checksum最后补齐了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7641977/

相关文章:

hadoop - 如何判断一个大文件是否已经在我的hdfs集群中?

javascript - 与Node.js的长连接,如何减少内存使用,防止内存泄漏?还与 V8 和 webkit-devtools 相关

java - Netty 客户端无法从非 Netty 服务器读取响应

embedded - 充分利用糟糕的 "checksum"算法

Java - 编译期间找不到类 Checksum

java - 使用加密哈希函数之前和之后

http - 服务器每秒处理 70 个请求,每个请求的响应时间小于 50 毫秒

c++ - boost io_service 初始化 SIGSEGV

java - 我应该如何正确地将 mp3 转换为字节数组,然后将其转换回 mp3

checksum - 为什么 web3.js 拒绝有效的 RSK 智能合约地址?