我们有一个在 Windows XP Embedded SP1 上运行的产品。我们在 ARP 表中为假 IP 添加了一个假的(不存在的)MAC 地址。当发生通信时,Windows 会将数据包发送到假的 MAC 和假的 IP,然后我们在驱动程序中将其更改为真实的 MAC 和 IP。这就是软件的设计方式。
问题是,有时 Windows 会开始发送虚假 IP 的 ARP 请求,即使 ARP 表中有该 IP 的条目。我不知道为什么会发生这种情况,为了重现这个问题,我编写了一个脚本来删除 ARP 条目,并在几秒钟后再次添加它。经过几次尝试,我发现问题发生了。
关于我应该检查/更改什么,您有什么想法吗?
多谢!
答案1
您是否正在目睹 ARP 探测?(https://www.rfc-editor.org/rfc/rfc5227#section-2.1)
您也可以尝试关闭免费的 ARP 请求...不幸的是,我不确定如何在嵌入式 XP 上做到这一点(以下是在 Win2K8/Vista 上做到这一点的方法 -http://www.windowsreference.com/networking/set-gratuitous-arp-requests-in-windows-server-2008-and-windows-vista/)。如果网络接口发生更改,或者您的网络段广播中有重复的 IP 和/或 MAC 地址,这肯定会成为一个问题。
祝你好运!
授予