全部博文(140)
发布时间:2014-03-05 20:55:20
在内核中sk_buff表示一个网络数据包,它是一个双向链表,而链表头就是sk_buff_head,在老的内核里面sk_buff会有一个list域直接指向sk_buff_head也就是链表头,现在在2.6.32里面这个域已经被删除了。 而sk_buff的内存布局可以分作3个段,第一个就是sk_buff自身,第二个是linear-databuff,第三个是paged-databuff(也就是skb.........【阅读全文】
发布时间:2014-03-05 20:54:23
一: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(.........【阅读全文】
发布时间:2014-03-05 19:44:24
套接字缓冲区重要的数据结构 skb->truesize,skb->len,skb-datalen,size,skb_data_align(size)的区别?......【阅读全文】