论文部分内容阅读
随着网络规模的不断扩大,网络异构程度的不断加深,计算机网络变得日益复杂,迫切需要对网络的流量进行实时、在线的监控和管理。网络测量按是否向网络注入探测数据包分为主动测量与被动测量,网络流量监测属于被动测量技术,通过网络流量监测可以获得详细的流量特征,如流量大小、协议分布、包大小分布等,从而指导网络运维和管理,并且对网络规划也有重要指导意义。 网络流量监测的难点是高速链路数据包的捕获和快速流匹配。由于受到硬件性能和操作系统开销的影响,目前对网络流量的监测主要是集中在低速链路。对于高速链路上流量的监测面临许多的问题,包括高速数据包的捕获、快速流匹配、健全的监测指标定义、流存储、流结束判断等。本文围绕着这些问题,重点对数据包捕获、流匹配和监测指标进行了研究,实现了一种直接操作DMA环进行高速链路数据包捕获的方法;结合Adaptive Hash Buckets存储结构和XOR Folding算法,设计一个新的哈希函数实现流的匹配算法;应用以上两种方法,最终在高性能网络处理器硬件平台上实现了以太网流量监测系统。 本文工作主要包括以下几个方面: 1)基于DMA实现高速数据包收发。通过分析网络处理器的网卡工作原理,结合MIPS64指令系统,提出了一种基于DMA技术的数据包分组捕获方法。在该方法中,网卡驱动与上层系统共享一块内存区域,网卡从网络上捕获到的数据包直接DMA至网络监测系统,这个过程避免了数据的内存拷贝,不需要占用CPU资源,最大程度地将CPU资源分配给协议分析和模式匹配等进程去利用,提高网络处理器的数据包处理能力。 2)设计了一个新的哈希函数实现流的匹配。目前常用的流匹配算法在高速链路无法满足性能的要求,为此设计了一个新的流匹配算法。该算法在快速hash的前提下保持较低的冲突率,实现了speed-versus-space(速度对空间)均衡问题。 3)基于网络处理器的以太网流量监测系统实现。通过采用高性能网络处理器和基于BIOS的软件平台,结合DMA技术和新的流匹配算法,实现了双千兆以太链路的并行监测,完成了流量监测系统。