网络信息安全内容审计系统及相关技术研究(5)
发布时间:2008-10-13 13:03
作者:admin
来源:中国信息安全博士网原创
点击:加载中...次
因此,网络信息审计系统从内核空间读取数据包必须通过recv_from 系统调用完成。系统调用会消耗大量系统资源,而且,每次系统调用都会带来一次上下文切换,对cache 的命中率有很大的影响。随着网络流量的增大,网络
因此,网络信息审计系统从内核空间读取数据包必须通过recv_from 系统调用完成。系统调用会消耗大量系统资源,而且,每次系统调用都会带来一次上下文切换,对cache 的命中率有很大的影响。随着网络流量的增大,网络中数据包的增加,系统调用就会非常频繁,严重影响网络信息审计系统的性能。 ?
系统调用也是网络信息审计系统的性能瓶颈。为此,我们借鉴了内存管理中地址映射技术(MMAP)[5]的思想,通过使内核与应用程序共享一段内存空间的方法,避免系统调用,从而降低系统调用的开销、提高cache 命中率,提高系统的性能。?
4.2内存映射技术(MMAP)?
首先,我们构造了一个与内核空间共享的缓冲区桶。该缓冲区中存放的是Linux 内核捕获的数据包在内存中的地址。内核每捕获一个数据包,就将该数据包存放的地址放在共享缓冲区桶中。在pcap_read()函数中,调用了一个叫做pcap_ring_recv()的函数。该函数不断的检查共享的环形缓冲区中是否有数据,如果有数据,就根据这个地址取得内存中的数据包;如果没有数据,就将当前进程阻塞,直到有数据包到达时才被唤醒,开始读取数据。如果网络上有大量的数据包到达,内核就可以不断的向环形缓冲区中写数据,Libpcap 就可以不停的从环形的缓冲区中读取数据,数据包的读写并行工作,互不影响。在这个过程中,不需要通过系统调用从内核中获取数据包,从而消除了系统调用的开销。因而,内存映射技术可以有效的提高系统的性能。?
使用NAPI 以及内存映射技术对信息审计系统的数据包捕获引擎进行了改进,并对新的系统进行了测试。测试表明,使用NAPI 和内存映射技术后,系统的丢包率有了明显的降低。?
综合考虑大规模网络环境下内容的要求,下面描述适合于大规模的分布式、可扩展的高性能内容实时审计系统模型。基于网络信息审计系统由区域审计系统和全局通信控制代理组成,区域子系统负责执行各个区域网络的审计功能,通信控制系统负责各个区域子系统之间的信息交互与共享[6](如图4)。?
区域子系统由多个负责收集网络信息的数据包采集代理集合和一个后台控制代理组成。根据被各个审计子网的实际带宽,每个子网的数据包采集代理集合可以由多个采集代理各自并行处理总的流量的一部分,然后把收集到的可疑信息交给本区域的后台控制代理。
?
图4大规模网络信息审计系统结构示意图