CSDN论坛 > Linux/Unix社区 > 内核源代码研究区

问一个sk_buff的问题 [问题点数:0分]

Bbs1
本版专家分:0
结帖率 100%
CSDN今日推荐
Bbs1
本版专家分:0
Bbs5
本版专家分:2296
Blank
蓝花 2004年10月 Linux/Unix社区大版内专家分月排行榜第三
Bbs1
本版专家分:0
匿名用户不能发表回复!登录|注册
其他相关推荐
sk_buff详细介绍
struct sk_buff可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用。  // 这个结构被网络的不同层(MAC或者其他二层链路协议,三层的IP,四层的TCP或UDP等)使用,并且其中的成员变量在结构从一层向另一层传递时改变。 // L4向L3传递前会添加一个L4的头部,同样,L3向L2传递前,会添加一个L3的头部
sk_buff 详解(一)
/* socket buffers,简称skb,中文名字叫套接字缓存。 它作为网络数据包的存放地点,使得协议栈中每个层都可以对数据进行操作,从而实现了数据包自底向上的传递。 该结构维护一个收到的或者要发送的网络包。但其本身并不包含存放网络包的数据的存储区。 存储区是另外单独分配的内存空间,但该结构说明了如何访问存储区空间,如何维护多个存储区空间以及存储网络包解析的成果。 所有的sk_buff是通
struct sk_buff详解
sk_buff是Linux网络代码中最重要的结构体之一。它是Linux在其协议栈里传送的结构体,也就是所谓的“包”,在他里面包含了各层协议的头部,比如ethernet, ip ,tcp ,udp等等。也有相关的操作等。熟悉他是进一步了解Linux网络协议栈的基础。       此结构定义在头文件中,结构体布局大致可分为以下四部分: l       布局(layout) l  
sk_buff封装和解封装网络数据包的过程详解
可以说sk_buff结构体是Linux网络协议栈的核心中的核心,几乎所有的操作都是围绕sk_buff这个结构体进行的,它的重要性和BSD的mbuf类似(看过《TCP/IP详解 卷2》的都知道),那么sk_buff是什么呢?       sk_buff就是网络数据包本身以及针对它的操作元数据。       想要理解sk_buff,最简单的方式就是凭着自己对网络协议栈的理解封装一个直到以太层的数据帧并
skb_buff结构分析
struct sk_buff { /* These two members must be first. */ struct sk_buff  *next;  //这两个变量让sk_buff     struct sk_buff  *prev;  //构成双向的链表           struct sk_buff_head *list;  //指向链表的头 struct sock  
Socket--->Sock--->sk_buff 关系
Socket--->Sock--->sk_buff socket的接收和发送缓存是使用一个双链表将sk_buff组织起来 struct socket { socket_state state; kmemcheck_bitfield_begin(type); short type; kmemcheck_bitfield
struct sk_buff结构体详解
struct sk_buff是linux网络系统中的核心结构体,linux网络中的所有数据包的封装以及解封装都是在这个结构体的基础上进行。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
sk_buff有关的几个重要的数据结构
1。sk_buff结构体这个结构体是套接字的缓冲区,详细记录了一个数据包的组成,时间、网络设备、各层的首部及首部长度和数据的首尾指针。下面是他的定义,挺长struct sk_buff { /* These two members must be first. */ struct sk_buff *next; struct sk_buff *pr
sk_buff整理笔记(三、内存申请和释放)
内核对于sk_buff结构的内存分配不是和一般的结构动态内存申请一样:只分配指定大小的内存空间。而是在开始的时候,在初始化函数skb_init()中就分配了两段内存(skbuff_head_cache和skbuff_fclone_cache )来供sk_buff后期申请时用,所以后期要为sk_buff结构动态申请内存时,都会从这两段内存中来申请(其实这不叫申请了,因为这两段内存开始就申请好了的,只是根据你要的内存大小从某个你选定的内存段中还回个指针给你罢了)。如果在这个内存段中申请失败,则再用内核中用最低层
[linux]sk_buff结构体详解
linux内核sk_buff结构体详解,从sk_buff结构到流程详细讲解sk_buff结构体
关闭