资源描述:
《基于web的网络流量监测系统的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
基于Web的网络流量监测系统的设计第33卷,,_01.33第3期N0.3计算机工程ComputerEngineering2007年2月February2007?工程应用技术与实现?文章编号t100o-428(20o7)03_-0237—03文献标识码:A中圈分类号tTP393基于Web的网络流量监测系统的设计赵新元,王偿(1.华东师范大学计算机科学技术系,上海200062;2.新疆师范大学,乌鲁木齐830054)摘要:网络流量测量是认识网络规律,了解网络行为的前提工作.该文从园区网络流量监测入手,通过对物理网络拓扑自动发现,网络拓扑自动布局以及对RMON2规范的研究,给出了能够分析网络流量成份的流量监测方案,设计并实现了一个基于Web的园区网络流量监测系统.通过对该系统的实施,可以有效地监控网络流量状况.关健词:网络流量;监测;Web;物理拓扑;RMONDesign0fNetworkTrafficMeasurementSystemBased0nWebZHAOXinyuan".WANGNeng(1.ComputerScience&TechnologyDepartment,EasternChinaNormalUniversity,Shanghai200062;2.XinjiangNormalUniversity,Wulumuqi830054) [Abstract]Networktraff~cmeasurementandanalysisarethebasisofnetworktrafficbehaviorresearch.ThispaperproposesthedesignofnetworktrafficmeasurementthatcananalyzetheflowingredientsbyresearchonRMON2.TheproblemaboutphysicalnetworktopologydiscoveryandthelayoutoftopologymapbasedonWebarediscussed.Bymeansoftheimplementationofthissystem,itCanmonitorthenetworktrafficefficiently.[Keywords]Nettraffic;Monitor;Web;Physicaltopology;RMON随着计算机网络和通信规模的不断扩大,网络管理在今天的网络环境中起着愈发重要的作用,一个好的网络管理系统首先要掌握整个网络的物理拓扑结构,从而有效地对网络设备进行配置,性能监测,故障诊断,其次是要能够对网络中的各个物理链路的流量能够进行监测,进一步得出流量成份.目前,市场上的网管软件以三大网管平台为主,即Sun公司的SunNetManager,HP公司的OpenView,IBM公司的NetView.这些网管产品的主要特点是管理功能完善,管理工具众多,丰富的编程接I:1便于二次开发.但这类软件价格较昂贵,而且要充分发挥它们的功能,往往需要进行二次开发.为此,作者开发了以.NET为平台的基于Web的园区网络流量监测系统,为进一步开发基于Web的园区网络管理系统打下基础.1网络拓扑结构的发现要实现对园区网络的流量监测,首要任务是发现园区网络的拓扑结构.网络拓扑结构有两种:逻辑网络拓扑和物理网络拓扑.逻辑拓扑是根据网络设备地址发现网络设备之间的连接关系(对应第3层设备的连接).物理拓扑是通信网内部实体的实际物理连接(对应于第2层设备的连接),包括路由器和路由器之间的连接,路由器和交换机的连接,交换机和交换机之问的连接.对于流量监测系统来说,仅发现三层拓扑是没有意义的,因为Vlan技术的运用使得三层拓扑上的逻辑链路可能对应于多条物理链路,所以我们不能监测逻辑 链路,必须要监测物理链路.1.1三层拓扑的发现寻找园区网络第3层拓扑中所有的网络设备及其连接关系,其基本思想类似于无向图的广度优先搜索算法,从园区网内某一可访问的路由器出发,在其路由表中找到与其相邻的路由器及子网,以此来发现新的路由器,并将其加入到待搜索队列,如此循环直至待搜索队列为空则停止.1.2物理拓扑的发现路由器连接的是物理网络,在这个物理网络中网络拓扑必为树型结构(不考虑备份链路).网络的物理拓扑发现方法一般有两种:(1)基于生成树协议的发现算法;(2)基于地址转发表的发现算法.由于在园区网络中很可能某个物理网络因为没有备份链路而没有开启生成树协议,因此将采用基于地址转发表的发现方案.物理网络拓扑发现方法详细见文献【1】.1.3网络拓扑图的Web自动布局由于整个网络中的网络设备很多,如果将这些网络管理设备全部显示在同一个窗13内,会使整个显示太零乱,不够清晰,同时布局也相对困难,因此网络拓扑的显示可采用分层显示的方法来实现J.我们分两层来显示,第1层是根拓扑图,根拓扑图中仅包含路由器结点和一些必要的交换机结点,这一层的拓扑图可能是含有环路的;第2层为子拓扑,每个路由器结点都有自己的拓扑子图,这一层拓扑图只可能是树.通过选中根拓扑中的路由器结点来打开子拓扑图.这样就可以使整个园区网络的物理拓扑图清晰明了.在树的布局中,为了尽量避免交叉,同时也考虑到显示的美观性,不采用树的通常的布局方案即层次布局,而是采用带权扇形布局来实现.以路由器为根,对树中对每个分枝 赋一个权重值,用来表明该子树分枝所包含的子分枝数目,子分枝数目越多,则分枝的权重就越大,在布局时扇形的角作者倚介:赵新元(1974--),男,硕士生,主研方向:计算机网络管理;王能,博导,教授收稿日期:2006—04-07E-mail:xyzhao_403@yahoo.com.ca一237—度就越大,这样可以尽量避免两个子树在布局上的交叉和重叠.对根拓扑的布局来说,由于根拓扑可能存在环路,因此不能采用树布局来实现.任何一个几何图形都可以用若干个三角形来组合而成.因此采用将图先分解,然后通过共享边再拼接的策略.从图的邻接表出发,遍历每个顶点,获得从该顶点出发的若干个最小简单环图(就是三角形,如有顶点的最小简单环图不是三角形,可以将它分解为若干个三角形),这些三角形必然能够利用它们之间的共享边通过旋转和平移来组合成一个大图.在组合过程中采取一定的策略来动态改变三角形的形状,以达到尽量减少图中交叉的情况.图1,图2为采用本算法对所发现的园区网络物理拓扑的布局.图1为根图的布局,图2为某路由器的子布局.圈1根圈的布局圈2某路由器的子布局2流量监测的实现2.1RMON用于两络藐量测量RMON是IETF定义的MIB(RFC1271).它是对SNMP标准的扩展,定义了标准功能以及在基于SNMP管理站和远程监控者之间的接I:1.由于现在的网管设备一般都内嵌有RMON代理,因此可以通过访问RMON来实现流量测量. RMONMIB由一组统计数据,分析数据和诊断数据组成.在流量测量中使用最多的是Statistics组和History组.统计组提供了对每个监视子网详尽的网络流量统计信息.因此网管站可以根据相应的RMON来获得与被管网络设备接口相连的网段的整体流量,错误率和性能等信息.2.2RMON2甩于藐量成份的分析RMON2从OSI模型第3层到第7层对数据包进行解码,因此RMON2的代理能够基于网络层协议和地址来监视流一238一量,包括IP协议,RMON也可以对应用程序层流量解码和监视(如E—mail,FTP,www等).通过RMON2,网络管理应用程序能够实现生成图标来显示各种协议或应用程序的流量百分比,这种级别的细节对于控制流量和维护性能都是十分有用的.RMON2只是原始的RMON1的简单扩充,它添加了l0个新的组,这里仅对protocolDir和protocolDist组作一简介.2.2.1协议目录组protocolDir协议目录组包括一个协议目录表,其代表能解码和记录PDU的每一种协议都占用一个条目,表中包括MAC层,网络层以及更高层的各种协议.该组包含protocolDirID,prot—ocolDirParameters,pr0t0c0lDirL0cal—Index,pr0t0c0lDirDescr等项目.(1)协议标识protocolDirID对象为特定的协议并包含唯一的字符串.它是第1个索引对象,协议的字符串标识符和MIB对象层次关系类似,被安排成树型的层次结构.在这种情况下,树的根节点是MAC层协议.每个协议由一个或多个32位数值来标识.如以太网的层标识符是十六进制的1,其编码为0.0.0.1, 代表符号为ether2.标识符树中每个这样的节点下面都是通过MAC级别协议直接封装的协议.这种结构可以按需要继续扩展.协议标识是由若干个32位数值来标识,每个协议层都由4个字节的子字段来标识,由于以太网MAC协议封装的每种协议都是由0.0.a.b形式的32位数来标识,其中a和b包含了以太网帧中pe字段的16位数值.如果Snmp协议是Udp协议的161端口上所运行的协议,则其协议标识为16.0.0.0.1.0.0.8.0.0.0.0.17.0.0.0.161,其中第1个16表示该标识符后面有16个字节,符号表示为ether2.ip.udp.snmp.了解了协议标识的组成,就可以添加特定的协议让RMON代理来监测了.(2)协议参数protocolDirTable的第2个索引对象是pr0t0c0lDirParam—eters.该对象实例包含了关于代理中每个特定协议的功能信息.该值的结构为单字节计数字段后跟一系列N字节的参数,每个参数对应于相应protocolDirID中的每一个协议层.这个参数的含义及用法具体请参阅文献[2】.在我们的流量监测中一般均取其默认值0.(3)协议局部索引项在protocolDirTable中除了两个索引对象外,该表还包括protocolDirLocalIndex项,这是一个局部的索引值,它为每个协议目录表中的协议由系统随机地分配了一个编号,在记录某个协议的流量时这个索引值将作为该协议的索引.这个索引值是本地的,也就是说对于每台网管设备来说可能是不一样的.2.2.2协议公布表协议公布表protocolDist组给出每一种所支持的协议已传输的字节和数据包的数量的信息摘要.它由protocolDist— ControlTable控制表和protocolDistStatsTable数据表组成.在控制表中包含pr0t0c0lDistc0ntr0lIndex项,该项唯一识别控制表中的一行的整数,该整数也用作数据表中相应行的索引;控制表中的第2个表项为protocolDistControlData—source,用来识别该行数据源的接E1,即告诉代理要监测哪个接口的数据,并将数据记录在数据表中.数据表protocolDistStatsTable仅包含两项:(1)字节计数pr0t0c0lstStatsoctets,记录该接口接收到的字节总;(2)数据包计数pr0t0c01DiststatsPkts.2.3流量监测实现中的一些关健环节2.3.1网管设备的配置在发现了整个园区网络的物理拓扑之后,就可以从各个网管设备获取流量信息来进行流量监测了.由于我们的系统是基于RMON的,而RMON代理在使用前必须要配置.在RMON和RMON2中每一组项目一般都是由控制表和数据表组成,其中控制表是存放配置参数的,这些参数用来告诉RMON代理需要监测设备的哪些接口等信息,数据表则记录相应的数据.在这里控制表是可读写的,而数据表为只读的.要配置RMON代理,只需要往相应控制表添加控制项来告诉RMON代理如何监测和监测哪些接口的数据即可.在这里就涉及到关于RMON中表的操作问题.我们的系统所需要的数据来一部分来自于RMON1,流量成份数据则来自于RMON2.由于RMON1的表的规范是遵循SNMPV1框架的,而RMON2的表的规范是RowStatus规范,遵循的是SNMPV2框架,因此表操作在实现上是不一样的,这一点需要注意.关于RMON或RMON2的详细的表操作细节见文献【2】.2.3.2流量数据库的设计流量监测的要求不仅要能进行实时监测,还要能够进行 历史流量的查询.对历史流量的查询可按每周,每月或每年的单位来进行查询,流量采样的频率默认为5min一次.如果要记录一年的历史数据,则表中需要105120行数据,这样流量表太大,这还仅是一条物理链路的,对于整个园区网络来说,每条链路都有一张流量表,因此数据量是很大的.因此,流量表的设计不采用这种方式.由于观察历史流量的目的是从宏观上了解流量信息,因此并不需要完全记录历史上每一时刻的流量信息.为了能够以实时,每周,每月,每年的方式来记录流量信息,将按每5min,每30rain,每隔2h,每天的时问问隔来进行流量数据的采样.这样总的流量数据为336(周)+360(月)+365(年)+576(两天)=1637条,远小于上面所述的记录条数,这个数据量还是可取的.在实际采样中仅需要按每5rain的间隔采样即可,其余的采样问隔的数据可以通过计算得出.2.3.3数据处理从RMONMIB中得到的流量信息有限,但通过对这些基本数据的计算,可以得到一些可用于流量分析的有效数据.数据处理主要是对从RMONMIB采样的原始数据在写入数据表之前进行处理,以便在客户端获取数据后直接据此作流量图即可,用到的公式如下"j:ehcerScacsBadPkcs=e[herScaCsCRCAljgnErrors+ehterStatsFragmenls+etberStatsJabbers:etherStatsGookPkts=etherStatsPkts—etherStatsBadPkts:ether0ctetSpeed=△etherStatsOctets,timeslot;ehterPktsSpeed=△etherPktsSpeed,timeslot;另外,由于采集时所要收集的数据在RMONMIB中定义为Counter类型,当达到最大值后就会溢出,Counter归零重新开始计数,因此对于采样值<=上次采样值的统计组,则需要加上Counter的最大值进行修正后再进行相应的处理. 2.3.4流量图与流量成份树的生成为了能在网络拓扑图中显示链路的当前流量信息,采用了5种颜色来标志当前流量占链路带宽的百分比.如果链路出现了断路,则链路的颜色变为灰色.这样就可以使用户能从宏观上了解当前网络中的流量情况,从而选出特定的链路进行详细的流量观察.流量成份采用的是协议树的形式来实现的,即根据RMON2协议El录表来构造协议树,以树状形式显示在流量中各个协议所占的百分比.根为接口收到的总字节数.这样浏览起来比较清晰.当鼠标点击到流量图中的某个时间点时,就会显示出从开始到当前时问段内各个协议所占的百分比.链路流量局部如图3所示.8O%60%40%链路带宽100M链路实时流量图放大倍数:19:44l7:380l:58l0:l8l8:38圈3链路藏量图局部2.3.5所采用的编程平台在系统中对RMONMIB的操作采用的是HPSNMP++组件来实现的.所有的与MIB有关的操作全部都是在服务器端来实现的.由于要在网页上显示网络拓扑图,并且还要对网络结点或物理链路进行操作,仅采用HTML技术无法实现这一点,因此采用了.NET的基于WinForm的组件编程技术来生成客户端组件文件(组件文件扩展名为.Dl1),这就相当于开发早期的ActiveX控件,以便在客户端使用.3结论本文从设计一个基于Web的流量监测系统出发,详细介 绍了基于Web的网络拓扑的自动布局思想,流量成份的监测方案以及流量数据表的建立等问题.通过对学校校园网络的运行测试表明,系统表现稳定,基本满足了设计的基本要求,为进一步开发基于Web的园区网络管理系统打下了基础.参考文献l赵新元,王能.园区网络拓扑发现算法的设计与实现【J].河池学院,2005,25(2).2WilliamS.SNMP网络管理[M】.胡成松,汪凯,译.北京:中国电力出版社,2002.3田海燕,王换昭,李玉鹏.基于RMON的网络流量测量系统的设计与实现[J】.计算机工程与应用,2004,40(5).4邹松,郭成城,晏浦柳.基于Web的网络拓扑图生成方法的研究与实现[JJ.计算机工程与应用,2004,40(10).5JeffreyR.AppliedMicrosoft.NETFrameworkProgramming[M].北京:机械工业出版社,2003.