LWIP数据包管理

一、LWIP数据包简介

具体流程为:

  • 用户要发送的数据;
  • 申请pbuf内存:一般使用的是内存堆(内存池也可以)。内存堆包含了pbuf结构体、以及后面要拷贝的数据和三种层的首部;
  • 将数据拷贝到pbuf数据缓冲区;
  • 发往到应用层,添加应用层首部;
  • 发往传输层,添加传输层首部;
  • 发往网络层,添加网络层首部;
  • 最后将pbuf交给 TX 描述符管理的缓冲区,然后调用以太网管理的DMA,发往TX FIFO当中,然后递交给MAC内核,由MAC内核借助介质接口转发到PHY设备当中;

LWIP是通过指针的偏移来实现首部的添加的,pbuf用于LWIP各层间的数据传递,避免了各层间拷贝数据;而标准的TCP/IP协议是每次经过下一层首部时则需要通过拷贝上一层的数据。 

 总结:LWIP是一种模糊分层的TCP/IP协议栈,数据传输效率大大提高 

二、LWIP网络数据包pbuf的结构体 

 

 其中:

  • payload指针就是用来进行将数据偏移,然后按顺序一步步偏移到应用层、传输层、网络层的首部。
  • 数据包pbuf的类型有四种: 

 

三、LWIP网络数据包pbuf的相关函数 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值