在我们的系统中,三台主机都连接到同一个以太网交换机,如下图所示:
A (192.168.0.21, WIN10_1809) <-> Switch <-> B (192.168.0.100, Debian Linux 9)
^
|
C (192.168.0.201, WIN10_1809)
Run Code Online (Sandbox Code Playgroud)
在这些主机中的任意两台之间,都会定期进行网络通信,包括低级 ping 操作和上级业务消息(基于 TCP 或 UDP)。
偶尔(例如一天或两天一次)主机 B 和主机 C 会发现主机 A 无法通过 ping 操作(将持续约 7 秒)而主机 A 在 ping 主机 B 和主机 C 时没有问题。同时,与主机 A 相关的上层 TCP 或 UDP 通信也会失败,而主机 B 和主机 C 之间的通信则完全正常。
问题出现在我们公司的多个系统上,看起来网络硬件(已更换交换机和连接电缆)和网络流量(即使系统空闲且带宽使用率低于 1% 的情况下仍会出现问题)没有对问题作出重大贡献。
然后,通过使用Wireshark检查系统中的网络流量(通过以太网交换机捕获,下载),我们发现ping请求已经发出而没有收到响应:
No. Time Source Destination Protocol Length Info
1455 1.509228 192.168.0.100 192.168.0.21 ICMP 98 Echo (ping) request id=0x6812, seq=1/256, ttl=64 (no response found!) …Run Code Online (Sandbox Code Playgroud)