`
yunfuby1
  • 浏览: 10193 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

深入理解Linux内核网络技术内幕之关键数据结构--skbuff

阅读更多
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网络技术内幕(中英文)

    深入理解Linux网络技术内幕(中英文)

    深入分析Linux内核源码.chm

    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结构体详解

    linux内核sk_buff结构体详解,从sk_buff结构到流程详细讲解sk_buff结构体

    深入分析Linux内核源码

    深入分析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结构详解

    linux著名的sk_buff结构详解 struct sk_buff可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用。

    linux下的sk_buff

    linux内核skb_buf相关操作介绍

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part5

    全书共分12章,第1章概述Linux内核组件与内核技术特点,以及网络体系结构实现应用到的内核开发的基础知识。第2~5章在介绍了实现网络体系结构、协议栈、设备驱动程序的两个最重要的数据结构sk_buff和net_device的...

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part3.rar

    全书共分12章,第1章概述Linux内核组件与内核技术特点,以及网络体系结构实现应用到的内核开发的基础知识。第2~5章在介绍了实现网络体系结构、协议栈、设备驱动程序的两个最重要的数据结构sk_buff和net_device的...

    sk_buff结构小谈

    struct sk_buff 可能是linux网络代码中最重要的数据结构,它表示接受或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用。

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part4.rar

    [1] 全书共分12章,第1章概述Linux内核组件与内核技术特点,以及网络体系结构实现应用到的内核开发的基础知识。第2~5章在介绍了实现网络体系结构、协议栈、设备驱动程序的两个最重要的数据结构sk_buff和net_device...

    Linux内核模块的编写

    这是我从网上找的一篇关于Linux内核模块编写的方法,写得很好很详细,适合Linux内核初学者

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part1

    全书共分12章,第1章概述Linux内核组件与内核技术特点,以及网络体系结构实现应用到的内核开发的基础知识。第2~5章在介绍了实现网络体系结构、协议栈、设备驱动程序的两个最重要的数据结构sk_buff和net_device的...

    sk_buff详解.pdf

    详细介绍linux内核网络模块中重要的结构体sk_buff

    Linux内核??与sk_buff有关重要数据结构

    几个月之前做了关于Linux内核版本1.2.13网络栈的结构框架分析并实现了基于Netfilter的包过滤防火墙,这里以内核3.2.1内核为例来进一步分析,更全面的分析网络栈的结构。  1、先说一下sk_buff结构体  这个...

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part2.rar

    [1] 全书共分12章,第1章概述Linux内核组件与内核技术特点,以及网络体系结构实现应用到的内核开发的基础知识。第2~5章在介绍了实现网络体系结构、协议栈、设备驱动程序的两个最重要的数据结构sk_buff和net_device...

    sk_buff 结构分析

    sk_buff 结构 是linux网络协议中重要的结构。

    Linux-Skb_buff.rar_linux s_linux skb_linux skb结构_skb_buff

    linux下网络重要结构skb_buff的包缓冲过程。是了解网络工作原理的很好的资料。

    Linux skb_buff 结构的详细介绍

    linux 操作系统的skb_buff 结构的详细介绍

    编写Linuxc操作系统设备驱动程序概述

    在系统和驱动程序之间定义有专门的数据结构(sk_buff)进行数据的传递。系统里支持对发送数据和接收数据的缓存,提供流量控制机制,提供对多协议的支持。本文简单介绍一下网络设备驱动程序的一些基本要求。

    解决 linux 下 buffcache 占用过高的问题.docx

    解决 linux下 buff/cache 占用过高的问题解决 linux下 buff/cache 占用过高的问题

Global site tag (gtag.js) - Google Analytics