论文部分内容阅读
在计算机应用的诸多领域,如高性能的计算机通信系统,高性能的路由器设计,高速网络防火墙,高效的网络报文传输技术被广泛使用,特别是在高速网络下的实时入侵检测己经成为这个研究领域的一个热点和难点。而如何在千兆环境下实现实时的报文捕获,并提高协议栈还原速度是提高入侵检测能力的一个关键技术。此项技术能够极为有效地提高计算机资源利用效率,从而有效地提高网络报文传输的吞吐率。无形之中就节省了大量的硬件设备以及管理资源。因此高效的网络报文传输技术具有重要的理论研究价值。本文针对高效网络报文传输技术着重研究了以下两个问题:第一个问题是如何在现有的零拷贝系统的基础之上再进一步提高它的性能。零拷贝的基本思想是实现将网卡上的数据传递到用户态的过程中做到CPU的零参与,其核心的实现技术就是DMA数据传输和内存映射。但是在现有的零拷贝的设计中,由于用户层无法直接控制网卡,造成用户层程序和内核态程序之间存在着很多数据同步的问题,因此现有零拷贝的性能提高受到限制。本文在深入分析了现有零拷贝的缺陷的基础上,提出了基于网卡寄存器映射方案的零拷贝设计思想,从而将网卡的控制权从内核转移到了用户态,使整个零拷贝系统的性能有了显著的提高。第二问题是如何提供一个基于零拷贝的高效的协议还原方案。目前基于零拷贝的协议栈几乎都是在用户态提供一个独立编写的用户层协议栈。同时,为了最大限度地发挥出现有服务器的多处理器的性能,有的设计方案会采用并行处理的协议栈设计方案。但由于用户态协议栈的稳定性差以及在高速的网络环境下无法与内核程序竞争处理器等原因造成了其性能的瓶颈。本文对此提出了直接废弃用户态协议栈转而使用内核协议栈的方案,一方面增强了系统的稳定性,另一方面也显著提高了协议栈的性能。