




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 3 16 1 Linux内核网络开发基础普及篇 一 制作 王万顺日期 2011 12 16 2020 3 16 2 主要内容 sk buff结构解析 网络内核模块中的主要结构 SOHO级NAT路由器 基于嵌入式系统 工作原理 2020 3 16 3 sk buff 网络数据在内核中如何表示 1 数据的表示肯定是在内存中分配内存空间 内核中为了更有效的操作这块内存 使用了sk buff结构 2 所以sk buff是网络内核部分最重要的结构 是编写网络内核模块时操作的主要结构 2020 3 16 4 Sk buff概述 我们知道 网络协议栈是由若干层组成 在这些层次之间的数据传递是很频繁的 为了避免在传递时不必要的数据拷贝 同事又要使得各层对缓冲区的操作相对简单 因此sk buff结构设计的较为复杂 一个完整的sk buff由4部分组成 分别是 1 sk buff结构区 也就是sk buff结构本身 这是sk buff的sk buff的元数据 用以维护sk buff的状态和描述细心 2 header数据区 这是一块独立于sk buff的数据缓冲区 用来存放报文分组 其主要功能是使各层协议的协议头数据存储在连续的空间中 以方便协议栈对其进行操作 2020 3 16 5 sk buff概述 3 页碎片区 这是由一组单独的内核页 page 组成的数据缓冲区 它们作为header数据区的补充 用于存放报文分组 4 从属sk buff链表区 由一系列从属的子sk buff组成 连接在structskb shared info 结构的成员frag list中 2020 3 16 6 sk buff结构图示 2020 3 16 7 sk buff结构 v2 6 21 structsk buff Thesetwomembersmustbefirst structsk buff next structsk buff prev structsock sk structskb timevaltstamp structnet device dev intiif 2020 3 16 8 sk buff结构 union structtcphdr th structudphdr uh structicmphdr icmph structigmphdr igmph structiphdr ipiph structipv6hdr ipv6h unsignedchar raw h 2020 3 16 9 sk buff结构 union structiphdr iph structipv6hdr ipv6h structarphdr arph unsignedchar raw nh union unsignedchar raw mac structdst entry dst structsec path sp 2020 3 16 10 sk buff结构 charcb 48 unsignedintlen data len mac len union wsumcsum u32csum offset 2020 3 16 11 sk buff结构 u32priority u8local df 1 cloned 1 ip summed 2 nohdr 1 nfctinfo 3 u8pkt type 3 fclone 2 ipvs property 1 be16protocol void destructor structsk buff skb 2020 3 16 12 sk buff结构 ifdefCONFIG NETFILTERstructnf conntrack nfct ifdefined CONFIG NF CONNTRACK defined CONFIG NF CONNTRACK MODULE structsk buff nfct reasm endif ifdefined CONFIG IMQ defined CONFIG IMQ MODULE unsignedcharimq flags structnf info nf info endif ifdefCONFIG BRIDGE NETFILTERstructnf bridge info nf bridge endif endif CONFIG NETFILTER 2020 3 16 13 sk buff结构 ifdefCONFIG NET SCHED u16tc index trafficcontrolindex ifdefCONFIG NET CLS ACT u16tc verd trafficcontrolverdict endif endif ifdefCONFIG NET DMAdma cookie tdma cookie endif ifdefCONFIG NETWORK SECMARK u32secmark endif 2020 3 16 14 sk buff结构 u32mark Theseelementsmustbeattheend seealloc skb fordetails unsignedinttruesize atomic tusers unsignedchar head data tail end 2020 3 16 15 主要的skbuff函数 skb alloc 分配一个skbuffdev skb alloc kfree skb 释放一个skbuffskb reserve 在 Header数据区 开头处保留一段空白空间skb put 添加tail指针 扩展 Header数据区 的数据skb push 站在 Header数据区 的尾部 将data指针向前推skb pull 站在 Header数据区 的尾部 将data指针向后推skb clone 克隆skbbuffpskb copy 也碎片共享一个skbskb copy 拷贝一个skb 使之完全不共享skb copy expand 拷贝一个skb 并扩充 Header数据区 大小skb copy bits 将skb中从偏移offset处开始的数据拷贝到一个缓冲区中 2020 3 16 16 sk buff结构 v2 6 21 附件1 skbuf utf8 pdf 2020 3 16 17 SOHO级NAT路由器 基于嵌入式系统 工作原理 2020 3 16 18 SOHO级NAT路由器 基于嵌入式系统 工作原理 Witch通过VLAN划分 隔离WAN口和LAN口Port0 Port3和Port5划分为VLAN1Port4和Port5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 飞秒激光烧蚀TC4钛合金的机理和工艺参数研究
- 辊磨机流场数值模拟分析及分级性能研究
- 大同市中医院脊柱畸形术后并发症处理考核
- 太原市中医院康复治疗方案考核
- 邯郸市中医院科室绩效管理考核
- 2025儿童医院护理质量数据分析考核
- 鹤岗市中医院脑电图室住院医师规范化培训考核
- 2025第三人民医院肌松监测技术专项考核
- 2025年家庭装修材料退货合同
- 新疆甜菜种植户与2025年糖料供应合同协议
- 苗族传统体育表演项目“滚山珠”的研究和分析
- 2025年电商平台生鲜配送售后服务标准范本3篇
- DB36-T 1941-2024 老年人轻度认知障碍筛查与干预指南
- 2024年09月2024秋季中国工商银行湖南分行校园招聘620人笔试历年参考题库附带答案详解
- 儿童青少年行为和情绪障碍的护理
- DB45T 2178-2020 甘蔗产量现场测定操作规程
- 实验设计DOE培训
- 第9课-秦统一中国【课件】(共30张课件)
- 智算中心发展创新指南
- 成都中医药大学《诊断学基本技能训练(一)》2021-2022学年第一学期期末试卷
- 2025年九省联考新高考 英语试卷(含答案解析)
评论
0/150
提交评论