TCPDUMP中有太多不正确的校验和错误


23

我发现在GNU Linux 64位服务器上完成的TCPDUMP中有太多不正确的校验和错误。出口中有接近50%的不正确支票校验码?

cksum 0xe61f(不正确(-> 0x8c37)

我们如何解释这些数据?它对性能有很大影响吗?


4
使用tcpdump --dont-verify-checksums忽略这些。
威廉2014年

Answers:


31

由于称为TCP校验和卸载的功能,您会看到“错误的”校验和。传出TCP数据包的校验和字段不是由操作系统预先计算的,而是设置为0,并留给NIC处理器计算。该Wireshark的常见问题有一个更详细的解释。


我看到了,但这是特定于“如果具有不正确的TCP校验和的数据包都是由运行Wireshark的计算机发送的”,并且尚不清楚有多少合法校验和失败会影响网络性能。
维沙尔

4
您应该只在机器发送的数据包上看到错误的校验和。这不是Wireshark特有的,任何在此级别工作的数据包捕获软件都将产生类似的结果。如果您看到接收到的数据包的校验和失败,则可能确实存在问题-这些数据包被TCP堆栈丢弃并触发重传以及拥塞控制算法-这将直接影响数据吞吐量。
the-wabbit 2011年

校验和错误仅在发送的数据包上。谢谢!
维沙尔

我看到需要重新组合的大型传入SMB数据包的校验和不正确。tcpdump打印带有“不正确的校验和”的第一个数据包以及注释“警告:数据包在以后的TCP段中继续”。然后再有几个带有“不正确的校验和”,后跟注释““ SMB-over-TCP数据包:(原始数据还是继续?)”的文件。我想如果所有后续数据包中的第一个数据包中的校验和都是正确的数据包(实际上在tcpdump获取校验和值的地方没有校验和)已重组为整个≤64KiB整体
David Tonhofer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.