一、网络数据包简介
TCP/IP是一种数据通信机制,因此,协议栈的实现本质上就是对数据包进行处理,为了实现高效的效率,lwIP数据包管理要提供一种高效处理的机制。协议栈各层能对数据包进行灵活的处理,同时减少数据在各层间传递时的时间与空间开销,这是提高协议栈工作效率的关键点。在lwIP中它称之为pbuf。

pbuf用于lwIP各层间的数据传递,避免了各层间拷贝数据
二、lwIP与标准TCP/IP协议栈区别
| 标准TCP/IP协议 | lwIP协议栈 |
|---|---|
| 严格分层 | 模糊分层 |
| 数据传输层层拷贝 | 对数据直接操作 |
| 数据包私有 | 数据包共享 |
| 效率低 | 效率高 |
| 数据处理要求低 | 数据处理要求高 |
| 完整的TCP/IP协议栈 | 较完整的TCP/IP协议栈 |
lwIP是一种模糊分层的TCP/IP协议栈,数据传递大大提高
三、lwIP网络数据包结构
/* pbuf.h */
struct pbuf
{
struct pbuf *next; /* 指向下一个节点 */
void *payload; /* 指向数据区域 */
u16_t tot_len; /* 总长度 */
u16_t len; /* 当前pbuf数据区域大小 */
u8_t type_internal; /* pbuf的类型 */
LWIP_PBUF_REF_T ref; /* 引用计数 */
/* .............. */
};

四、lwIP网络数据包类型

注意:这些pbuf可以多种类型的组合分配
五、lwIP网络数据包函数

pbuf_alloc()函数



lwIP是一种轻量级的TCP/IP协议栈,与标准协议栈不同,它采用模糊分层并优化数据包处理,减少了数据拷贝,提高了效率。pbuf是lwIP中用于数据传递的结构,具有链式结构和引用计数等特性,允许灵活处理和减少内存开销。pbufAlloc()是用于分配pbuf的函数。
532

被折叠的 条评论
为什么被折叠?



