
学术论坛
高速网络环境下数据包捕获技术的分析
王亚
(阜阳师范学院计算机与信息学院安徽阜阳236041)
数事教术与点用
摘要:互联网的还猛发展,网络带宽飞速增长,在高速网络环境下,传统的同络数据包辅获已经成为制约整个系统的性能提升的瓶颈,为了满足高速网络的数据包描获的需求,对传统的网络数据包摘获存在的间超进行分析,在此基础上提出了改进着施,为后期研究高速网终下高性能的数据包辅获技术要定基础。
关键调:高速网数据包械获Libpcap
中图分类号:TP393
文献标识码:A
文章编号:1007-9416(2011)12-0194-02
The Analysis of Packet Capture Technology
in High Speed Network
wangya
(Fuyang Teachers College of computer and Information engineering Fuyang 236041)
Abstract:The rapid development of the Intemet and the rapid growth of network bandwidth,in highspeed ntwork environment,the traditional network data packet capture has become the constraints of the system performance bottleneck. In order to satisfy the high speed network packet capture demand,to analysis the existing problems of the traditional network packet capture,and put forward on this foundation improvement measures.,It lays the foundation for later research of highspeed network and high performance packet capture technology.
Keywords:high speed network;packet capture;Libpcap
1、引言
目前,对网络信息监控与检测的软件都是基于数据包捕获技术,如:人侵检测程序Snort.唤探器Tcpxdump等。数据包捕获技术是一种对网络上的数据包进行监听并截取的投术,可以将数据包原封不动的拷贝到捕包端的系统中。数据包捕获是入侵检测系统、网络协议分析、网络防火墙.高性能通信系统、以及其他网络监视系统能够充分发挥其性能的前提。因此,这些软件性能的优劣直接受制于数据包捕获平台性能的优劣。
互联网的迅猛发展,网络带宽飞速增长,网络上的安全需求也在不断增加,目前网络带宽已经达到了千兆基至万兆。在Internet/ Intranet上,TCP/IP目前是占据主导地位的网络协议,但是基于软件进行协议处理的TCP/IP协议,却使得CPU传统的网络数据包捕获已经成为整个系统的性能的瓶颈承担了很大的负载。
操作系镜
辅包平台数据处
用户空间内核空间
硬件平台
194 万发数据
图1
理程序协议栈 T 驱动企网卡
在高速网络环境下,为了满足高速网络的数据包拥获的需求,对高速网络下高性能的数据包捕获技术进行研究已经成为趋势,本文主要从分析制约数据包捕获性能的瓶颈问题人手,给出相应的改进措施。
2、传统网络数据包捕获的分析
目前常用的传统的数据包捕获平台一般是通过调用Libpcap捕包函数库而实现的。Libpap主要包括三个部分:最底层的是针对硬件设备接口的数据包拥获机制,中间是针对内核级的包过减机制,第三层是针对用户程序的接口。Libpcap支持BPF过滤机制,BPF主要由两部分组成:网络分接头和数据过滤器。网络分接头从网络设备驱动程序中收集数据拷贝,过滤器决定是否接受该数据包。
2.1处理过程
图1给出了传统网络数据包捕获平台的框架以及数据包的流向:从图中可以看出网络数据流经的路径:当有数据包到达网卡
时,向CPU发起一个硬件中断请求,进人中断服务程序,然后调用网卡驱动程序中的函数来处理,当数据成功接收后,由网卡传至内核空间,由网卡驱动控制网卡上数据的收发,并对收到的新数据进行简单的处理后上交协议栈。由上层协议栈对数据按协议层次进行大量处理,最后将数据从内核空间拷贝到进程用户空间供应用程序使用。
2.2存在的问题
通过对目前存在的数据包捕获平台机制进行分析研究,从统计数据中可以看出,在数据包捕获阶段,处理中断消耗了大量的系统资源,另外,由于中断的优先级高于用户进程,只有在数据包接收完之后才能返回用户空间对用户进程继续处理。如果中断频率过高,处理应用进程的时间就会被大量的抢占,导致用户进程等待过长,从面影响了整个应用系统性能,致使性能严重下降。值得注意的是,随着网络流量的增大,中断的次数也并不是同步增多,超过一定的