硅谷杂志:高速网络下数据捕获技术的研究 |
2012-07-03 10:51 作者:张斌 赵小萌 程晓 来源:硅谷网-《硅谷》杂志 HV: 编辑: 【搜索试试】
|
|
摘要:计算机网络正在迅猛地的发展,已经进入到我们生活的各个方面[1]。网络速率的发展给数据捕获带来新的挑战,数据捕获技术在IDS、防火墙和高性能路由器等领域发挥着重要作用,但传统的捕包技术存在着一些系统瓶颈,致使在网络流量大时,出现许多的丢包现象,已无法适应高速网络环境的需求,研究对数据包捕获性能产生影响的主要因素,从而为提升数据包捕获效率提供直接理论依据。
关键词:数据捕获;内存拷贝;Linux平台
中图分类号:TP393.02文献标识码:A文章编号:1671—7597(2012)0120
【《硅谷》杂志2012年1月刊文】
0引言
随着计算机网络的发展,网络带宽己经达到了千兆甚至万兆,传统的数据捕获平台已经无法满足高速网络的数据捕获需求。因而研究高流量,高负载情况下的数据捕获技术是很有必要的。目前网络监测,入侵检测以及防火墙大都是由Linux来实现的[3]。Linux操作系统内核有着完善、强大的网络功能,并且占用系统资源较少,效率较高。随着网络应用和网络速度的发展,对数据包处理能力提出了更高的要求。
1Linux下数据包捕获的流程
Linux平台下实现的包捕获系统一般是采用Libpcap函数库[4],经过SOCKET接口从内核空间将NIC得到的数据包复制到用户空间来,然后在用户空间对数据包采取进一步的处理分析。数据包到达NIC,通过DMA通道的方式存储到系统内核空间管理的内存块中。接着在用户空间,对得到的数据包进行分析解析等工作。整个网络体系结构分为物理层,数据链路层,网络层,传输层和应用层。通过网卡中断数据包被送入内核空间,同时在协议栈的等待队列中等待软中断处理的结果。对接收到的数据包逐层进行解析,将数据帧步步变化成用户可以读取的消息即为软中断的处理。数据包在每个网络层次为不同的角色,物理层是比特流,链路层称为帧,网络层是分组以及传输层是数据段,最后以消息的形式传到应用层。
2数据捕获性能的瓶颈所在
数据捕获的影响就处于在网卡上面接收数据,传输数据,接着处理数据,这几个阶段中。分析得出影响数据捕获性能的瓶颈如下:
2.1内存拷贝
最消耗CPU的操作之一就是内存拷贝。在传统网络中,内存总线的速度要高宽带网络速度一倍甚至数倍,数据包在内存中的拷贝对性能不会有很大影响。随着高速网络飞速发展,网络带宽己经达到内存带宽大小。对数据直接进行拷贝比由程序直接送到网络而不进行拷贝就会在系统性能上面有非常突显的区别。在以前传统捕包平台上,消耗了大量的CPU时间。
2.2中断处理
经过中断原理的分析,我们得出:系统的每一次中断,都需要进行中断响应,保护现场等一系列操作。在低速网络的状况下,响应中断的平率比较低,因而对系统的干扰不大。但是在高速网络环境下,大量数据包一起来到网卡上,所有的数据报文全部发生中断,中央处理器被迫的响应每一次中断,浪费大量的CPU时钟,不能进行数据包捕获系统后面的处理和分析,大大影响了数据包捕获系统的高效性能。
2.3协议处理
避开传统的内存拷贝方式之后,数据包通过DMA等方式直接进入系统内核而绕过协议栈。因此我们可以处理掉掉协议栈中没有作用的干扰要素,在用户程序太设计适合自身的协议栈,创造基于多协议栈的并行处理机技术,用来提高系统的处理能力和捕获效率。
2.4数据校验
数据报文在内部空间和用户程序之间进行拷贝过程中,系统计算内部缓冲区内容的校验和是很有必要的,使数据包接收者保证接收到正确的数据。
3提高数据包捕获的方法
从上面的分析得出,一个数据包在收发过程中,频繁的系统中断和多长内存拷贝都将消耗大部分的CPU。我们需要在这两个最主要方面加以改进。对于高速网络环境下的数据包捕获,以前低速网络上的数据包捕获技术已经不能够达到系统的需求。在下面我们介绍四种可以提高数据包捕获性能的技术。
3.1零拷贝技术
零拷贝技术是指数据包的接收和发送进程中不会出现任何内存之间的复制拷贝[6]。数据包从网络适配器到用户程序传送的进程中,降低系统的调用和数据复制的次数,降低CPU在数据拷贝时候的负载,实现CPU的零参与。
3.2NAPI技术
NAPI技术是一种中断机制和轮询机制的结合体。使用NAPI技术,使数据捕获系统在网络负载情况较低的情况下使用中断的方法,系统的响应速率非常高;使数据捕获系统在网络负载比较重的情况下,使用轮询的方法。能够合理地分析和处理网卡上捕获的数据包。
3.3基于TOE的专用捕包的网络适配器
在网卡上实现对数据包进行TCP/IP协议处理,这种技术属于采用硬件的方法来提升数据包的捕获能力。TOE技术省去的对TCP/IP协议处理的麻烦问题,可以把CPU时钟周期消耗在外界应用程序或系统的要求上。在数据捕包系统中,TOE技术的采用,使数据报文的协议过滤直接在网卡上面进行,数据包的过滤作用,节约了系统资源,对无用的数据包放弃捕获。
3.4PF-RING套接字
PF-RING基本思想是将NIC接收的数据包存储在一个环状缓存。用户区程序从环形缓冲区读取数据,使CPU能够被更好的利用。零拷贝技术的具体延伸就是PF-RING套接字技术,它省去了网卡驱动的修改问题,并且还提供了数据包捕获函数库的各种接口,可以很好提升数据包捕获系统的性能,而且还拥有好的可移植性。
4结束语
本文在研究Linux下数据包捕获流程的基础上,分析出了对数据包捕获性能产生影响的主要因素:内存拷贝、系统调用等,并研究了几种能够提升数据包捕获效率的方法,最后对各种据捕获技术的特点进行对比。完成了在大流量网络环境下数据包捕获的要求,提高了系统数据捕获的性能,为以后设计和使用数据捕获技术的系统创造了有利条件。
参考文献:
[1]华蓓,计算机网络原理与技术(第2版)[M].北京:科学出版社,2010.
[2]刘泓、张常泉,网络协议分析技术研究[J].软件导刊,2010,9(4):116-118.
[3]郑鹏、曾平、丁建利,Linux原理与应用[M].武汉:武汉大学出版社,2009.
[4]曹桂平,Linux内核网络栈源代码情景分析[M].北京:人民邮电出版社,2010.
[5]方亮、喻金科,基于Linux高速网络数据捕获技术[J].计算机与现代化,2010,9(2):30-34.
[6]王军,基于Linux的网络数据包捕获工具的开发[J].师范学院学报(自然科学版),2009,26(4):57-59.
作者简介:
张斌(1986-),男,汉族,河北石家庄人,硕士在读,华北电力大学计算机系,研究方向:计算机网络及应用;赵小萌(1987-),女,汉族,河北邯郸人,硕士在读,华北电力大学计算机系,研究方向:计算机网络及应用;程晓荣(1963-),女,汉族,河北邯郸人,博士,教授,华北电力大学计算机系,研究方向:计算机网络应用。(注:本文版权归作者本人和硅谷杂志所有,禁止他人未经授权转载)
|
|
|
|
【对“硅谷杂志:高速网络下数据捕获技术的研究”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|