Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

TCP_Checksum_Verification

TCP Checksum 验证

默认情况下,只要可能,Wireshark 就会验证数据包的 TCP checksum 是否正确。checksum 无效的 TCP 数据包会被标记出来,在摘要窗格的信息列中显示警告;更重要的是,如果 checksum 为 BAD,这会告诉 Wireshark 该数据包已损坏,并且它不会被包含在任何 TCP_Reassembly 中。也就是说,这些数据包会被 TCP_Reassembly 引擎忽略,重组将无法工作。

TCP checksum 只会对已完整捕获的数据包进行测试,因此对于短数据包,不会验证 checksum。不过话说回来,短数据包无论如何也会被 desegmentation 引擎忽略。

在今天的网络中,除非你的 router 或 switch 有一个带有 sticky bit 的坏 RAM module,否则应该极其极其少见损坏的数据包。即便如此,对于实际确实已损坏的数据包,也应该极其少见看到这种情况。

TCP checksum offloading(大量 checksum 错误)

有些原因可能会让你看到大量 checksum 错误。

如果你在较新的 Ethernet NIC 上进行捕获,可能会看到许多这样的 “checksum errors”。这是因为这些 NIC 上通常实现了 TCP Checksum offloading,因此对于由该机器发送的数据包,checksum 要到数据包由 NIC hardware 发出时才会计算,而这发生在你的捕获工具从 network stack 截获该数据包很久很久之后。

由于这可能造成混淆,并会阻止 Wireshark 重组 TCP segments,因此在这些情况下关闭 checksum 验证是个好主意。

要禁用 TCP checksum 有效性检查,请转到 TCP 首选项,并取消勾选 checksum verification 的复选框

首选项字符串

在可能时检查 TCP checksum 的有效性。

Imported from https://wiki.wireshark.org/TCP_Checksum_Verification on 2020-08-11 23:26:30 UTC

原始页面图片

tcpchecksumchecking.jpg
tcpchecksumchecking.jpg

相关 Wireshark Wiki 页面

网络分析技术档案