1 UDP协议报文结构
2 UDP数据递交流程
用户发送数据为例:
(1)申请一个pbuf。(pbuf游走于应用层、传输层、网络层)。
struct pbuf {
struct pbuf *next; // 指向链表中的下一个pbuf
void *payload; // 指向数据缓冲区的指针
u16_t len; // 缓冲区的长度
u16_t tot_len; // 整个数据包的总长度(如果pbuf是链表的一部分)
// ... 可能还有其他字段
};
(2)拷贝(把用户数据拷贝到pbuf的数据区)。
(3)调用RAW相关接口将pbuf递交给传输层。
(4)在传输层设置UDP相关字段,递交给网络层。
(5)在网络层添加IP的首部。