高速IP网络流量测量系统的设计与实现_第1页
高速IP网络流量测量系统的设计与实现_第2页
高速IP网络流量测量系统的设计与实现_第3页
高速IP网络流量测量系统的设计与实现_第4页
高速IP网络流量测量系统的设计与实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE2高速IP网络流量测量系统的设计与实现摘要:网络流量测量是网络流量分析建模的基础,也是网络性能监测的主要方法。不断提高的网络带宽,使网络流量测量面临很大的困难。本文在分析传统网络流量测量系统存在的问题的基础上,采用零拷贝分组捕获和裸设备存储(零拷贝存储)等关键技术,设计并实现了一个被动式网络流量测量系统,使系统性能得到大幅提高,并具有较好的时间精确度。关键词:网络流量测量;分组捕获;零拷贝;裸设备;TSC(TimestampCounter)时间戳DesignandImplementationofaHigh-speedNetworkTrafficMeasurementSystemWangFeng-Yu***,YunXiao-Chun****,ShenWei-Dong*****(ResearchCenterofInformationIntelligentandInformationSecurity,InstituteofComputingTechnology,ChineseAcademyofSciences,Beijing100080)**(GraduateUniversityofChineseAcademyofScience,Beijing100039)***(ResearchCenterofComputerNetworkandInformationSecurityTechnology,HarbinInstituteofTechnology,Harbin,150001)****(InstituteofElectronicandinformationEngineering,Xi’anJiaotongUniversity,Xi’AbstractThroughanalyzingtheproblemsoftraditionalnetworktrafficmeasurementsystem,apassivenetworktrafficmeasurementsystemisdesignedbasedonzero-copypacketcapture,rawdevicestorageandsoon.Theperformanceandtheprecisionofnetworktrafficmeasurementareimprovedgreatly.Thissystemissuitableforthetrafficmeasurementof1Gb/snetwork.Keywordnetworktrafficmeasurement;packetcapture;zerocopy;rawdevice;TSC(TimestampCounter)引言Internet的服务类型不断增多,业务量成倍增长,对网络服务质量的要求也越来越高,好的服务质量依赖于网络的规划设计,以及运行时的控制和调整,而这些都要以真实网络流量的测量和分析为基础。网络流量测量在网络规划、故障诊断、应用与协议性能等方面都有重要意义。当前大部分被动网络流量测量软件解决方案是基于UNIX/LINUX提供的Libpcap库,Libpcap是一个与实现无关的访问操作系统所提供的分组捕获机制的分组捕获函数库,广泛应用的网络监听程序TCPDUMP就是在它基础上开发的。操作系统所提供的分组捕获机制主要有三种:BPF(BSD分组过滤器)[1],DLPI(数据链路提供程序接口),及Linux下的SOCK_PACKET类型套接口,它们的实现机制基本类似。但这一类型的已有测量工具在性能方面有一定的局限性,一方面由于分组传输过程中一些关键通信路径(如系统调用,内存数据拷贝等)的存在,导致Libpcap平台本身效率不高;另一方面,带宽的提高,对流量数据的时间精确度及存储速率和空间也提出了更高的要求。清华大学针对Libpcap的性能问题作了一些改进[2],但由于测量目的不同,其中还是存在一些影响性能的因素。基于这种状况,很多研究机构致力于基于硬件设备的流量测量系统,把数据采集和时间戳等部分功能集中在专用捕包卡上[3][4]。基于硬件的解决方案具有很好的性能和时间精确度,但是这类方案与软件解决方案相比成本高、难以发布、灵活性不好。如何在有限的硬件支持下,解决传统网络流量测量中存在的关键问题,提高流量测量系统的性能,是我们的主要目标。本文第二部分分析了高速网络流量测量中存在的问题,并给出了相应的解决方案,包括基于零拷贝的分组捕获平台、裸设备存储方案以及基于TSC计数器的硬件时钟等;第三部分在千兆网络环境对该系统进行了测试评估;最后对网络流量测量系统作了总结。2.高速IP流量测量系统设计被动网络流量测量包括三个基本处理/传输环节,首先数据从网卡传送到应用程序空间;然后进行字段提取及在线统计;最后传送到到存储设备。其中第一和第三个环节是整个系统的关键所在,处理不好,就会成为整个系统的瓶颈。通过分析可知,在高速网络流量测量中面临的的几个关键问题是:分组捕获的效率;高精度时间的获取;突发流量缓冲;高速数据存储。我们在分析和解决这些问题的基础上,设计了基于双零拷贝的高速网络流量测量系统DZC-TMS(DoubleZero-CopyTrafficMeasurementSystem),系统的设计和实现是基于Linux操作系统的,系统模型如图1所示,下面小节分别对各个部分加以说明。 图1.基于双零拷贝的高速网络流量测量系统模型2.1基于零拷贝的分组捕获平台 在传统的流量测量工具中,数据从网卡到应用程序空间的过程多数是基于类似Libpcap的分组捕获模型实现的。这种分组捕获模型如图2(a)所示(内核部分我们以BPF为例[1])。在这种模型中数据传输是通过操作系统内核来完成的,网络分组到达后,首先以DMA方式传送到内核缓冲区,并发出硬中断,网卡驱动在硬中断处理程序中把到达的分组提交给BPF分组过滤器,经分组过滤器经过滤后才到达用户空间,其中存在很多影响系统性能的因素:数据分组通过单分组驱动机制从内核空间向用户空间传送,效率不高;用户进程频繁的系统调用,消耗大量的资源;处理过程中经过了从网卡到内核缓冲区,再从BPF拷贝到用户空间缓冲区的过程,内存拷贝操作要消耗大量的CPU周期和内存资源。为了提高高速网络环境下分组捕获的性能,有必要减少分组传输过程的中间环节、减少或消除数据拷贝次数。由此我们设计从一个块的起始地址开始,最简单的方法就是通过Linux下的函数调用valloc()来分配从块的起始地址开始的缓冲区,同时要求存储区的大小是块的大小的倍数。由于使用裸设备避免了经过Linux文件系统层,数据直接在磁盘和应用程序之间进行传输,所以在磁盘读写非常频繁,以至于磁盘读写成为系统瓶颈的情况下,采用裸设备可以大大提高磁盘访问速度。由于裸设备使用的是原始分区,没有采用文件系统的管理方式,Linux维护文件系统的开销也都没有了,这也能够有效减少CPU和内存的消耗。为了对裸设备的性能加以验证,我们使用CPU主频1.7G,内存为128MB的微机,在同一块硬盘上对裸设备和Linux文件系统管理下的文件作同样的写操作,连续写入1GB数据,结果对比如表-1所示,裸设备无论在速率还是资源占用上,都有优势,当然裸设备同时也带来了管理和操作上的困难,但在特定系统中,这是次要的。LLinux文件系统裸设备写入速率(MB/sec)占用CPU百分比(%)11.57526.32 3.375表1.裸设备与Linux文件系统写入性能对比3.系统性能测试系统测试环境的配置为:双CPU-PⅣ2.0G;4G内存;RedHatLinux7.2-2.4.18-smp5操作系统+RTLinux内核模块;IntelPro1000千兆以太网卡;Ultra160-SCSI硬盘。为了对测试结果加以量化,我们用RouterTester作为发包机,控制分组长度和发包速度,在不同分组长度条件下,提高发包速度,记录发生丢包之前达到的最高发包速度。同时作为比较,我们用传统的Libpcap和Linux文件系统替换了零拷贝分组捕获和裸设备存储,做了同样的测试,测试结果如图3所示,DZC-TMS系统的最高测量速度随着分组长度的增加,快速提高,当分组长度为512字节时最高测量速率就可以达到约950Mb/s,此后基本不再有提高;而基于Libpcap和文件系统的流量测量系统的最高测量速度随着分组长度的增加提高不大,没有超过250Mb/s。DZC-TMS流量测量系统在总体性能上远远高于传统的流量测量方法。 图3.两种流量测量系统的性能对比在现有测试条件下,系统的瓶颈位于分组捕获部分,也就是说在达到最高测量速度时,在分组捕获部分首先出现丢包现象。我们在实际网络中采用旁路监听方式采集了电信及教育网千兆网络出口的流量,系统运行稳定,没有出现丢包的现象,完全能够满足千兆网络的流量测量需求。前面部分我们介绍了基于TSC时间戳可以达到纳秒级精确度,这里我们通过实验分析其执行性能以及网络分组到达的时间精确度。我们测试了TSC时间获取和通过系统调用gettimeofday()获取时间的效率,在现有测试条件下,执行一次gettimeofday()所用的时间大约是520ns,而执行TSC时间获取所用的时间大约是32ns,二者的性能差别是明显的。由于使用了SMP(SymmetricMulti-Processor)系统和实时操作系统模块RTLinux,任务分派到不同的CPU,而且设置分组轮询进程为高优先级,所以进程调度对时间精确度影响可以控制在微秒级。由于网络流量研究一般是在一定的时间尺度范围内的[10],所以微秒级的时间精确度基本能够满足千兆网测量需求。4.结束语本文在分析传统网络流量测量方法所存在的问题的基础上,设计并实现了基于双零拷贝的网络流量测量系统DZC-TMS,使流量测量系统的性能得到极大提高,能够满足千兆网络的流量测量需求。当然,本系统还存在一些局限性。由于软件方案的限制,本系统在分组到达时间戳上的精确度还不够高,这个问题只能在硬件层次解决。要测量更高带宽的流量,除了采用性能更高的计算机系统以外,分组捕获和存储系统之一必然成为整个测量系统中的瓶颈,如果存储系统成为瓶颈,则可以采用RAID0技术提高存储速度,甚至可以设计一个并行存储系统,通过局域网把存储任务分配到多台计算机;如果分组捕获成为瓶颈,则需要把网络流量分流到不同的测量系统。当然这些都需要比较高的成本。在高速网络流量测量中采用适当采样和压缩技术而又不丢失流量特征,将会极大缓解带宽提高带来的压力,是下一步重点研究的方向。网络带宽不断提高,网络流量测量的难度会越来越大,而网络性能的提高会越来越和网络流量的研究紧密结合,网络流量测量技术需要持续的研究和提高。参考文献:[1]S.McCanneandV.Jacobson.TheBSDpacketfilter:Anewarchitecture.foruser-levelpacketcapture,”In:ProcofUSENIXWinterConf,Jan1993.259–269,.[2]李志春,张辉,有悦等.高速主干网测量系统的设计与实现.计算机工程,2003.29(1):53-55[3]J.Cleary,S.Donnelly,I.Graham,A.McGregor,M.Pearson.DesignPrinciplesforAccuratePassivemeasurement,In:PassiveandActiveMeasurementWorkshop,Hamilton(NewZealand),April2000.[4]Micheel,J.,S.Donnelly,andI.Graham.PrecisionTimestampingforNetworkPackets.In:ProceedingsoftheACMSIGCOMMInternetMeasurementWorkshop,SanFrancisco,California,Nov.2001[5]王佰灵,方滨兴,云晓春.零拷贝报文捕获平台的研究与实现,计算机学报,2005.28(1):46-52[6]杨武,方滨兴,云晓春等.基于Linux系统的报文捕获技术研究.计算机工程与应用,2003(26):28-30[7]田志宏,方斌兴,云晓春.RTLinux下基于半轮询驱动的用户级报文传输机制.软件学报,2004.15(6):834-841[8]W.E.LelandandD.V.Wilson.Hightime-resolutionmeasurementandanalysisoflantraffic:Implicationsforlaninterconnections.In:IEEEInfocom’91.13

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论