sk_buff 目录 1 sk_buff 介绍 2 sk_buff 组成 3 struct sk_buff 结构体 4 sk_buff 成员变量 4
1 Layout 布局 4
2 General 通用 4
3 Feature-specific 功能相关 5 sk_buff 管理和操作函数 5
1 缓冲区操作函数 skb_reserve skb_put skb_push skb_pull 5
2 发送tcp 报文示例 5
3 缓冲区分配、克隆和释放函数alloc_skb skb_clone pskb_copy skb_copy kfree_skb 1 sk_buff 介绍 sk_bu ff(socket bu ffer)结构是 linu x 网络代码中重要的数据结构,它管理和控制接收或发送数据包的信息
2 sk_buff 组成 Packet data:通过网卡收发的报文,包括链路层、网络层、传输层的协议头和携带的应用数据,包括 head room,data,tail room 三部分
skb_shared_info 作为 packet data 的补充,用于存储 ip 分片,其中 sk_bu ff *frag_list 是一系列子 skbu ff 链表,而 frag[]是由一组单独的 page 组成的数据缓冲区
Data bu ffer:用于存储 packet data 的缓冲区,分为以上两部分
Sk_bu ff:缓冲区控制结构sk_bu ff
整个 sk_bu ff 结构图如图 1
图1 sk_buff 结构图 3 stru ct sk_bu ff 结构体 /* struct sk_buff - socket buffer */ struct sk_buff { /* These two members must be first
*/ struct sk_