论文部分内容阅读
当前网络上的通信量巨大,如何在高速网络环境下对网络进行流量测量,以掌握网络的流量特性显得尤为重要。网络流量测量系统提供了一种测量和理解网络流量特性的工具。网络流量测量的关键一步是如何高效、准确地采集到测量对象的网络信息。目前硬件网络信息采集器性能良好但是价格昂贵。软件抓包可以通过操作系统提供的BPF构件和pcap函数库实现,是当前许多网络流量测量系统采用的手段。如何高效地捕获网络上的数据包是基于软件抓包的测量系统要解决的一个重要问题。传统的基于libpcap网络信息采集系统的工作模式中,被捕获的包通过内核数据结构和队列从网卡转移到用户空间,这个过程浪费了大量的时间进而降低了网络信息采集的效率。
本文的研究目标是在libpcap的基础之上,设计并实现一种新的网络信息采集模式,以达到提高基于软件的网络信息采集效率的目的。研究工作分四个阶段进行:首先,分析运行在以太网环境下linux平台的基于libpcap的网络信息采集系统接收包的过程,并得出影响基于libpcap网络信息采集系统性能的因素;接着,针对这些因素,引入“零拷贝”的思想,提出了一种新的网络信息采集模式;然后,通过实现一种新的专门用于网络信息采集的协议族(PF_CAPTURE)和对libpcap的改进实现了这种新的网络信息采集模式;最后,对基于标准libpcap的网络信息采集系统和本文实现的网络信息采集系统进行了性能测试。
本文的主要成果有两个:其一,对标准的libpcap网络信息采集系统接收包的过程进行了详细的分析并得出了影响其性能的因素;其二,设计并实现了一种基于“零拷贝”的网络信息采集模式。