LWIP架构及LWIP协议栈

1、不管是裸机还是OS ,都分为三个模块

上层
协议栈(包括发数据)
收数据

下面只考虑收数据在中断中.
OS 这三者之间是 通过 mbox 通信 ,sem 同步的.这三者分别属于三个线程(其中一个是中断)
裸机三者之间是通过函数调用实现的,这三者在同一个线程内.(其中一个是中断)

2、上层 协议栈 收数据之间的关系

上层调用 api 并引用协议层
api 分为 netconn api, socket api, raw api

协议栈调用 mac_send 接口发送数据

中断处理函数收数据,并引用协议栈.

这里模块之间的关系说了两个关键字,调用和引用
调用就是函数调用
引用对于OS来说是mbox,对NO OS来说是 函数调用

3、协议栈分层及函数调用流程图
LWIP架构及LWIP协议栈

数据链路层包括了 mac 芯片的驱动及 arp模块.
ip层包括了 ip模块 icmp模块
传输层包括了 tcp udp