发布时间:2013-05-07 10:17:39
一:kb_reserve函数会在缓冲区的头部预留一些空间,通常允许插入一个抱头,或者强迫数据对其某个边界。static inline voidskb_reserve(structsk_buff*skb,int len){skb->data +=len;skb->tail +=len;}二:函数skb_push会把一个数据块添加到缓冲区的开端,函数的代码为:static inline unsigned char *__skb_push(.........【阅读全文】
发布时间:2012-06-15 16:15:21
内核版本是2.6.32. 在内核中sk_buff表示一个网络数据包,它是一个双向链表,而链表头就是sk_buff_head,在老的内核里面sk_buff会有一个list域直接指向sk_buff_head也就是链表头,现在在2.6.32里面这个域已经被删除了。 而sk_buff的内存布局可以分作3个段,第一个就是sk_buff自身,第二个是linear-data buff,第.........【阅读全文】
发布时间:2012-06-15 16:11:08
第一部分:skb - Linux network buffersskb——Linux网络缓存Harald Welte laforge@gnumonks.org1.3, 2000/10/14 21:27:02 ---------------------------------------------------------------------Short description about the linux network buffers (skb's) -------------------------.........【阅读全文】
发布时间:2011-04-06 12:21:07
sk_buff 功能函数应用 skbuffs是那些linux内核处理网络分组的缓存。网卡收到分组后,将它们放进skbuff,然后再传送给网络堆栈。网络堆栈一直要用到skbuff。skb支持的功能函数主要描述一下sk_buff层最重要的一些功能函数。分配、释放、复制、克隆、扩展等功能函数。.........【阅读全文】
发布时间:2011-04-06 12:18:05
一. SKB_BUFF的基本概念1. 一个完整的skb buff组成(1) struct sk_buff--用于维护socket buffer状态和描述信息(2) header data--独立于sk_buff结构体的数据缓冲区,用来存放报文分组,使各层协议的header存储在连续的空间中,以方便协议栈对其操作(3) struct skb_shared_info --作为header data的补充,用于存储ip分片.........【阅读全文】