Libpcap报文捕获系统性能研究

来源 :决策与信息·下旬刊 | 被引量 : 0次 | 上传用户:lianglianghepan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]本文分析基于Libpcap报文捕获系统的性能瓶颈-数据拷贝、中断处理,针对性能瓶颈提出了优化和改进捕包性能的方法。
  [关键词]中断处理;数据拷贝
  1.引言
  在网络规模日益庞大的今天,报文捕获和分析技术作为网络管理和网络安全使用的关键技术正得到广泛的应用[1]。通过对捕获的报文进行分析,可以实时了解网络的使用状况,发现网络运行的瓶颈以及分析网络数据中携带的非法内容。在Linux系统中,广泛使用Libpcap(Packets Capture Library )[2]作为网络监测程序的基础库。
  Libpcap是Packet Capture Library的缩写,由Berkeley大学Lawrence Berkeley National Laboratory研究院的Van Jacobson、CraigLeres和Steven McCanne编写,是Unix/Linux平台下的网络数据包捕获的函数库。它是一个独立于系统的用户层包捕获API接口,为底层网络监听提供了一个可移植的框架。
  本文分析了传统基于Libpcap报文捕获系统的性能瓶颈--数据拷贝、中断处理[3,4,5],提出了优化和改进报文捕获系统性能的方法。
  2.Libpcap性能分析
  为了研究基于Libpcap报文捕获系统的性能瓶颈,我们抽象出报文捕获系统的性能模型如图1所示,包括用户态的Libpcap库和内核态的报文捕获引擎。
  报文捕获系统的工作过程:(1)网卡接收数据包,通过DMA传送到主机并向主机发送硬件中断;(2)硬件中断程序将数据包转入链路层的接收核心队列并设置软中断标志;(3)软中断处理程序对数据包按协议分发,报文进入PF_Package队列;(4)用户态的检测程序(如TCPDUMP、SNIFFER)向内核发送系统调用;(5)系统调用服务程序将数据包拷贝到检测程序的用户态缓冲区中;(6)检测程序对数据进行分析处理。
  图1 Libpcap报文捕获系统性能模型
  通过对Libpcap性能模型工作过程的分析,我们得出Libpcap报文捕获系统性能瓶颈-数据拷贝开销和中断处理开销。
  1.数据拷贝
  数据拷贝操作的代价是昂贵的,主要有以下几点原因:(1)内存总线带宽有限,每次内存拷贝都要占用带宽;(2)每次拷贝操作都会消耗大量的CPU周期。通常,CPU都是逐字地将数据从源缓冲区移动到目的缓冲区。这意味着在拷贝操作过程中,CPU是不可利用的;(3)数据拷贝操作影响了系统cache性能。因为CPU通过cache访问主存,因此在拷贝操作之前cache中驻留的有用信息会被清空,然后被拷贝的数据所代替[3,5]。
  2.中断处理开销
  网络上每到达一个报文都会引起一次硬件中断(目前有的网卡也可以多个报文到达才产生一次中断),每次这样的中断会伴随一次上下文切换:从当前正在运行的进程切换到因为等待报文而阻塞的进程。上下文切换的开销往往很昂贵的,因为它需要保存和恢复相应的上下文,而且还会引发Cache失效带来性能损失[5]。
  3.Libpcap性能优化
  1.内核过滤机制
  内核过滤就是在软中断处理程序中判断接受的数据是否是应用程序感兴趣的报文,如果是才将其复制到应用层的缓冲区内,否则就丢弃,这样可以大大降低系统处理的报文数量,从而提高捕包效率,但这种方式只对某些应用起作用,对于流量统计、常用协议分析等应用就不会起很大作用,因为这些应用往往要处理网络上绝大部分报文。
  2.减少中断开销
  采用NAPI技术[6]和设置网卡硬件中断阀值[7]来减少系统的中断开销。
  NAPI是一种中断和轮询相结合的技术。中断在轻负载情况下能减少延迟,但在重负载情况下会引起活锁;轮询在重负载下效率很高,但在轻负载下却会增加延迟。NAPI结合了中断和轮询的优点,在轻负载下系统以中断方式工作,重负载下系统以轮询的方式工作。
  在网卡硬件中设计中断阀值寄存器,控制网卡中断发送的时机,网卡硬件的DMA引擎接收(发送)了一定数量的报文后才置接收(发送)中断。这个固定的报文数量被称为接收(发送)中断阀值,通过设置网卡硬件的中断阀值,能够减少网卡中断次数。
  3.采用零拷贝技术
  从内核到应用的数据拷贝是捕包系统的主要性能瓶颈,采用零拷贝技术[4,5]能够解决该性能瓶颈。通过在内核添加处理模块来将用户缓冲区的虚拟地址转换为网卡可用的物理地址并锁定该地址,改进网卡驱动程序以获取用户缓冲区的物理地址并利用网卡异步DMA工作方式将数据包从网卡直接传送到用户空间,从而旁路操作系统内核协议栈,避免数据从内核空间到用户空间的拷贝。该方法能够大幅度的提高系统的捕包性能,甚至能够达到网卡的性能极限。
  4、总结
  报文捕获技术是网络性能监测、网络协议分析、网络入侵检测、防火墙等网络应用系统的基础。改进和提高报文捕获的效率是大流量网络环境下网络应用系统的重要研究内容。本文对现有报文捕获系统的捕包机制及其性能瓶颈进行了深入的分析,并在此基础上提出了优化和改进的措施,为下一步工作指明了方向:(1)采用零拷贝的报文捕获引擎;(2)采用NAPI技术降低网卡中断开销。
  参考文献
  [1]唐正军,李建华著,入侵检测技术,清华大学出版社,2004.
  [2]W.Richard Stevens,TCP/IP Illustrated,Volume 1:The Protocols,2002.
  [3]王佰玲,方滨兴.传统报文捕获平台性能影响因素分析[J].计算机工程与应用,2003,22:151-152
  [4]杜英明.高速网络环境下基于零拷贝的报文捕获机制研究与实现[D].国防科技大学,2007
  [5]唐勇,胡华平.高效报文捕获引擎FPC的研究与实现[J].计算机工程与科学,2006,28(5):27-29
  [6]贾彩霞,吴秋峰.采用轮询机制提高Linux系统的网络性能[J].计算机工程与应用,2004,24:152-153
  [7]戴斌.高速网络接口卡DMA机制的研究与实现[D].国防科技大学,2006
其他文献
美国20世纪六七十年代民权运动和反越战运动,促进了新自然法学的产生和发展.本文首先明确富勒提出的新自然法的概念及笔者对该学说中法律与道德的理解,进一步分析其他主要学
[摘要]园林建筑小品在园林中起到了美化环境,表现园林艺术的作用,只有恰到好处的园林建筑小品,才能起到以上的作用。本文主要是对园林建筑小品的功能特点,园林建筑小品设计中应注意的事项,园林建筑小品在园林绿化设计中的应用等作了简要分析,希望能为以后的工作提供一定的参考。  [关键词]功能特点;设计;应用;探讨  随着国民经济的发展,人们的生活质量在不断的提高,人们对居住的环境的绿化和美化提出了更高的要求
为探究吕家坨井田地质构造格局,根据钻孔勘探资料,采用分形理论和趋势面分析方法,研究了井田7
期刊
随着互联网、手机等新媒体的普及,给人们的生活以及工作带来了诸多变化,新媒体的出现对传统媒体模式进行了创新,改变了媒体环境的格局,对广播电视节目方面也产生了一定的影响
为落实2003年4月下旬在石家庄举行的北方产权交易共同市场(以下简称“北方共同市场”)一届二次理事会《关于规范开展股权挂牌转让试点草案》和北方共同市场3-5年发展规划,北
目前在监管环境趋严,外部经济环境复杂多变的情势下,商业银行资产质量面临的严峻形势目前尚未有根本性改观,今后工作中要坚决把防控信用风险放在更重要的位置上,把信贷风险管
为探究吕家坨井田地质构造格局,根据钻孔勘探资料,采用分形理论和趋势面分析方法,研究了井田7
知识产权的资本化运营体现了知识生产要素与资本的有机结合,是实现知识产权经济价值的重要途径.专利权出资作为知识产权资本化的主要方式之一,首要环节是对专利价值进行评估.
运用GULP计算软件模拟计算了PbWO4(PWO)晶体中不同位置的填隙氧原子点缺陷的生成能,计算结果表明:当填隙氧原子存在于(WO4)2-的周围时,填隙氧原子点缺陷的生成能最低;进一步