如何调试丢失的数据包

如何调试丢失的数据包

我有两个 Linux 系统,它们的以太网接口通过电缆直接连接。

有时,我们会遇到两台设备之间不稳定的通信。在这种情况下,我会在两端运行 ping 和 tcpdump。我看到的情况是,一个系统上的 tcpdump 有时显示 icmp echo 请求从一个接口发出,但另一端的 tcpdump 并未显示收到该请求。前几次发生这种情况时,我们将其归咎于电缆故障,但现在这种情况发生得太频繁了,无法将其归咎于电缆。此外,关闭接口并重新打开或拔下电缆并重新插入可以解决问题。

那么我该如何从这里进行调试呢?在发送端,tcpdump 在哪里挂接到堆栈?在 tcpdump 显示数据包已发送后,数据包会发生什么情况,导致其无法传出线路?

在接收端,如何获取由于 CRC 校验失败或类似原因而被悄悄丢弃的以太网帧的信息?

答案1

装上交换机。检查。然后更换一侧网络,然后更换另一侧。看起来是其中一个设备上的网络端口坏了。基本上 - 消除缓慢。如果管理得“足够”,交换机可能会有所帮助(在中间的计数器中显示丢包)。

相关内容