背景
参考 《LwIP应用开发实战指南》第7章,将 lwip_ping_raw demo 安装到stmf429 单片机后,即使没有任何操作,还是每隔1秒就会收到一个 60 字节的数据包,内容相同,很懵逼,决定搞懂。
测试
在ethernetif.c文件 low_level_input 方法中 添加接收到的数据内容打印代码:
for(int i =0;i < len;i++)printf("%02x",buffer[i]);
printf("\n");
PRINT_INFO("receive frame %d len buffer : %s\n", len, buffer);
获取数据内容是:
ffffffffffffc85ba001d24008060001080006040001c85ba001d240c0a80001ffffffffffffc0a80001000000000000000000000000000000000000
解析数据包
经过解析,这是一个携带 arp 协议的以太网数据包,解析过程如下:

遗留问题
虽然知道这是一个 携带 arp 协议的以太网数据包,但是为什么路由器要以1秒这么快的频率向单片机发送喃?有大神知道,告知一下,这个是我在Stack Overflow的同一个问题贴,欢迎指教:https://stackoverflow.com/questions/67850904/why-the-router-send-arp-packets-to-my-host-at-a-high-frequency 下面是我同一路由器下的mac电脑接收到arp的频率,差不多1秒!


在STM32F429单片机上运行lwip_ping_raw demo时,发现设备每隔1秒会收到60字节的相同数据包。通过打印数据内容分析,确定这是一个ARP协议的以太网数据包。尽管已解析出ARP包,但尚不清楚路由器为何以如此高的频率发送。问题在Stack Overflow上寻求解答。

1718

被折叠的 条评论
为什么被折叠?



