Lwip学习笔记之UDP
Lwip严格按照协议的分层进行管理,每个层之间传送数据都需要进行上下文交换。lwIP所使用的过程模型是:把所以协议封装到一个单一的过程中,从而与操作系统内核分开。应用程序可能也驻留在lwIP处理过程中,或者在单独的过程中。 TCP/IP栈和应用程序之间的通信可以通过函数调用实现,也可以通过更为抽象的API。
关于邮箱
Lwip的消息传递采用了邮箱的机制,邮箱有两种操作:邮寄和提取,邮寄操作不会阻塞进程;邮寄到邮箱的消息由操作系统模拟层排入队列知道另一个进程来提取他们。
关于缓冲
包缓冲pbufs
Pbuf在Lwip中表示一包,Pbuf能在一张列表中被连接到一起,形成一个pbuf链,Pbuf具备三种类型,Pbuf Ram,Pbuf Rom,Pbuf Pool,一个Pbuf链可以包含多种类型的pbuf。
三种类型不同的使用,pbuf_pool主要被网络设备驱动程序使用,当引用程序发送位于北应用程序管理的存储区的数据时,Pbuf_ROM被使用。在pbuf被移交到TCP/IP栈后,数据不能修改,因此命名为Pbuf_ROM。
Pbuf的内部结构
Pbuf的内部结构如下图所示:
变量名 | 作用 |
---|---|
Next | 指向下一个Pbuf的指针 |
Payload | Pbuf数据的起始位置 |
Len | 数据内容的长度 |
Tot_le |