CRC 错误和 ICMP 数据包丢失相关性

网络工程 以太网 ip 国际会议 数据包丢失
2021-07-17 10:32:47

我有一个关于在 ping 链接中检测物理问题的问题。

假设如下:我的光纤或电缆由于硬件损坏(例如电缆坏或收发器坏)而噪声很大,因此该电缆或光纤将统计生成 X% 以太网帧的 CRC 错误,这是真的?

所以,你能确认我这一点还是告诉我我是否错了:使用大 ping(例如 65k 数据包),一个 ping 将生成大约 65000 / 1500(mtu) = 43 帧,作为 ip 片段,所以通常概率使 ICMP 数据包丢失(因为通常如果丢失一个 IP 片段,整个 IP 数据包都会丢失)大 ping 比小 ping 高?

所以,全局问题是,而 ping 和 ICMP 用于第 3 层问题检测,使用大 ping,我们是否可以更轻松地检测链路上的物理问题?

3个回答

这取决于噪音的类型。如果它是理想的随机噪声,那么是的,更大的数据包会导致更高的丢包率。它表明存在第 1 层问题。在这种情况下,设置较小的数据包大小可能是 TCP 的一种解决方法。

然而,在日常实践中,往往并非如此。特别是收发器问题往往会忘记整个数据包,或者将垃圾发送到光线路。

发送内容为 0x0000 的 10 分钟的 0 间隔 MTU 大小的 DF ping 和内容为 0xffff 的第二次测试是对简单传输技术施加压力的绝佳方式。丢失的数据包——或者在前几个数据包之后过度延迟的数据包——清楚地表明需要进一步调查。这也是检查报告的往返时间是否在合理范围内的好时机(传输提供商很容易提供穿越国家和返回而不是穿越城市的电路)。

Ping 非常适合查找故障。但是,单靠 ping 并不是确定没有故障的很好的验收测试。这个答案的其余部分解释了原因。

作为 ping 测试的一部分,您应该连接路径上的每个网络元素(主机、交换机、路由器),并在开始之前和结束之后记录传输流量和错误计数器。任何类型的上升错误计数器都需要进一步调查。不要忽视错误计数器的小幅上升:即使是低丢失率也会破坏 TCP 性能。

这仍然不是说链接是可以接受的。让我们以单模光纤上的 1000Base-LX 以太网为例。接收器的光照水平可能低于该收发器型号的规范。但是我们有一个高于平均水平的收发器样本,所以一切都很好。但是后来那个收发器出现了故障,我们用低于平均水平但在规格范围内的样本替换了它。即使我们修复了故障,链接也无法恢复服务。因此,作为验收测试的一部分,我们需要检查两端的光照水平是否符合规范;并且我们需要检查在发送和接收收发器性能的极端情况下是否存在可行的功率预算(为了使这变得容易,制造商将给出他们已完成功率预算计算的 SFP 标称范围,例如 10Km 用于 1000Base-LX/LH。但是对于任何超过 10 公里的链路,您应该自己做功率预算:五分钟算术可以为您节省数百美元,让您可以安全地购买低功率 SFP)。SFP 通常具有“DOM”功能,可让您从设备的命令行检查接收光级别。

更复杂的传输技术具有前向纠错功能。因此,链路似乎在高传输错误率下工作,但如果错误率更高或更持久,则 FEC 不堪重负,传输将通过垃圾。因此,对于这些链接,我们对纠错次数非常感兴趣。解释这些 FEC 计数器需要了解物理传输,因为我们现在在“堆栈”中足够低,我们不能再假装媒体不是自然没有错误的。但即使在这些系统中,简单的 ping 测试也足以提供初始结果。

最后,您应该意识到 PC 是一种廉价但并不完美的测试平台。所以有时丢包是因为终端系统而不是传输。这可能是简单的 IP 层问题(例如 MTU 与子网不一致,当主干链路应以 MTU > 9000 运行时总是可能的)或主机性能问题(特别是 > 10Gbps)。“真正的”以太网测试平台的成本非常高,因为您要为通过硬件或智能软件(例如,在 NIC 内运行)完全分类的问题付费。

使用大数据包 Ping 只是为了检查通过此段的 mtu 大小 CRC 错误大多增加,而即使 mtu 值很小,物理层也会出现问题。