1、 skb->users 与skb->dataref的区别
skb->users:当引用数目增加时,该值和skb->dataref都会增加
skb->dataref:当skb被clone时,只有skb->dataref会增加,而被clone的skb的skb->users=1
2、 pskb->copy与skb->copy
pskb->copy:只拷贝skb数据结构,不拷贝缓冲区内容
skb->copy :拷贝skb数据结构也会拷贝缓冲区内容
3、 skb的操作函数:reverse,put,push,pull,实际上只是修改了指针,并未真正的添加或者删除数据
put: 移动 skb->tail, skb->tail + n, 一般作用是添加数据
reverse: 这个函数移动了skb->data 和skb->tail指针,主要的作用是强制对齐,经常在分配完skb后会立刻被调用
push: 移动 skb->data指针, skb->data - n, 一般作用是 添加协议首部
pull: 移动 skb->data指针, skb->data + n, 一般作用是 删除协议首部
4、 skb 的链表操作函数
skb_queue_head_init: 初始化双向链表
skb_queue_head, skb_queue_tail: 把缓冲区分别添加到队列的头和尾
skb_dequeue, skb_dequeue_tail:把一个元素从队列的首部或者尾部删除
skb_queue_purge: 把队列变为空队列
skb_queue_walk:依次循环运行队列中的每个元素
分享到:
相关推荐
深入理解Linux网络技术内幕(中英文)
1.5 Linux内核结构 1.6 Linux内核源代码 1.7 Linux内核源代码分析工具 第二章 Linux运行的硬件基础 2.1 i386的寄存器 2.2 内存地址 2.3 段机制和描述符 2.4 分页机制 2.5 Linux中的分页机制 2.6 Linux中的汇编语言 ...
linux内核sk_buff结构体详解,从sk_buff结构到流程详细讲解sk_buff结构体
深入分析Linux内核源码 前言 第一章 走进linux 1.1 GNU与Linux的成长 1.2 Linux的开发模式和运作机制 1.3走进Linux内核 1.3.1 Linux内核的特征 1.3.2 Linux内核版本的变化 1.4 分析Linux内核的意义 ...
linux著名的sk_buff结构详解 struct sk_buff可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用。
linux内核skb_buf相关操作介绍
全书共分12章,第1章概述Linux内核组件与内核技术特点,以及网络体系结构实现应用到的内核开发的基础知识。第2~5章在介绍了实现网络体系结构、协议栈、设备驱动程序的两个最重要的数据结构sk_buff和net_device的...
全书共分12章,第1章概述Linux内核组件与内核技术特点,以及网络体系结构实现应用到的内核开发的基础知识。第2~5章在介绍了实现网络体系结构、协议栈、设备驱动程序的两个最重要的数据结构sk_buff和net_device的...
struct sk_buff 可能是linux网络代码中最重要的数据结构,它表示接受或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用。
[1] 全书共分12章,第1章概述Linux内核组件与内核技术特点,以及网络体系结构实现应用到的内核开发的基础知识。第2~5章在介绍了实现网络体系结构、协议栈、设备驱动程序的两个最重要的数据结构sk_buff和net_device...
这是我从网上找的一篇关于Linux内核模块编写的方法,写得很好很详细,适合Linux内核初学者
全书共分12章,第1章概述Linux内核组件与内核技术特点,以及网络体系结构实现应用到的内核开发的基础知识。第2~5章在介绍了实现网络体系结构、协议栈、设备驱动程序的两个最重要的数据结构sk_buff和net_device的...
详细介绍linux内核网络模块中重要的结构体sk_buff
几个月之前做了关于Linux内核版本1.2.13网络栈的结构框架分析并实现了基于Netfilter的包过滤防火墙,这里以内核3.2.1内核为例来进一步分析,更全面的分析网络栈的结构。 1、先说一下sk_buff结构体 这个...
[1] 全书共分12章,第1章概述Linux内核组件与内核技术特点,以及网络体系结构实现应用到的内核开发的基础知识。第2~5章在介绍了实现网络体系结构、协议栈、设备驱动程序的两个最重要的数据结构sk_buff和net_device...
sk_buff 结构 是linux网络协议中重要的结构。
linux下网络重要结构skb_buff的包缓冲过程。是了解网络工作原理的很好的资料。
linux 操作系统的skb_buff 结构的详细介绍
在系统和驱动程序之间定义有专门的数据结构(sk_buff)进行数据的传递。系统里支持对发送数据和接收数据的缓存,提供流量控制机制,提供对多协议的支持。本文简单介绍一下网络设备驱动程序的一些基本要求。
解决 linux下 buff/cache 占用过高的问题解决 linux下 buff/cache 占用过高的问题