NIC 停止接收 20% 的数据包

NIC 停止接收 20% 的数据包

我使用基于 RTL8111C 的网卡连接到千兆 LAN。它位于 Gigabyte GA-P43-DS3 上。在过去 3 周内,我注意到我的传输速率从通常的 40-60 MB/s(使用 NAS 通过 SMB)下降到大约 2-10 MB/s。我以为服务器可能做了一些带宽限制,但从任何其他 PC 上看,传输速率都正常。

我更换了 PC 的电缆,并尝试了交换机的不同端口。当我使用 Wireshark 检查流量时,我注意到存在 TCP 错误,例如重复的 ACK。后来,我使用 iperf 检查了传输速率,它与我通过 SMB 复制文件时一样低,所以问题一定出在网络上。

当我通过 UDP 进行测试时,结果显示大约有 10-20% 的数据包被丢弃。有趣的是,如果我在交换机上使用编号较低的端口,错误率会高得多。(例如,端口 1:21% 对比端口 8:11%)

我认为传输速率下降是因为传输过程中丢失了数据包,因此 TCP 减慢了传输速度。我还注意到这些错误率仅适用于接收数据包。计算机可以几乎零丢失地发送数据包。

我使用不同的电缆和计算机检查了网络,发现每种组合都运行正常。丢包率约为 1/460,000 个数据包(接近 0%)。

NIC 停止接收数据包是否很常见?为什么我在交换机上使用哪个端口很重要?


更新:我使用 Linksys SD2008 交换机。我用已知良好的 PC 和电缆尝试了它的所有端口。无论我使用哪种组合,都没有问题,只有受影响的 PC 有问题。我很确定它的 NIC 出现故障。我只是想知道我使用哪个端口有什么关系。可以测量端口之间的差异,但只能使用受影响的 PC。

更新 2:我使用的是 Windows 7 x64,但我检查了 Linux(Fedora 12 x64),得到了类似的结果,所以这不太可能是驱动程序问题。SD2008 端口分为 2 个 4 端口组。无论我使用哪个组,都会出现此问题。但是,我仍然不明白为什么编号较低的端口的错误率会更高……

答案1

额外的诊断肯定指向有故障的 NIC,特别是因为当您使用不同的操作系统尝试相同的硬件时问题是一致的,但其他系统完全不受影响。

回答您的第一个问题 - NIC 完全故障并不罕见(出于其他原因,服务器中具有冗余甚至多重冗余 NIC 实际上是强制性的),但部分故障也是可能的,尤其是在物理层电路和机械部件中。在标准(使用 RJ45 连接器的 1000BaseT)千兆以太网 NIC 上,四对信号触点、模拟/数字转换器、滤波器、前馈均衡器、回声消除器或时钟(以及可能的其他东西)中的任何一个出现问题都可能导致这些问题,而不一定导致 NIC 完全故障。结果通常是信噪比性能差很多,并且会导致数据包丢失,因为两端的解码器都会收到明显有错误的数据。

回答你的第二个问题,这类涉及网络物理层模拟电路的问题可能会导致你在端口间看到的错误模式变化。当一切都按规范工作时,每个端口的信噪比处理能力很可能仍然有很大差异,只是所有端口至少都足以处理 GigE 信号而没有 [显著] 错误,因此差异是不可见的(也是无关紧要的),但当你添加一个不合标准的外部设备时,差异就会变得明显。

如果您想要真正地测试一下,请尝试使用一些短电缆和很长的电缆来测试系统,看看是否有区别,如果问题在于网卡的信噪比太低,那么错误率会随着电缆长度的增加而变得更糟。

答案2

在家庭网络上,交换机上使用哪个端口并不重要(企业交换机有一些更复杂的设置,但这听起来不像您的设置)。

网卡出现故障并不常见,但确实时有发生。如果你没有更改 PC 上的驱动程序,那么这似乎表明存在某种硬件问题,可能是 NIC 故障,也可能是电源问题

相关内容