两台设备非同时工作时IP延迟相同

问题描述

我正在致力于自动化我的生产过程。我在一个小型 LAN 中有两台设备,它们是库存的,因此它们共享相同的 IP 地址。这个想法是通过 Modbus TCP/IP 打开一个设备上传数据然后关闭它。等待 10 秒钟。接下来启动另一台设备并执行相同操作并更改其 IP 地址。

一切正常,但每次我将 TCP/IP 连接从一台设备切换到另一台设备时,建立连接大约需要一分钟。设置好IP后就正常了,只是IP相同的第一次切换才造成这么长的延迟。

这是为什么?

解决方法

如果您有 2 台设备共享相同的 IP 地址,您可能会达到 ARP 表限制。 ARP 表负责将 IP 地址转换为 MAC 地址,并且有几分钟的生命周期。当您的计算机与一个从未见过的 IP 打开通信时,它会将 MAC 条目缓存到 ARP 表中,这样它就不需要每次都查找以太网设备。

如果 2 个设备共享一个 IP,您的计算机可能会缓存第一个的 MAC,直到条目过期。

在大多数操作系统上,您可以运行 arp -a 来查看 ARP 表并运行 arp -d 来清除它。如果您在切换后清除 ARP 表并且它立即开始通信,那就是您的罪魁祸首。