高速网络下数据捕获技术研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高速网络下数据捕获技术研究

高速网络下数据捕获技术研究   摘要:计算机网络正在迅猛地的发展,已经进入到我们生活的各个方面。网络速率的发展给数据捕获带来新的挑战,数据捕获技术在IDS、防火墙和高性能路由器等领域发挥着重要作用,但传统的捕包技术存在着一些系统瓶颈,致使在网络流量大时,出现许多的丢包现象,已无法适应高速网络环境的需求,研究对数据包捕获性能产生影响的主要因素,从而为提升数据包捕获效率提供直接理论依据。   关键词:数据捕获;内存拷贝;Linux平台   中图分类号:TP393.02 文献标识码:A 文章编号:1671—7597(2012)0120033-01   0 引言   随着计算机网络的发展,网络带宽已经达到了千兆甚至万兆,传统的数据捕获平台已经无法满足高速网络的数据捕获需求。因而研究高流量,高负载情况下的数据捕获技术是很有必要的。目前网络监测,入侵检测以及防火墙大都是由Linux来实现的。Linux操作系统内核有着完善、强大的网络功能,并且占用系统资源较少,效率较高。随着网络应用和网络速度的发展,对数据包处理能力提出了更高的要求。   1 Linux下数据包捕获的流程   Linux平台下实现的包捕获系统一般是采用Libpcap函数库,经过SOCKET接口从内核空间将NIC得到的数据包复制到用户空间来,然后在用户空间对数据包采取进一步的处理分析。数据包到达NIC,通过DMA通道的方式存储到系统内核空间管理的内存块中。接着在用户空间,对得到的数据包进行分析解析等工作。整个网络体系结构分为物理层,数据链路层,网络层,传输层和应用层。通过网卡中断数据包被送入内核空间,同时在协议栈的等待队列中等待软中断处理的结果。对接收到的数据包逐层进行解析,将数据帧步步变化成用户可以读取的消息即为软中断的处理。数据包在每个网络层次为不同的角色,物理层是比特流,链路层称为帧,网络层是分组以及传输层是数据段,最后以消息的形式传到应用层。   2 数据捕获性能的瓶颈所在   数据捕获的影响就处于在网卡上面接收数据,传输数据,接着处理数据,这几个阶段中。分析得出影响数据捕获性能的瓶颈如下:   2.1 内存拷贝。最消耗CPU的操作之一就是内存拷贝??在传统网络中,内存总线的速度要高宽带网络速度一倍甚至数倍,数据包在内存中的拷贝对性能不会有很大影响。随着高速网络飞速发展,网络带宽已经达到内存带宽大小。对数据直接进行拷贝比由程序直接送到网络而不进行拷贝就会在系统性能上面有非常突显的区别。在以前传统捕包平台上,消耗了大量的CPU时间。   2.2 中断处理。经过中断原理的分析,我们得出:系统的每一次中断,都需要进行中断响应,保护现场等一系列操作。在低速网络的状况下,响应中断的平率比较低,因而对系统的干扰不大。但是在高速网络环境下,大量数据包一起来到网卡上,所有的数据报文全部发生中断,中央处理器被迫的响应每一次中断,浪费大量的CPU时钟,不能进行数据包捕获系统后面的处理和分析,大大影响了数据包捕获系统的高效性能。   2.3 协议处理。避开传统的内存拷贝方式之后,数据包通过DMA等方式直接进入系统内核而绕过协议栈。因此我们可以处理掉掉协议栈中没有作用的干扰要素,在用户程序太设计适合自身的协议栈,创造基于多协议栈的并行处理机技术,用来提高系统的处理能力和捕获效率。   2.4 数据校验。数据报文在内部空间和用户程序之间进行拷贝过程中,系统计算内部缓冲区内容的校验和是很有必要的,使数据包接收者保证接收到正确的数据。   3 提高数据包捕获的方法   从上面的分析得出,一个数据包在收发过程中,频繁的系统中断和多长内存拷贝都将消耗大部分的CPU。我们需要在这两个最主要方面加以改进。对于高速网络环境下的数据包捕获,以前低速网络上的数据包捕获技术已经不能够达到系统的需求。在下面我们介绍四种可以提高数据包捕获性能的技术。   3.1 零拷贝技术。零拷贝技术是指数据包的接收和发送进程中不会出现任何内存之间的复制拷贝。数据包从网络适配器到用户程序传送的进程中,降低系统的调用和数据复制的次数,降低CPU在数据拷贝时候的负载,实现CPU的零参与。   3.2 NAPI技术。NAPI技术是一种中断机制和轮询机制的结合体。使用NAPI技术,使数据捕获系统在网络负载情况较低的情况下使用中断的方法,系统的响应速率非常高;使数据捕获系统在网络负载比较重的情况下,使用轮询的方法。能够合理地分析和处理网卡上捕获的数据包。   3.3 基于TOE的专用捕包的网络适配器。在网卡上实现对数据包进行TCP/IP协议处理,这种技术属于采用硬件的方法来提升数据包的捕获能力。TOE技术省去的对TCP/IP协议处理的麻烦问题,可以把CPU时钟周期消耗在外界应用程序或系统的要求上。在数据捕包系统中,TOE技术的采用,使数据

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档