lwip:网络数据包读取和解析过程

时间:2023-03-08 16:12:09

1. 程序的某处(poll or interrupt)在有数据可读时调用ethernetif_input,该函数依次调用以下函数:

1.1 low_level_input(),将网络数据读入内存;

1.2 netif->input(),解析数据包。

在以太网上,netif->input就是ethernet_input;对于非以太网,netif->input是ip_input。两者区别主要在于是否处理ARP以及其他以太网相关的数据包。

此处需注意的是,netif->input返回后pbuf头和包内容可能已被修改,不要再使用这个pbuf和其中的内容。