高速网络中IPv6分片包重组的实现

来源 :硅谷 | 被引量 : 0次 | 上传用户:chester116
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]通过分析IPv6协议,分片攻击的基本特点和Linux多线程算法的实现,建立IPv6分片包并行重组模型,并给出该模型的一种实现方法,在Linux环境下进行了测试,最后对实验结果进行了分析。
  [关键词]高速网络 IPv6协议 分片并行重组
  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510040-01
  
  随着IPv6互联网的逐渐发展、普及,不安全问题并没有随着IPv6逐步取代IPv4而消失,反而日益受到重视。为防范分片攻击以及实现基于IPv6包的后续应用,并减少丢包率,本文提出了IPv6分片包并行重组模型,采取多线程并行重组方式以加快分片包的重组。
  
  一、IPv6协议和分片攻击
  
  


  基于IPv4协议的上一代互联网因其固有的不稳定性,不安全性,以及其IPv4地址耗尽的现实因素,越来越成为互联网发展的不利因素,与IPv4协议相比,IPv6协议具有许多新的特点并弥补了IPv4的许多不足,比如巨大的地址空间;简洁的IPv6协议报头(基本报头如图1所示)以及全新的扩展报头,其中特别增加了IPSEC安全协议;全新的ICMPv6协议,并将ARP协议和RARP协议功能集成进ICMPv6协议中;自动配置功能;对移动IPv6的支持等。
  物理网络通过将IPv6数据包封装进物理帧来在物理层进行数据传输的,每一种物理网络都规定了一帧所能携带的最大数据量。这一限制称为最大传输单元(Maximum Transmission Unit,MTU)。因而一个数据包必须小于或等于一个网络的MTU,否则无法进行封装和传输。IPv6协议规定,如果要发送的IPv6数据包长度大于路由过程中所经过的所有子网的最小MTU值,那么源节点必须对此数据包进行分片,不同于IPv4协议,中间路由器不必再分片了,最后由目的节点进行分片重组。因此,对于数据包捕获系统来说,将网卡设置成混杂(Promiscuous)模式后,也要模拟目的节点将捕获的分片数据包进行重组成原始数据包。
  IPv6数据包的分片只能在源节点进行,路由中间节点不再进行分片操作,简化了中间节点对数据包的处理,提高的中间节点对数据包的转发效率;IPv6的分片包重组只发生在目的节点。通过MTU发现机制,源节点可以确定路由中的最小MTU值,以此作为发送数据的最大限度。当源节点要进行分片时,它将在IPv6数据包的可分片部分插入分片扩展报头。这些分片包拥有相同的分片标志,但是分片偏移量各不相同。因此对于每一个分片包,必须包含三个部分,依次是原始数据包的不可分片部分、分片扩展头(fragment header),原始数据包的可分片部分的某一个分片。分片扩展头如图2所示。
  


  其中当M=1的时候表示此分片包不是最后一个分片包,M=0则表示是最后一个分片包。偏移量是13位的无符号整数,以8byte为单位,表示此分片数据相对于未分片的原始数据包中可分片部分的偏移量。
  
  二、分片并行重组模型
  
  本文所叙述的多线程分片并行重组方法可以设计为运行在用户空间和内核空间,这里在用户空间实现此基于libpcap的分片并行重组设计。 利用符合POSIX标准的pthread库来进行多线程编程。为了提高性能,使用基于libpcap和mmap的pfring模块来捕捉数据包。通过使用多线程,可以充分使用多核CPU,进行分片并行重组,减少丢包率。
  
  三、模型的实现
  
  本系统使用LINUX 2.6内核,采用C语言为编程工具,并参考了libnids的源码实现。
  (一)主要数据结构。主要用到的数据有:struct hosts hostable,关于hosts的哈希表;hosts,相同hash值的所有主机链表头结点;hostfrags,相同hash值的主机节点;ip6q,ip6frag链表的头结点,链接同一原始数据包的所有分片包;ip6frag,分片包节点;pthread_mutex_t,互斥锁,用于并发访问、主要数据结构之间的逻辑关联如图3所示。
  


  (二)分片重组逻辑流程。1.通过pthread_create循环创建多个线程,设置相应的回调函数;2.在每个回调函数线程中,无限循环调用pfri
  ng的pfring_rcv函数获取数据包,若不是分片包,则交由上层的icmp6,tcp6或者udp6模块处理,否则按分片并行重组流程处理;3.分片并行重组流程将收到的每个分片包按分片偏移量的顺序插入到ip6q队列里,当所有的分片包都捕获到了,就将ip6q队列里的所有分片包重组成原始IPv6数据包,交由上层的icmp6,tcp6或者udp6模块处理,并释放相应的ip6q队列。注意的是,在插入或删除hostfrags节点,ip6q节点和ip6frag节点时要锁住相应的上层节点锁。
  (三)测试数据。测试用硬件:(1)服务器,配置是双至强CPU,4G
  内存,千兆网卡,使用Linux 2.6.25内核,网络协议为IPv6;(2)Smartb
  it 6000C测试仪。以Smartbit提供测试流量,发往服务器。以单线程分片重组和两个线程(每CPU一个线程)并行重组为对比,在服务器中获取的测试结果表明,在带宽为100%利用时,小包产生较大的丢包率,但双线程仍然比单线程捕包率高,在大包时,反而会产生丢包,原因是过多拷贝分片包时消耗了CPU时间;在带宽为80%时,各项数据表现良好。
  
  四、总结
  
  本文提出的并行重组算法使用了pthr- ead_mutex_t锁机制,由于mutex锁会使得没有得到资源的线程休眠,产生进程/线程调度,因此对于1Gbit的高速网络中,由于数据包来的非常快,使得并发线程会不停地竞争mutex锁资源,这样大量的CPU用于进程/线程调度,浪费了CPU时间,不利于数据包的捕获,重组等后续处理;spin_lock机制可以使得CPU忙等,线程不必放弃CPU,避免了调度浪费的时间,可以考虑采用spin_lock锁机制。同时,如果要在多核上实现多线程处理,并从根本上避免访问冲突,可以考虑恰当设计数据结构,使得每个CPU只访问属于自己的数据,并给予并行处理线程实时调度策略,和线程专属各自CPU,即线程被调度时不会切换CPU。
  
  参考文献:
  [1]Pv6下协议分析技术在入侵检测系统中的研究与应用,暨南大学硕士论文,2006.6.
  [2]张会汀、郑力明,IP分片重组算法(RFC815)的实现及其改进,计算机工程与设计,2005.04(26).
  
  作者简介:
  胡垂立,男,汉族,在读硕士,广东技术师范学院天河学院计算机系讲师,研究方向为计算机网络、视频技术等。
其他文献
[摘要]针对德国HAUNI公司的嘴棒发射机的原电控系统采用早期的逻辑电路控制,电气元件繁多,使用年限已久,零配件采购困难且价格昂贵,故障隐患多,维修难度大,故提出并进行了发射机组的改造。系统软件采用西门子STEP7编制,通过PLC控制变频器的启动/停止,通过接口模块控制分布式I/O的运行。使机组线路简单明了,维护起来比较方便;降低故障发生率,提高机器性能;通过特有的故障显示功能,提高操作人员对机器
期刊
[摘要]介绍一个以XC2S200为核心的视频信号滤波处理系统,该系统为水下图像目标识别和监控提供了一种解决方案,它采用共轭算法对图像进行统一、高效的全局变换,滤波增强效率更高,并且采用Xilinx公司的FPGA芯片XC2S200位处理核心,使得该系统结构紧凑,配置灵活,便于携带。该系统可实时使水下昏暗、模糊的视频图像获得较好的噪声滤波效果,并输出给液晶显示器显示。可应用于水下场景监测或监控,具有很
期刊
[摘要]详细研究对增量式光电编码器脉冲信号进行细分、计数以及传输的基于FPGA(现场可编程逻辑阵列)的接口电路。采用以高度集成的FPGA芯片为核心的设计方式,实现增量式光电编码器对信号的处理。编码器输出的数据在FPGA芯片中进行细分、辨向、计数等传输处理,最后所得的数据经寄存器存储。验证光电编码器FPGA接口信号处理系统的可行性。  [关键词]FPGA 光电编码器 接口 信号  中图分类号:TP3
期刊
[摘要]介绍采用Atmega64单片机和128×64点阵液晶模块设计的老化控制器。针对老化时间、老化环境以及产品一些功能的老化的实现,重点讲述了这种控制器的继电器输出,键盘输入,并通过点阵液晶显示控制器的工作状态(显示计次次数、工作状态、剩余老化时间、日期与时间),当老化结束时,电路能够自动断电。给出系统的软、硬件实现方案。  [关键词]老化控制器 Atmega64 点阵液晶显示 矩阵按键  中图
期刊
[摘要]介绍多媒体CAl系统的在教学中的应用,针对当前CAI的开发技术,提出设计和制作方法。与单纯的图文教程相比,生动活泼的视频多媒体教程更容易吸引学生注意力,让学习过程更加轻松有趣。  [关键词]CAI 开发 多媒体 制作  中图分类号:G43 文献标识码:A 文章编号:1671-7597(2009)0620106-02    CAI,即计算机辅助教学。它是利用计算机将文字、图形、图像、动画、声
期刊
[摘要]江都三站更新改造工程选用WKLF-102B双微机型晶闸管励磁装置,该装置具有起动平稳、操作方便、运行可靠等优点,同时还能对实时参数液晶显示,支持在线修改、事件记录等技术特性。介绍了江都三站改造前的现状及改造后励磁装置的组成、技术特性等。  [关键词]晶闸管 双微机型 励磁 大型泵站 应用  中图分类号:TN2文献标识码:A文章编号:1671-7597(2009)0510028-01    
期刊
[摘要]ASP读取XML数据是开发过程中经常遇到的一个难题,具体介绍ASP读取XML数据的实现方法。  [关键词]ASP 读取 XML 方法  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510032-01    一、引言    ASP是Web服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的Web服务应用程序,在ASP文件中访问数据库是最常用的操作,而
期刊
[摘要]通过对NAND闪存使用的文件系统YAFFS实现原理的分析与研究,针对其两点不足:加载时间随着存储容量的增大而增大;对静态数据没有很好的实现损耗均衡,提出一种快速加载的文件系统FMNFS (Fast-Mounting NAND File-System)。  [关键词]NAND闪存 YAFFS 加载时间 损耗均衡  中图分类号:TP2文献标识码:A文章编号:1671-7597(2009)051
期刊
[摘要]分析目前内容管理系统的重要性,基于Php+Mysql平台,提出内容管理系统的设计方案,得出总体逻辑结构和功能模块结构,总结该系统的特色。  [关键词]内容管理系统 模块管理 Php MySql  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510043-01    一、引言    在当今的网站建设与Web开发中,Web应用需要的是开发人员高效率的开发节奏和用户
期刊
[摘要]近几年,大量兴建的水利工程满足了人们的需求,但是也带来了一些不利影响。造成了负面效应。如何处理水利工程建设与保护环境之间的关系,是当前需要解决的问题。水利事业发展方向是变工程水利为资源水利,保护生态环境,进而促进经济、社会持续稳定发展。  [关键词]环境目标保护体系保护措施  中图分类号:X3 文献标识码:A 文章编号:1671—7597(2009)0620194—01    随着国内水利
期刊