- 2
- 0
- 约5.91千字
- 约 5页
- 2020-04-10 发布于广东
- 举报
深度探索套接字缓冲区(1)
套接字缓冲区用结构体struct sk_buff表示,它用于在网络子系统中的各层之间传递数据, 处于一个核心地位,非常Z重耍。它包含了一组成员数据用于承载网络数据,同时,也定义 了在这些数据上操作的一组函数。下面是其完整的定义:
struct sk_buff {
struct sk_buff * next;
struct sk_buff *prev;
struct sock *sk;
struct skb_timeval tstamp; struct nct_dcvicc * dev;
struct net_device *input_dev;
union)
struct tcphdr *(h; struct udphdr *uh;
struct icmphdr *icmph; struct igmphdr *igmph; struct iphdr *ipiph;
struct ipv6hdr *ipv6h; unsigned char *raw;
}h;
union {
struct iphdr *iph;
struct ipv6hdr *ipv6h; struct arphdr *arph; unsigned char *raw;
}nh;
union {
unsigned char *raw;
)mac;
struct dst_entry *dst;
struct sec_path *sp;
char cb[48];
unsigned int len, data_len, mac_lcn, esum;
—u32 priority;
_u8 local_df: 1,
cloned: 1, ip_summed:2, nohdr: 1, nfctinfo:3;
_u8 pkt_type:3,
fclone:2,
ipvs_propeily: 1;
—be 16 protocol;
void (*destructor)(struct sk_buff *skb);
#ifdcf CONHG.NETFILTER
—u32 nfmark;
struct nf_conntrack *nfct;
#if defined(CONFIG_NF_CONNTRACK) II defined(CONFIG_NF_CONNTRACK_MODULE) struct sk buff *nfct reasm;
MB SMMB
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
struct nf_bridge_info *nf_bridge;
#endif
#endif /* CONFIG_NETFILTER */
#ifdcf CONHG_NET_SCHED
—ul6 tc_index;
#ifdef CONFIG_NET_CLS_ACT
ul6 tc verd;
MM 7
#endif
#endif
unsigned int truesize;
atomic_t users;
unsigned char * head,
*data,
*tail,
*end;
};
这是一个比较宠人的结构体,为了便于理解,我们分成多块进行分析。
为了使用套接字缓冲区,内核创建了两个后备高速缓存(looaside cache),它们分别是 skbuff_head_cache和skbuff_fclone_cache,协议栈中所使用到的所有的sk_buff结构都是从这 两个后备高速缓存屮分配出来的。两者的区别在于skbuff_head_cache在创建时指定的单位 内存区域的大小是sizeof(struct sk_buff),可以容纳任意数目的struct sk_buff,而 skbuff_fclone_cache在仓U建时指定的单位内存区域大小是2*sizeof(struct sk_buff)+sizeof(atomic_t),它的最小区域单位是一对strcut sk_buff和一个引用计数,这一对 sk.buff是克隆的,即它们指向同一个数据缓冲区,弓I川计数值是0,1或2,表示这一对屮有 几个sk_buff已被使用。
创建一个套接字缓冲区,最常用的操作是alloc_skb,它在skbuff_head_cache中创建一个 struct sk_buff,如果要在skbuff_fclone_cache中创建,可以调用—alloc_skb,通过特定参数 进行。
struct sk_buff的成员head指向一个已分配的空间的头部,该空间用于承载网络数据,end 指向该空间的尾部,这两个成员指针从空间创建Z后,就不能被修改。data指向分配空间小 数据的头部,tail指向数据的尾部,这两个值随着网络数据在各层ZI可的传递、修
您可能关注的文档
- 清洁煤项目投资分析报告.docx
- 清洁美丽家园作文.docx
- 清洁能项目立项申请报告.docx
- 清洁能源之生物质能.docx
- 清洁生产方案汇总.docx
- 清洁生产论文部分.docx
- 清洁生产培训总结重点.docx
- 清洁生产若干问题的小结.docx
- 清洁生产审核常识.docx
- 清洁生产审核方案.docx
- 从信息到视觉的多层融合:“设计素描”探索.pdf
- 浅析专业灯光技术的发展与趋势——中国照明学会舞台电影电视照明专业委员会2024行业调研分析.pdf
- 基于影视美术视角的非物质文化遗产活化传承研究.pdf
- 《黑神话:悟空》游戏音乐传播中国传统音乐文化的策略及其应用价值研究.pdf
- 传承与创新:新形势下中国艺术理论研究的战略思维——2024中国艺术学理论学会第二十届年会综述.pdf
- 基于运动规律体系的AIGC技术在二维动画电影产业流程中的应用研究.pdf
- 知识图谱视角下非遗数字化发展研究热点与前景探究.pdf
- AI语音克隆技术在电影中的跨语言应用探索与研究——以GPT-SoVITS为例.pdf
- 基于图像拼接技术的蓝印花布边缘纹样快速生成算法.pdf
- 从斯蒂格勒技术替补理论反思阿多诺流行音乐批判.pdf
最近下载
- 山西省建筑工程施工安全管理标准DBJ04-253-2007.docx VIP
- 电磁阀性能试验的研究.ppt VIP
- 2024-2025学年安徽省合肥市经开区统编版五年级上册期末考试语文试卷.pdf VIP
- 南开大学《数值分析》2021-2022学年期末试卷.pdf VIP
- WSET3级高级教程(全套).docx VIP
- 滑门设计方法.doc VIP
- 乳糜胸多学科决策模式中国专家共识(2025版).docx
- 【河北卷】河北省唐山市、廊坊市2025年普通高中学业水平选择性考试第一次模拟演练(唐山廊坊一模)(3.10-3.12)数学试题卷.pdf VIP
- 煤矸石协议书.pdf VIP
- ABB Cyber security deployment guideline, GMS600 version 1.3 手册(英语)说明书.pdf
原创力文档

文档评论(0)