网络信息安全内容审计系统及相关技术研究(3)
发布时间:2008-10-13 13:03
作者:admin
来源:中国信息安全博士网原创
点击:加载中...次
现有的内容审计系统多是单一区域为审计对象,无法保证多个信息安全设计系统间信息共享。网络信息安全内容审计的瓶颈主要在探测器端对大流量网络数据的处理速度,而这个又取决于如何在报文捕获阶段提高数据捕获率,为上层的处理节省系统资源,降低整个应用系统的成本就成为数据包捕获技术的关键问题。?
3基于BPF模型改进Linux 的libpcap(Library of Packet Capture)捕获数据包捕获方式?
3.1Linux 捕获数据包的瓶颈分析?
网卡设备在数据包到达时,都会通过中断通知驱动程序,驱动程序的中断服务程序把数据包从网卡拷贝到内核空间。数据包从内核中的缓冲队列到用户空间,这个过程中,必须经过从网卡到内核空间、从内核空间到用户空间的两次数据包拷贝,非常消耗系统资源,是系统性能的一个瓶颈。?
3.2使用NAPI 技术提高数据包捕获的效率?
NAPI[3](new application program interface,新应用程序接口)是Jamal Hadi Salim 、Robert Olsson 和Alexey Kuznetsov提出的对当前的Linux协议栈?softnet进行改进的一种方法。NAPI的基本思想是:一批数据包中的第一个数据包到达时,采用中断的方式通知系统,系统将该设备注册到一个设备轮询队列中,并关闭对该设备的中断的响应。同时,激活一个软中断,对轮询队列中的注册的网络设备进行轮询,从中读取数据包。?
实际上,物理网络设备接收到数据时,系统可通过两种途径知道数据包到达,并读取数据。一种方法是轮询方式[4],系统每隔一定的时间间隔就去检查一次物理设备,若设备“报告”说有数据到达,就调用读取数据的程序。?
另一种方法是中断方式,中断方式利用硬件体系结构的中断机制实现设备和系统的应答对话,即:当物理设备需要CPU处理数据时,设备就发一个中断信号给系统,系统则在收到信号后调用相应的中断服务程序响应设备的中断请求。?
轮询在重负载的情况下非常有效;但是在负载较轻的情况下,可能会带来较大的处理延时,因为网络设备有数据到达时可能不能马上得到CPU的响应,同时,不断的轮询没有任何数据包的网络设备是对CPU资源的浪费。轮询方式适用于重负载情况,在轻负载情况下会带来CPU资源的浪费以及较大的处理延时。?
中断方式有效地解决了设备与CPU的对话交流问题,并将CPU从繁重的设备轮询中解脱出来,大大提高了CPU的利用率,在轻负载的情况下减少了处理的时间延迟。但是当中断量超过MLFFR(Maximum Loss Free Forward Rate)的时侯,会导致系统比较脆弱。从本质上来说,由于系统中有太多的中断到达,因此它就无法完成任何有用的工作。虽然到达的数据包全部进入等待队列,但是由于队列已满,需要丢弃。为了找出可以丢弃的数据包,又消耗了大量的系统资源(如:CPU计算时间、内存分配以及PCI总线带宽等)而无法完成任何有用的工作。此外,由于大量中断,系统的上下文切换频繁,导致CPU的cache的命中率降低,系统性能下降。?
使用NAPI 技术的处理流程如图2 所示:
?
图2 NAPI 技术的处理流程