论文部分内容阅读
IPv6作为下一代互联网的基础协议,随着IPv6互联网的逐步发展,也开始了大规模的应用部署。对IPv6协议本身的研究以及对基于IPv6协议的应用也越来越引起许多的重视。
IPv6协议针对IPv4网络出现的许多问题,在IPv4协议基础上提出了改进,如简化的IPv6报头,扩展头的使用,加密和认证头的增加,使得IPv6网络相对于IPv4网络更加安全可靠。但是,IPv6网络还远没有想象的安全,比如,IPv4网络存在的分片攻击在IPv6网络中并没有消失,因此,应付IPv4网络分片攻击的方法,在IPv6网络中仍然有效。分片重组就是其中一种防范分片攻击的必然步骤。
除去网络信息安全的原因,还有一个更重要的因素,使得分片重组功能必不可少。网络流量监测是监视网络中高速传输的数据的一种重要方法,网络数据包捕获系统作为这种方法的一个重要子系统,是整个网络流量监测的基础,网络数据包的捕获更是后续处理的基石。如果捕获的是IPv6分片包,而要获得完整的是IPv6数据包,则必然要进行IPv6分片包的分片重组。也就是说,分片重组是网络应用的必不可少的子模块。
RFC791和RFC815都推荐了IPv4分片包重组算法,本文分析了两者的优缺点,借鉴了绝大部分的RFC791推荐的重组算法,同时也巧妙地用到了RFC815中“洞”的概念,使得本文提出的算法适合无锁并行重组,并更加有效。同时,本文还考查了常用数据结构的lock-free算法,并将其应用在IPv6的分片重组上,使其能够充分利用多核的硬件基础,从而提高重组效率。
最后,本文给出IPv6分片数据包并行重组模块的设计和实现,该模块可实际运行在Linux2.6内核之上。并对该模块进行了测试,取得了良好的效果。