DHCP 成功后嵌入式系统的 ARP 请求无响应

DHCP 成功后嵌入式系统的 ARP 请求无响应

我一直致力于使用 Wiznet W5100S 互联网卸载芯片在嵌入式系统上实现 UDP 单播数据包。

他们的库支持 DHCP 协商,我已经成功地从我所连接的网关租用了一个本地 IP 地址。当调用发送 UDP 单播数据包的函数时,如果芯片之前没有执行过此操作的记忆,它将自动发出 ARP 请求。我希望网关能够用它的 MAC 做出响应,但我根本没有得到任何响应,嵌入式系统报告“Dest_Unreach”。

您可以在下面看到 DHCP 协商(数据包 8-14)和失败的 ARP 请求(24):

DHCP 成功,ARP 失败 我正在通过 wireshark 监控一切,并在此处捕获:https://filebin.net/m4x2a2ujezk6hug8

将我的嵌入式系统发出的 ARP 请求与我的笔记本电脑发出的 ARP 请求进行比较,除了我的嵌入式系统有一些尾随填充零之外,结构上没有任何区别。比较如下:

失败的 ARP 与正常工作的 ARP

我想知道 DHCP 中是否有某些东西导致 ARP 失败,但与我的笔记本电脑的协商相比,差别不大,客户端 IP、网关 IP 和子网掩码似乎都正确。

我已经尝试了两个网关以防出现问题,但没有什么区别。

我一直在努力弄清楚这一点,任何帮助都将不胜感激!

答案1

对于其他发现此问题的人:

看来我一直在从路由器接收 ARP 响应。我主要没有意识到 ARP 响应是单播的,因此我根本无法指望在笔记本电脑上运行的 Wireshark 上看到它,因为它不是针对这个的!

相关内容