各位朋友,
我有一台笔记本电脑和一台塔式机。我在两台电脑上都使用 EtherCAT(通过以太网端口)。但我注意到,如果我拔掉塔式机上的电缆,我会丢失很多帧,而在笔记本电脑上,当我断开以太网电缆时,我可能根本不会丢失任何帧。
我将所有 NIC 设置为 100Mbps 全双工,因为这是 EtherCAT 的最佳配置。
哪些因素会导致它在我的笔记本电脑上运行得更好,而在塔式机上运行得不那么好?
以下项目会影响吗?(您也可以将更多项目添加到列表中)
1)处理器(我有一块 ARM 板,它使用两个 PRU 来处理以太网相关数据,当出现错误时,我几乎不会丢失帧……比如断开的电缆)
2)内存?
3)缓存?
答案1
我对 EtherCat 不太熟悉,但我可以肯定地告诉你,在处理数据负载和错误条件时,并非所有网卡都是平等的。
由于所有部件都位于一块主板上,笔记本电脑中的芯片组很可能与计算机的内部本地总线以及 CPU 的功能有更好的集成,而台式机则可能受益于升级到服务器级网卡(如英特尔)。或者可能是带有不同内置芯片组的主板。
更好的网卡具有板载处理器和/或功能,使其更容错,并且对托管它的计算机的负担更小。它们通常还带有更好的驱动程序。
计算机的 RAM 和缓存不会一定与其在网络上传输数据的速度相关,除非存在实际的瓶颈,并且系统根本无法发送或接收数据,直到再次准备好。
答案2
在 NIC 级别,可能的延迟包括:PHY 自身与电缆均衡速度较慢;丢失或禁用载波检测中断;驱动程序层延迟或消除从接口收到的载波检测状态。可能导致严重延迟的系统问题包括:配置和其他状态(DHCP、NetworkManager、Internet 访问测试等)的丢失和重建;以及在完全初始化之前阻止网络访问的其他服务(防病毒、防火墙、同步等)。
此外,根据我完全非科学的轶事回忆,有些芯片组(Realtek?)的即插即用速度比其他芯片组慢。
无论如何,如果您需要更快地从电缆故障中恢复,您可以在 PC 上测试不同的网卡。或者,您也可以尝试通过链路聚合来防止电缆故障。