LwIP是什么:
LwIP是轻量级TCP/IP协议栈。
TCP/IP协议栈数据的封装与解封装:
发送端在最上层产生用户数据,之后经过应用层、传输层、网络层,这几层对数据的首部进行添加控制信息,到达数据链路层后,添加首部和尾部控制信息,最终通过物理层传输出去。
接收端接收到来自物理层的数据后,就是将首部和尾部进行一层层的拆除,最终获取到用户数据。
LwIP的结构框图:
当用户准备好数据后,首先在应用层选择相应的协议,如图中的HTTP、MQTT等;之后选择应用层与传输层的接口,如图中的netconn、RAW、Socket等;之后选择传输层的协议、传输层与网络层的接口;之后选择网络层的协议、网络层与数据链路层的接口;之后数据链路层添加控制信息,通过数据链路层与物理层直接的协议进行交互。
ST的ETH框架:
当网络层的数据到来时,该数据会保存到一个缓冲区中;之后数据通过以太网DMA传输到TX FIFO中;之后转发到MAC内核后,数据从网络层数据转变成以太网帧;之后MAC内核通过RMII或RMII将数据发送到PHY;最后PHY通过光/电信号将数据发送到网络中。