skb_buff 布局字段
来源:互联网 发布:深圳软件企业协会 编辑:程序博客网 时间:2024/06/06 06:37
http://www.cnblogs.com/liloke/archive/2011/11/20/2255736.html
一. sk_buff
Linux网络协议栈中主要的缓存类型。定义在include/linux/skbuff.h中,它是一个双向链表的数据结构。它的字段和函数主要分为四大类:
1. 布局字段:与整个sk_buff链表结构相关的字段
2. 通用信息字段:
3. 特性相关字段:
4. 管理功能函数:
二. sk_buff布局字段
为了很快地找到sk_buff链表中的表头,每个链表中都有一个这样的字段:
struct sk_buff_head *list;
这个域是指向sk_buff链表头的指针。
struct sk_buff_head { /* These two members must be first. */ struct sk_buff *next; struct sk_buff *prev; __u32 qlen; spinlock_t lock;};
其中qlen为链表长度,lock是与链表管理相关的字段
整个链表的结构如下:
其他字段如下:
struct sock *sk; L4需要的字段,存储与之相关的socket信息,在其他层该字段为NULL
unsigned int len; buffer中数据的长度,包括head->next指向的主长度和分片长度
unsigned int data_len; 不同于上,该字段只指分片数据的长度
unsigned int mac_len; mac头部长度
atomic_t users; 引用计数,防止在有其他程序引用该buffer时被释放
unsigned int truesize; 表示buffer的所有长度,包括sk_buff结构自身的长度
unsigned char *head; unsigned char *end; unsigned char *data; unsigned char *tail; 这四个指针功能如下
void (*destructor)(...) 当buff被释放时,函数指针可以进行某些工作
三. 通用信息字段
struct timeval stamp; 报文接收的时间
struct net_device *dev; 根据接收到了包或者是要发送包,该指针指向的设备所扮演的角色不同
struct net_device *input_dev; 包是从哪个设备接收的
struct net_device *real_dev; 对于虚拟设备这个字段才是有意义的
union {...} h; union {...} nh; union {...} mac h是L4的头部,nh是L3的头部,mac是L2的头部。在包向上或者向下传递过程中,这些域会被依次有序地设置
struct dst_entry dst; 路由相关的字段
char cb[40]; 存放每层私有的控制数据
unsigned int csum; unsigned char ip_summed 检验和相关状态的字段
unsigned char cloned; 是否是从别的buffer复制过来的
unsigned char pkt_type; 报文类型,详见include/linux/if_packet.h
- skb_buff 布局字段
- skb_buff 结构
- linux skb_buff
- SKB_BUFF说明
- skb_buff分析
- skb_buff结构分析
- SKB_BUFF整理笔记
- SKB_BUFF整理笔记
- SKB_BUFF整理笔记
- SKB_BUFF整理笔记
- 网络设备中的SKB_BUFF
- skb_buff 详解(二)
- 表单布局-三列字段布局演示
- CLR控制字段的布局
- 细说C#中的字段布局
- 修改Webdynpro屏幕字段的布局
- linux skb_buff 解析len, data_len, head, data, tail, end
- 探索CLR原理系列(2):字段在内存中的布局
- 精确计时器
- <备忘1000> ffmpeg命令行使用例子
- ext store.load异步问题
- Exchange接受连接器Default与Client区别
- [Machine learning]SVM实验续
- skb_buff 布局字段
- 代码生成工具
- What is CIF/4CIF/QCIF/D1?
- Eclipse汉化后如何还原为EN英文(实用技巧)
- 游戏中搞定RHCE,不信你来试试
- SQL查询xml内容
- Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
- 浙大毕业演讲 --- 马一浮
- SYN攻击的基本原理、工具及检测方法