Linux 应用程序和 NIC 之间的 TCP 校验和错误

Linux 应用程序和 NIC 之间的 TCP 校验和错误

我正在编写一个互联网应用程序,目前正处于制作自己的 TCP 数据包的阶段。但有一个主要问题。根据 Linux 中的 TCPDUMP 实用程序,我从任何本地应用程序(如 telnet 和 curl)发送到网络上的任何 IPV4 地址的每个 tcp 数据包都会导致 TCPDUMP 报告校验和错误。

互联网上有几个来源声称这是由于启用了校验和卸载。我尝试了各种网卡,并使用 ethtool -K 禁用了每张卡上的卸载,但无论我怎么尝试,我仍然收到校验和错误。

我甚至用交叉电缆将本地计算机直接连接到目标计算机。这意味着我绕过了路由器和无线连接。

是否有一个 Linux 设置可以调整以修复校验和问题,或者是否有一个比 TCPDUMP 更好的程序可以与所有 Unix 系统一起使用,可以如实地告诉我传出的数据包是否具有正确的校验和?因为肯定不是每个 Linux 应用程序都会制作错误的 TCP 校验和,否则我将无法访问此站点。

有任何想法吗?

相关内容