![Linux 应用程序和 NIC 之间的 TCP 校验和错误](https://linux22.com/image/763794/Linux%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%92%8C%20NIC%20%E4%B9%8B%E9%97%B4%E7%9A%84%20TCP%20%E6%A0%A1%E9%AA%8C%E5%92%8C%E9%94%99%E8%AF%AF.png)
我正在编写一个互联网应用程序,目前正处于制作自己的 TCP 数据包的阶段。但有一个主要问题。根据 Linux 中的 TCPDUMP 实用程序,我从任何本地应用程序(如 telnet 和 curl)发送到网络上的任何 IPV4 地址的每个 tcp 数据包都会导致 TCPDUMP 报告校验和错误。
互联网上有几个来源声称这是由于启用了校验和卸载。我尝试了各种网卡,并使用 ethtool -K 禁用了每张卡上的卸载,但无论我怎么尝试,我仍然收到校验和错误。
我甚至用交叉电缆将本地计算机直接连接到目标计算机。这意味着我绕过了路由器和无线连接。
是否有一个 Linux 设置可以调整以修复校验和问题,或者是否有一个比 TCPDUMP 更好的程序可以与所有 Unix 系统一起使用,可以如实地告诉我传出的数据包是否具有正确的校验和?因为肯定不是每个 Linux 应用程序都会制作错误的 TCP 校验和,否则我将无法访问此站点。
有任何想法吗?