Linux+内核网络知识普及篇.ppt_第1页
Linux+内核网络知识普及篇.ppt_第2页
Linux+内核网络知识普及篇.ppt_第3页
Linux+内核网络知识普及篇.ppt_第4页
Linux+内核网络知识普及篇.ppt_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论