我正在尝试使用java套接字。我可以连接到套接字并发送/接收数据字节而不会出现问题。但是我也在使用wireshark嗅探流量,并注意到来自java套接字的每个数据包都被wireshark标记为“tcp校验和错误。”
任何人都有见解?
java版“1.6.0_12” Java(TM)SE运行时环境(版本1.6.0_12-b04) Java HotSpot(TM)客户端VM(版本11.2-b01,混合模式,共享)
Wireshark v1.0.6 w / WinPcap 4.0.2
答案 0 :(得分:13)
我发现在很多情况下,使用像Wireshark这样的工具会在本地数据包上给你不正确的tcp校验和。
这是因为操作系统明智地不会浪费在发往本地主机的数据包上填充tcp校验和的努力(毕竟它们可能不正确)。
此外,在真实物理接口上传出的本地生成的数据包可能还有硬件生成的tcp校验和。这意味着发送数据包通常看起来像是错误的校验和(在线上,它们是正确的)。
在交换机上设置一个监控端口,在与其连接的单独机箱上运行Wireshark,您将看到真实的图片。
答案 1 :(得分:7)
这在Wireshark wiki here中有记录。