网络信息安全内容审计系统及相关技术研究(4)
发布时间:2008-10-13 13:03
作者:admin
来源:中国信息安全博士网原创
点击:加载中...次
当网络负载较低时,每次到达网卡的数据包的个数比较少,极端情况下只有一个数据包到达。那么,当网卡将该数据包提交到上层之后,就从轮询队列中注销,同时开中断,等待下一个网络数据包的到达。当网络负载较高时,
当网络负载较低时,每次到达网卡的数据包的个数比较少,极端情况下只有一个数据包到达。那么,当网卡将该数据包提交到上层之后,就从轮询队列中注销,同时开中断,等待下一个网络数据包的到达。当网络负载较高时,每次会有一批数据到达网卡,在极端情况下,数据包源源不断的到达。接收缓冲区是一个环形的缓冲区,网卡每向内核提交一个数据包,就会马上有一个数据包填充进来,接收缓冲区总是处于满的状态。在这种情况下,网卡就一直处于在轮询队列中,并行的进行读取网络上的数据包和向上层提交数据包的工作。这与轮询的方式是一致的。也就是说,采用NAPI技术,使系统在轻负载的情况下趋近于中断方式,响应速度很快;而在重负载的情况下,趋近于轮询方式,高效的处理数据包并且避免了重负载情况下的中断活锁问题。
?
4使用内存映射技术提高数据包捕获的效率?
内存映射技术的主要思想是通过使内核空间和用户空间共享一段内存区域,避免系统调用,从而提高捕获数据包的效率。?
4.1Linux的内存管理模式?
Linux是一个具有保护模式的操作系统。内存被分为两个部分: 内核空间和用户空间(如图3)。内核空间存放并运行着核心代码,用户区空间也存放并运行用户程序。用户进程不能访问内核区域的地址空间也不能访问其它用户进程的地址空间,同样,内核进程也不能访问用户进程的地址空间。用户进程如果需要访问内核空间中的数据,需要通过系统调用。
?
图3 Linux 中的地址空间示意图