非同时工作时具有相同 IP 延迟的两台设备
Two devices with the same IP delay when working non-simultaneously
我正在努力使我的生产过程自动化。我在一个小型 LAN 中有两台设备,它们都是库存设备,因此它们共享相同的 IP 地址。这个想法是通过 Modbus TCP/IP 打开一个设备上传数据,然后将其关闭。等待 10 秒钟。接下来打开另一台设备并执行相同的操作并更改其 IP 地址。
一切正常,但每次我将 TCP/IP 连接从一台设备切换到另一台设备时,建立连接大约需要一分钟。当他们的IP都设置好了就可以正常工作了,只有IP相同的时候才第一次切换才会有那么长的延迟。
这是为什么?
如果您有 2 台设备共享同一个 IP 地址,您可能会达到 ARP table 限制。 ARP table 负责将 IP 地址转换为 MAC 地址,并且有几分钟的生命周期。当您的计算机打开与从未见过的 IP 的通信时,它会将 MAC 条目缓存到 ARP table,这样它就不需要每次都查找以太网设备。
由于 2 台设备共享一个 IP,您的计算机可能会缓存第一个的 MAC,直到条目过期。
在大多数操作系统上,您可以 运行 arp -a
查看 ARP table 并 arp -d
清除它。如果您在切换后清除 ARP table 并且它立即开始通信,那是您的罪魁祸首。
我正在努力使我的生产过程自动化。我在一个小型 LAN 中有两台设备,它们都是库存设备,因此它们共享相同的 IP 地址。这个想法是通过 Modbus TCP/IP 打开一个设备上传数据,然后将其关闭。等待 10 秒钟。接下来打开另一台设备并执行相同的操作并更改其 IP 地址。
一切正常,但每次我将 TCP/IP 连接从一台设备切换到另一台设备时,建立连接大约需要一分钟。当他们的IP都设置好了就可以正常工作了,只有IP相同的时候才第一次切换才会有那么长的延迟。
这是为什么?
如果您有 2 台设备共享同一个 IP 地址,您可能会达到 ARP table 限制。 ARP table 负责将 IP 地址转换为 MAC 地址,并且有几分钟的生命周期。当您的计算机打开与从未见过的 IP 的通信时,它会将 MAC 条目缓存到 ARP table,这样它就不需要每次都查找以太网设备。
由于 2 台设备共享一个 IP,您的计算机可能会缓存第一个的 MAC,直到条目过期。
在大多数操作系统上,您可以 运行 arp -a
查看 ARP table 并 arp -d
清除它。如果您在切换后清除 ARP table 并且它立即开始通信,那是您的罪魁祸首。