互联网从诞生之日起就受到了人们的青睐。人们希望利用互联网技术来改变其生活方式,事实上,互联网技术经过几十年的长足发展,已经影响并改变了传统的生活、工作和学习等方式。互联网技术的发明可以说是人类发明史最伟大的杰作[1],随着网络规模的日益扩大、互联网用户数量激增和新的网络应用不断出现,用户对互联网资源的需求也急速增加,这就使得网络经常出现服务质量(QoS)低、网络阻塞严重等现象[2]。尤其对于校园网用户来说,随着校园网络日益规模化和复杂化,其用户数量通常过万,当校园网用户访问公网(中国联通网络、中国移动网络、中国电信网络等)时一般会出现网络阻塞严重甚至会出现访问不可达等现象。在这些情况下,如何提高校园网用户服务质量是网络管理人员面临的重要问题。要有效地解决这些问题,首先就需要对网络进行测量,然后根据测量结果分析、改进网络中存在的问题。
本文所述测量系统主要是基于校园网络,实现一个具有分布式、可扩展性的网络测量平台。利用各种测量方法和测量工具,测量校园网访问公网和其他校园网络各种相关的网络性能参数。从而获得网络的状态信息,掌握和分析校园网络中各种性能参数,研究校园网多出口环境下的网络优化问题,为校园网络的优化提供有价值的参考。
1 网络测量技术
对于网络测量技术的研究始于20世纪70年代,随着网络技术的飞速发展,网络中出现的各种难以预测的问题日益增多,网络测量技术也越来越受到研究人员的关注。对于网络测量,目前没有一个统一的定义,人们只是形象地将网络测量描述为利用一些有效的方法和成熟的技术,通过使用软硬件工具来测试了解网络的运行状态、获得网络性能参数和网络行为指标等一系列活动的总称[3-4]。网络测量技术主要包括以下几个方面:测量方法、测量对象、测量工具和测量结果的可视化等[5]。
1.1 测量方法
由于测量方法分类较多,本文仅介绍几种最基本、最常用的分类方法[6]。根据测量环境中测量节点数目的多少,可以分为基于单点的网络测量和基于多点的网络测量;根据被测者是否知情,可以分为协作式网络测量和非协作式网络测量;根据被测节点的位置,可以分为端到端的网络测量和分布式的网络测量;根据测量的行为方式,可以分为主动式网络测量和被动式网络测量。
主动式网络测量方法是测量源节点向目标链路或者目标节点发送探测数据包,然后根据返回的网络性能参数来研究和分析网络的行为。主动测量方法非常易于在网络测量中实现,而且能以更加直接的方式来分析网络,可以全面掌握整个测量网络的行为特征。但是,主动测量方法也存在一定的缺陷,该方法在测量的过程中需要向网络中注入特定的探测流量,导致了网络中流量的增加。虽然探测流量很小,但是如果控制不当,也会在增加网络负荷的同时对网络性能结果产生一定的影响。
被动式网络测量方法是通过在网络中特定的节点上安装探针和数据采集器等来收集流经该节点的网络流量,然后进行分析,提取业务特征进而获得网络性能数据。被动测量方法主要是通过在一个特殊点观察网络的行为,不会增加和修改网络的数据,对于网络负荷基本上没有影响,能够较为准确地反应网络中的性能。但是,从被动测量方法中捕获得到的包难以甚至不可能包括想要的某些信息,被动测量方法的适用范围较小,并且难以实现对网络整体的理解和网络端到端行为的理解,因此,被动测量方法主要用在带宽测量和流量测量等方面。另一方面,由于被动测量方法可以直接获得该节点上的数据,可能会造成信息泄露等安全方面的问题。[page]
1.2 测量对象
根据网络测量的对象,可以分为网络拓扑发现、网络流量监控、网络性能测量和路由探测等方面。其中,对网络性能的测量最能够反映网络服务质量的高低。网络性能参数主要包括:基于网络层的性能指标(单向延时、往返延时、丢包率、带宽、可连通性等),基于传输层性能指标和基于应用层性能指标。路由探测主要是测量源节点和目的节点链路之间所包含的各路由信息状态。通过分析测量路径,能够发现网络中是否存在故障。例如,可以发现链路中是否出现中断不可达问题、路由器的配置问题、环路问题以及路径的冗余等问题。本系统主要从网络性能和路由探测两方面进行研究设计。
1.3 测量工具
测量工具是测量网络行为特征的重要组成部分。目前,测量工具主要有:基于网络性能的测量工具ping、fping、pathchar、traceroute等,基于流量的测量工具iperf、netperf、netflow、nettramet等,基于拓扑发现的工具skitter、GASP等,基于路由选择的工具traceroute、ASExplorer、RouteRracker等[7]。网络测量工具的选取对于网络测量结果有着重要的影响。本系统主要使用基于网络性能(ping、traceroute)和路由选择(traceroute)两大方面的测量工具。
2 体系结构的研究与设计
本系统主要通过在不同区域的高校部署客户端测量节点,实现一个分布式可协作的测量系统。其体系结构设计如图1所示。
该系统主要使用主动测量方法,测量节点通过主动测量工具探测网络上的目标节点,主要涉及到的测量参数包括带宽、延时、丢包率、可连通性和节点间的路径等,通过对这些参数的返回值进行分析处理,并把测量结果以图形化的方式显示在客户端Web服务器上。
系统主要分为服务器和客户端两大部分,采用的是B/S结构。服务器节点主要负责客户端节点的注册、管理和监测节点状态,向客户端节点分配测量任务,保存客户端节点返回的测量结果,显示已经部署好的客户端节点拓扑分布图并能够通过服务器端直接访问客户端节点。客户端节点主要完成测量任务,但是,它又不是完全意义上的客户端,当有其他客户端节点请求该节点进行协助测量时,此时该客户端节点又可以转变成为被请求客户端节点的服务器。客户端的主要功能包括:对服务器分配的任务进行测量并且保存和传送测量结果,本地用户的添加、删除、修改等管理操作,协助其他客户端节点完成测量任务,图形化显示出测量结果等。[page]
3 系统主要功能实现方法
根据网络测量系统的体系结构,网络测量系统从功能上又可以划分为通信控制模块、数据收集模块、数据分析和处理模块、数据存储模块和结果的可视化显示模块等[8-9]。
3.1 通信控制模块
通信控制模块主要完成服务器向客户端分配任务、客户端向服务器发送心跳数据、客户端节点测量结果的传输等。为了保证数据在网络传输过程中的安全性,自定义并设计了通信协议,利用socket通信来完成基于TCP协议的可靠传输。图2所示是客户端和服务器端的通信流程。
3.2 数据收集模块
在数据收集模块中主要使用ping、fping、traceroute等主动测量工具向测量目标节点发送ICMP数据包,利用测量返回值得到性能参数。由于主动测量方法会增加网络的负荷,因此选择数据包较小的ping工具,而且在测量的过程中使用定长的时间间隔(客户端还可以根据需要修改间隔时间,默认的情况下是5 min)进行采样,这样就可以缓解网络中由于负荷过重可能导致的网络阻塞。
3.3 数据分析和处理模块
由于网络中各种因素的影响可能使每次测量的结果偏差较大,为了减少误差,使测量结果能够更好地反映实际情况,对测量结果求均差和方差等一系列分析处理,并把处理后的结果保存到数据文件中。[page]
3.4 数据存储模块
服务器端使用mysql数据库来保存节点、用户、测量任务等相关数据。同时,服务器对测量结果的保存采取文件的方式,每个测量节点的测量对象对应有2个文件,其中一个文件保存历史纪录,另一个文件保存最近的一次测量纪录。客户端数据库采用RRD结构形式,优点在于数据的保存与绘图。每个测量对象对应一个RRD文件,保存对应测量结果。RRD文件的结构如下图所示,每一行都是上面一行若干数据的平均值,在记录超出后自动删除旧数据,保持记录数不变,这样只需保存少量的数据,减少日记文件的平均。其结构如图3所示。
3.5 结果的可视化显示模块
使用rrdtool画图工具将保存到文件里面的数据绘制成二维图形,以Web的形式在客户端显示出来。为了更好更全面地反映网络性能,以利于管理者分析和发现网络中的问题,在结果显示模块中将会同时显示每小时、每天、每周和每月的测量结果。
4 测量实验
本系统在清华大学部署了一个服务器节点和一个客户端节点,以下数据均来源于清华大学网络中心部署的1台客户端节点的测量结果。
图4显示的是一周内测量节点到中国银行站点的往返延时和访问中国银行主页需要的下载时间结果。从中可以发现测量结果具有很强的相似性和规律性。图5显示的是一天之内测量中国银行的往返延时和访问中国银行主页需要的下载时间结果。可以看出在白天8点以后下载时间和往返延时明显增加,分析可能到了访问高峰期。
图6显示的是清华大学网络中心到交通银行网站节点的路径,不同深度的灰色代表节点往返延时(RTT)处在不同的时间范围,从最小的深灰色(小于15 ms)到最高的白色(大于120 ms)。可以在图6中直观地看到前面三跳其往返延时较小说明可能在同一个校园网中,紧接着往返延时变大,说明可能跳出校网网络。根据大量路径测量结果可以发现校园网是否存在冗余路径和一些配置问题,进而进行优化改进。
本系统经测试运行良好,其测量结果能够较为客观地反映网络性能,为网络管理者提供一个有效的辅助工具。但是本系统没有考虑到基于IPv6网络相关性能测量,因此下一阶段需要继续完善以能够更好地实现基于IPv4和IPv6同时测量。[page]
参考文献
[1] 谈杰,李星.网络测量综述[J].计算机应用研究,2006,23(2):5-6.
[2] 秦丰林,段海新.校园网内网银速度大比拼[J].中国教育网络,2009(11):36.
[3] Wikipedia.Momitoring and measurement in the next generation technologies.2008.
[4] 张宏莉,方滨兴,胡铭曾,等.Internet 测量与分析综述[J].软件学报,2003,14(1):110-115.
[5] PRASAD R S,MURRAY M,DOVROLIS C,et al.Bandwith estimation:metrics,measurement techniques,and tools.http://www.caida.org/outreach/papers/2003/bweatmetrics.pdf.2003.
[6] JAIN M,DOVROLIS C.End-to-end available bandwidth:measurement methodolgy,dynamics,and relation with TCP throughput.in Proceedings of ACM SIGCOMM,2002:295-308.
[7] 黎文伟,张大方,杨金民,等.端到端路径容量测量工具性能分析[J].计算机应用,2006,26(10):2275-2276.
[8] 姚丽娜,胡建国.网络流量测量的研究与实现[J].微计算机信息,2007,23(10):175-176.
[9] 王恺,杨峰,毕经平.一个支持自动协作式测量的大规模网络测量系统[J].计算机工程,2006,32(9):123-125.