论文部分内容阅读
随着互联网应用的发展以及网络带宽的快速增加,已有的网络数据分析系统由于数据包捕获及还原分析能力的不足造成大量数据丢失。同时IPv6协议目前正逐渐取代IPv4,传统的协议分析系统需要添加协议支持以分析IPv6数据包,实现IPv6下的网络安全监控。研究高速IPv6流量的数据包捕获以及协议还原技术具有重要的意义。本文首先介绍了Linux系统的网络协议体系及其内核机制,分析了Linux下的数据包捕获技术以及Libpcap套接字,总结出目前一些改进捕包性能的技术。其次阐述了基于IPv6的协议还原协议栈机制,以及设计使用的多线程编程技术。接下来介绍了IPv6数据捕获和还原系统的整体设计,包括系统需求分析和模块设计。数据包捕获方面,重点分析了PF_RING套接字的实现原理和实现流程,然后使用TNAPI机制,对网卡驱动程序进行了修改。在此基础上,使用PF_RING的用户函数接口API实现系统数据包捕获模块。针对TCP重组模块,分析了TCP还原的相关原理,包括TCP报头结构以及传输控制机制。对比和分析了Hash链表和Splay树算法的复杂度,设计TCP会话组织结构;详细描述并行TCP重组的设计和实现;同时针对具体的数据重组操作,给出了重组流程和使用的关键数据结构。采用注册-回调机制设计应用协议还原接口。实现了邮件协议的还原,根据POP3和SMTP协议原理,设计程序自动状态机,将邮件内容还原成mbox格式内容。再通过实现mbox解析模块,对邮件内容进行了Base64和QP两种算法的解码分析以及数据的存储。本文搭建了系统运行的IPv6网络测试环境,部署系统的各个模块,并对系统进行了单元和整体的测试。实验结果证明,系统达到了功能上的设计,性能指标也有了巨大改进,能适应高速IPv6网络环境应用需求,有较强的实用价值。