多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
* [第6章:网络数据包](第6章:网络数据包.md) * [6.1:TCP/IP协议的分层思想](第6章:网络数据包/6.1:TCP-IP协议的分层思想.md) * [6.2:LwIP的线程模型](第6章:网络数据包/6.2:LwIP的线程模型.md) * [6.3:pbuf结构体说明](第6章:网络数据包/6.3:pbuf结构体说明.md) * [6.4:pbuf的类型](第6章:网络数据包/6.4:pbuf的类型.md) * [6.4.1:PBUF_RAM类型的pbuf](第6章:网络数据包/6.4:pbuf的类型/6.4.1:PBUF_RAM类型的pbuf.md) * [6.4.2:PBUF_POOL类型的pbuf](第6章:网络数据包/6.4:pbuf的类型/6.4.2:PBUF_POOL类型的pbuf.md) * [6.4.3:PBUF_ROM和PBUF_REF类型pbuf](第6章:网络数据包/6.4:pbuf的类型/6.4.3:PBUF_ROM和PBUF_REF类型pbuf.md) * [6.5:pbuf_alloc()](第6章:网络数据包/6.5:pbuf_alloc.md) * [6.6:pbuf_free()](第6章:网络数据包/6.6:pbuf_free.md) * [6.7:其它pbuf操作函数](第6章:网络数据包/6.7:其它pbuf操作函数.md) * [6.7.1:pbuf_realloc()](第6章:网络数据包/6.7:其它pbuf操作函数/6.7.1:pbuf_realloc.md) * [6.7.2:pbuf_header()](第6章:网络数据包/6.7:其它pbuf操作函数/6.7.2:pbuf_header.md) * [6.7.3:pbuf_take()](第6章:网络数据包/6.7:其它pbuf操作函数/6.7.3:pbuf_take.md) * [6.8:网卡中使用的pbuf](第6章:网络数据包/6.8:网卡中使用的pbuf.md) * [6.8.1:low_level_output()](第6章:网络数据包/6.8:网卡中使用的pbuf/6.8.1:low_level_output.md) * [6.8.2:low_level_input()](第6章:网络数据包/6.8:网卡中使用的pbuf/6.8.2:low_level_input.md) * [6.8.3:ethernetif_input()](第6章:网络数据包/6.8:网卡中使用的pbuf/6.8.3:ethernetif_input.md) TCP/IP 是一种数据通信机制,因此,协议栈的实现本质上就是对数据包进行处理,为了实现高效的效率,LwIP数据包管理要提供一种高效处理的机制。协议栈各层能对数据包进行灵活的处理,同时减少数据在各层间传递时的时间与空间开销,这是提高协议栈工作效率的关键点。在BSD的实现中,一个描述数据包的结构体叫做mbuf,同样的在 LwIP 中,也有个类似的结构,称之为 pbuf,本章所有知识点将围绕 pbuf 而展开。 什么是数据包?数据包的种类可谓是五花八门,无奇不有,就比如网卡上的接收到的数据,它可以是一个一千多字节的数据包,也可以是几十个字节的ARP数据包,还有用户的数据,这些数据可能存在RAM、ROM上,重点是这些数据大小不一,可以是几个字节,也看是上千个字节,并且LwIP各层在数据处理的时候极力避免进行数据的拷贝,所以就需要一个数据包这些数据进行统一的管理,使得LwIP处理效率更加高效。 --- # :-: 本书若无授权请勿转载。 ### :-: 欢迎关注杰杰个人微信公众号,干货不断 ![](https://box.kancloud.cn/7969aaf35f492ebb4f68a9b2f4104e04_900x500.png) --- ### :-: 欢迎关注野火官方微信公众号: :-: ![](https://box.kancloud.cn/e1a02427e1a669862668c4324b95a683_648x525.jpg) --- ### :-: 如果合作请加微信(注明来意) ![](https://box.kancloud.cn/13ed72750a0b411e151958ecd78eee8f_599x428.png) --- ### :-: 如果你喜欢本书,感谢赞赏 :-: ![](https://box.kancloud.cn/8f70c554c98dfb6f0cebbf28e8e2f169_1080x1449.png)