论文部分内容阅读
随着人类进入信息时代,网络和人们的关系越来越密切,它在带来很多方便的同时,也带来了很多新的问题。其中互联网的安全性引起了各个国家、公司的高度重视。被动数据捕捉技术在网络安全领域有着极其丰富的应用,如IDS、防火墙等,tcpdump,ethereal,snort等软件都采用此项技术。随着诸多应用层服务的不断投入应用,使得网络的承载能力大为紧张。由于CPU性能、操作系统的处理机制等原因,传统的捕包方式己经不能适应千兆网络的要求。高性能数据采集平台是定位于Internet主干网络的数据采集和数据分析设备,支持千兆级及以上的网络数据采集和数据分析。它采集网络上传输的所有数据报文;数据分析功能支持从链路层,IP层,传输层,直到应用层的数据分析。该平台提供方便的二次开发接口,在此平台上可以方便的开发基于内容的网络安全设备,如IPS系统、DDOS防御系统、垃圾邮件过滤系统等。本文研究和实现了高性能的网络数据采集平台中的底层数据包捕获子系统。它结合“零拷贝”技术,实现了对底层数据包高效,安全的捕获。它主要由下面几个技术部分组成:(1)内存映射技术。本系统采用内存映射技术,使用户空间和内核空间共享一片内存区域。这片内存区域将用于存放数据包和必要的内存管理数据结构,通过对这块共享内存的使用和管理,为数据包在内核空间和用户空间之间的高速传递提供支持。(2)“零拷贝”技术。系统将改变网络中数据包提交流程,使数据包在由网卡到上层应用程序的传送过程中绕过内核协议栈,避免了由内核空间到用户空间的数据拷贝,从而提高数据包捕获效率。(3)与协议还原和处理系统的接口模块。本系统中,位于用户空间的协议还原子系统通过依层次注册回调函数的方式实现对网络数据包的分析和处理。该处理方式为上层协议还原和处理子系统提供了很高的灵活性,上层系统可以通过注册不同的回调函数组合来满足在不同应用场景下的需求。此外,我们根据项目进度及要求,在装有Linux2.6内核版本的PC机上实现了网络数据流高速采集系统。