社区
系统维护与使用区
帖子详情
sk_buff结构里的char cb[48]是什么用的?
KAMI
2002-09-29 03:59:30
竟然可以转成指针?
(struct ipfrag_skb_cb*)((skb)->cb)
...全文
215
7
打赏
收藏
sk_buff结构里的char cb[48]是什么用的?
竟然可以转成指针? (struct ipfrag_skb_cb*)((skb)->cb)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
KAMI
2002-09-30
打赏
举报
回复
况且sk_buf里另有指向IP头的指针...
那cb究竟是什么捏?
wanna4u
2002-09-30
打赏
举报
回复
cb[]数组中存放的是每一协议层都可以自由使用的一段空间,一般用来存放控制指令和控制数据。
详细介绍见机工的《linux内核2.4版源代码分析大全》P440。
KAMI
2002-09-29
打赏
举报
回复
嗯,一时胡涂了,不过cb是IP包里的那一部分内容还是不清楚,48B还不到整个IP头,而且IP头是变长的
blh
2002-09-29
打赏
举报
回复
cb就是cb[48]得首地址,呵呵
KAMI
2002-09-29
打赏
举报
回复
噢,搞错了,cb是地址,我一时以为是cb[48]转换成指针了
KAMI
2002-09-29
打赏
举报
回复
类型转换我不奇怪,但cb是什么?值从哪里获得?为什么定义成char型却要转成指针?
blh
2002-09-29
打赏
举报
回复
这也奇怪??呵呵
这就是c的过人之处
sk
_
buff
数据
结构
详解
sk
_
buff
简介 封包存储于struct
sk
_
buff
中,所有网络分层都会使用这个
结构
来储存其报头、有关用户数据的信息,以及协调其工作的其他内部信息。从第二层到第四层都会使用这个数据
结构
。L4附加一个报头传给L3,L3附加自己的报头传给L2,L2附加自己的报头传给L1转发出去。设备收到
sk
_
buff
之后,每层都只处理自己的报头,并将其呈交给上层。
sk
_
buff
数据
结构
内核使用一个双向链表来维护
sk
_
buff
,链表的开端使用了一个哑元元素
sk
_
buff
_head,如下图所示为
sk
_
buff
链表
Linux内核中
sk
_
buff
结构
详解
sk
_
buff
结构
体中的都是
sk
_
buff
的控制信息,是网络数据包的一些配置,真正储存数据的是
sk
_
buff
结构
体中几个指针指向的数据区中,线性数据区的大小 = (
sk
b->end -
sk
b->head),对于每个数据包来说这个大小都是固定不变的,在传输过程中
sk
b->end和
sk
b->head所指向的地址都是不变的,这
里
要注意这个地址不是本机的地址,如果是本机的地址那么数据包传到其他主机上这个地址就是无效的,所以这个地址是这个
sk
b缓冲区的相对地址。各层协议头部相关信息放在线性数据区中。
Linux内核协议栈-
sk
_
buff
结构
详解
sk
_
buff
结构
linux网络协议之
sk
_
buff
结构
分析
注:会发现文件中几乎所有的函数都有两个版本。do_something和__do_something。第一个是包裹函数,增加了额外的合理性检查或者在调用第二个函数前后加入上锁机制。__do_something一般不会被直接调用。想要了解网络是怎么进行部署和运行的,首先要做的就是对数据
结构
进行分析。首先我们对最重要的
sk
_
buff
这个数据
结构
的一些内容查看分析。本数据
结构
过于庞大,只挑出部分尽心分析。2.
sk
_
buff
中的布局字段。
sk
_
buff
整理笔记(一、数据
结构
)
对
sk
_
buff
结构
体以及相关的
sk
_
buff
_head
结构
体、
sk
_
buff
结构
体数据区、
sk
_shared_info分片
结构
体、分片
结构
体的数据区的常用成员字段进行透彻的分析。以及分析这几个
结构
体的关系与一个
sk
_
buff
数据包的形成和其data指针的变化。 (1)
sk
_
buff
->data_len:只计算分片中数据的长度,即是分片
结构
体中page指向的数据区长度。这个在分片
结构
体中会再详细讲解下。 (2)
sk
_
buff
->len:表示当前缓冲区中数据块的大小的总长度。它包括主缓冲中(即是
sk
_
系统维护与使用区
19,610
社区成员
74,604
社区内容
发帖
与我相关
我的任务
系统维护与使用区
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
复制链接
扫一扫
分享
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章