论文部分内容阅读
目前网络带宽日益增大,普通网络报文捕获平台已经成为大规模宽带网络的入侵检测系统,宽带网络防火墙,高性能路由器等工程的瓶颈。对于日益发展的高速网络,分析出普通报文捕获平台的性能瓶颈,研究和实现面向大规模宽带网络的高性能报文获取和发送平台,对网络安全、并行处理、机群系统、高性能路由器等领域里都有着非常重要的意义。 本文的主要研究内容是如何设计和实现一个基于零拷贝的网络捕包平台。 首先分析了报文捕获技术的特点和要求,以及现有的几种实现方式。然后通过对操作系统收发数据包和网卡硬件收发数据包的过程的研究,分析了影响接收数据包性能的几个主要因素,从而给出了基于零拷贝的网络捕包平台的设计方案。基于零拷贝的网络捕包平台是通过DMA把网卡接收到的数据包直接发送到用户空间的接收缓冲区中,这样可以有效地减少了数据拷贝、系统调用的次数和CPU的处理时间,提高了网络捕包的性能。 然后详细论述了捕包平台的设计和具体实现。本平台主要由用户空间程序模块、内核虚拟模块DUM、改进的驱动程序模块三个部分组成。改进的网卡驱动程序通过虚拟模块的帮助把接收到的数据用DMA发送到用户空间的接收数据缓冲区中。用户空间程序通过DUM找到已经存放有数据包的缓冲区,然后进行处理。 最后,对基于零拷贝的网络捕包平台和传统的基于Libpcap的网络捕包平台进行综合性能测试和比较,并根据结果作了统计分析和理论分析。