SKB(套接口缓存)

     SKB直接影响网络处理的性能:

              能够方便处理可变长缓存,因为接收和发送的数据报长度不是固定的。

              能够很容易地实现在头尾部添加和移除数据,因为这些缓冲区需要在不同网络层次间进行传递。

              在添加和移除数据时能够尽量避免数据的复制。

 

              SKB的主要用途是保存在进程和网络接口之间互相传递的用户数据,以及其他一些(如套接口选项等)。

 

     SKB操作函数及宏涉及一下文件:

              include/linux/skbuff.h,SKB结构定义和SKB宏。

              net/core/skbuff.c,操作SKB的函数。

     sk_buffer的成员可大致分为一下几类:

              与SKB组织相关的成员变量。

              通用成员变量。

              标志性变量。

              与特定相关的成员变量。

 

       协议栈中的每一层在往下一层传递SKB前,首先就是调用skb_reserve()在数据缓冲区头部预留出的空间。

 

       向上层协议传递SKB时,内核不会将首部从数据缓冲区中删除,而是把有效载荷指针指向上层协议的首部。

 

       内核编译之后,由某些选项所控制的数据结构是固定的而不是动态变化的。一般来说,如果某些选项修改了内核数据结构,则包含该选项的组件就不能被编译成内核模块。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值