王海涛 付鹰
(解放军理工大学通信工程学院 南京 210007)
当前,IP网络存在一些固有的缺陷,如服务质量难以保证,无法确保网络安全,等等。网络测量是深入认识网络特性的重要手段,也是实施流量工程、进行网络管理和优化设计的重要依据,进而为从事网络理论和技术研究以及工程开发各类人员提供帮助和支持。
早在20世纪70年代Vint Cerf就在ARPAnet上开展了性能测量的项目,但直到90年代初IP网络测量的研究才渐成体系。从20世纪90年代初开始,国外已经有许多研究机构开始进行了各种实际测量工作。
随着因特网的应用和发展,用于网络测量的协议也在不断发展。
这些研究工作使IP网络在测量的理论和方法、技术和工具等方面取得了长足的发展。
网络测量方法应该满足三个方面的要求:顽健性,即被测网络的轻微变化不会使测量方法失效;可重复性,即同样的网络条件下,多次测量结果应该一致;准确性,即测量结果应该能够反映网络的真实情况。
网络测量涉及对象复杂多样、测量内容广泛、测量数据庞杂,需要多种测量方法予以支持。具体来说,可以从测量方式、测量点位置、测量参与者、测量时间粒度等角度加以分类。
根据测量过程中是否向网络内注入探测分组,可以将测量方式分为主动测量(Active Measurement)和被动测量(Passive Measurement)。主动测量根据测量需要向网络中注入特定的探测分组,通过对探测分组穿越网络而发生特性变化的分析,得到网络状态和性能参数。例如,网络测试命令Ping通过发送ICMP探测分组可以获得网络网返时延、分组丢失率与连通性等参数。
主动测量不依赖于被测对象的测量能力,适合端到端的网络性能测量。它的缺点在于注入的探测分组不仅会占用网络资源,而且会对网络本身的运行状况造成影响,测量结果往往会有一定偏差。因此,主动测量方法必须设法将对网络的影响减到最小。被动测量在网络中的关键设备和节点上部署测量装置捕获数据分组并进行统计分析,进而获得网络状态和性能参数。被动测量不必发送额外的测量分组,不会对网络自身行为造成影响,测量结果较主动测量更为准确。但是,被动测量实现复杂,只能获得网络局部数据,其准确度依赖于测量装置的性能和统计分析算法,并且还会带来隐私和安全问题。实际中,主动测量和被动测量方法往往结合起来使用,前者适合于网络性能测量,而后者是用于网络流量测量。目前的主动测量工具主要基于TCP/IP中的相关协议,如ICMP、TCP和UDP。被动测量可以基于SNMP协议来实现,也可以用数据分组捕获方式来实现。
按照实施网络测量的位置,可将网络测量方法分为网络边缘测量和网络内部设备(如交换机和路由器等)测量。网络边缘测量只需边缘主机的参与,而不需要网络核心设备的配合,通常借助于网络推测方法来获得网络内部的相关参数。网络边缘测量主要是对网络端对端业务的性能进行测量,也可以基于网络流量矩阵估计方法来估测网络流量。端到端性能测量是IP网络测量的重要内容,可以全面了解网络性能,包括时延、分组丢失率和带宽测量等。端到端业务质量测量是进行网络业务质量监控和管理的重要手段。
网络内部设备测量是一种被动测量方法,通常采用SNMP协议在相关网络设备上通过抽样统计的方法对网络的性能和流量进行测量。例如,在接入路由器和边界路由器等位置可以对网络流量进行测量,也可以针对特定业务流选用的特定路径实施基于路径的测量。
根据测量参与者是否愿意主动配合,可将网络测量分为协作式测量和非协作式测量。协作式测量是指需要被测网络的配合而进行的网络测量,如路由器协作的测量。这种测量既可得到端到端的性能测量结果,也可以对网络性能进行分段分析。而非协作测量不需要被测网络的参与,如检测网络拓扑的变化。
根据测量环境中测量站的数量和分布,可以把网络测量分成单点测量和多点测量。在网络测量研究的早期,网络规模较小,主要采用的是单点测量,通过一个测量站进行网络性能测试。对于大规模网络测量的情况,需要在网络中的很多地点部署测量站进行分布式多点测量,得到比较详尽的、综合的大规模网络数据以及单点测量所得不到的交叉路由信息。现在的多数网络测量体系都采用分布式多点测量, 如NIMI, NLANR和IEPM等。
根据测量指标的时间粒度和用途又可以将测量分为长期测量和短期测量。长期测量通过对网络流量、性能进行长期测量,建立网络行为模型,为网络规划设计提供科学依据。短期测量指实时测量网络性能指标,为保证服务QoS或网络安全提供依据。
目前的测量方法不同程度地存在一些缺陷并限制了现有测量工具的使用能力,主要表现在如下几方面:网络测量依赖于特定的网络协议(如TCP/IP 协议、SNMP协议) ,无法实现与网络结构和协议无关的测量;测量依赖于自治系统内部节点或路由器之间的协作,出于网络安全和商业利益等原因,有些自治系统并不对外开放,难以实现内部节点或路由器的协作与信息交流;大部分的测量工具功能单一,只能具有针对性地测量某个或某几个性能指标,有些方法与工具还需要进行特殊的假设;测量信息的传输为网络造成了附加流量,可能会影响到网络的运行,在网络高负载的情况下,无法进行测量。
IP网络测量技术是实施网络测量的基础,包括网络测量体系结构、网络性能测量技术、网络流量测量技术、业务流量测量技术和网络推测技术等内容。
图1 主动测量工作原理示意图
网络性能测量是分析网络运行状态、服务质量的前提,是实施网络性能管理、改善业务质量的基本手段。性能测量是指通过对网络实际测量,获取网络吞吐量、用户响应时间、线路利用率等方面的性能参量,并确定门限值以进行性能评估。主动测量通过向网络中注入特定的探测分组,并收集和分析这些探测包在网络传输后发生的特性变化,从而得到网络性能参数和网络行为参数,其工作原理如图1所示。
IP网络性能监测系统可以测量各种常见的网络性能指标,包括网络带宽、时延、吞吐量、丢包率和连通性等,这些性能指标的测量主要基于主动测量方法,即监控中心调度多个探针主动发送数据包来实施测量过程。主动测量根据测量需要向网络中注入特定的探测包,通过对探测包穿越网络而发生特性变化的分析,得到网络状态和性能参数。例如,网络测试命令Ping通过发送ICMP探测分组可以获得网络往返时延、分组丢失率与连通性等参数,Traceroute可以测量路由和路由跳数,可以采用Iperf来测量TCP和UDP分组的带宽、时延和丢包率,单路测量可以基于单路延时和丢包协议(OWDP)。协议基本思想为从源站向时钟同步的目的站发送带有发送时戳的IP测试包,在目的站计算其接收时刻与发送时戳的时间差,得出链路的单向传输延时和分组丢失。主动测量不依赖于被测对象的测量能力,适合端到端的网络性能测量。它的缺点在于注入的探测分组不仅会占用网络资源,而且会对网络本身的运行状况造成影响,测量结果往往会有一定偏差。
当前正在使用的主动测量工具,大多数采取如下4种模式:利用Ping及其衍生工具测量到特定主机的时延和分组丢失,并对其规律进行统计分析;利用Traceroute及其衍生工具测量到特定主机的路由,并分析路由的动态变化规律及其对网络性能的影响;利用分组对或分组火车等带宽测量技术,估算端到端路径的瓶颈带宽和有效带宽,并分析带宽的变化规律及其对网络性能的影响;利用分组探测或者获取路由信息的方法,跟踪和探测网络拓扑结构,并利用可视化工具对其进行图形化显示。
被动测量可以分为基于数据分组捕获的协议分析的测量和基于网络管理协议的测量。前者在关键设备和节点上部署测量装置捕获数据分组并进行统计分析,一般通过端口镜像、多路转发(例如使用分光计)以及链路串接等方式收集网络中传输的数据分组、信令数据分组或者管理信息,进而获得网络状态和性能参数。被动测量不必发送额外的测量分组,不会对网络自身行为造成影响,收集到的数据主要用于网络流量测量和各种流量分析,包括流量中各种应用业务构成的分析,报文的长度分布分析、按报文到达的时间分析流量的规律以及分析网络利用率和网络拥塞状况等。被动测量的工作原理如图2所示。首先在测量点部署测试装置捕获数据分组,然后根据需要对数据分组进行分类,进而统计总的网络流量和各网络协议或应用的流量,最后进行流量数据的管理、分析、预测,并将统计和分析结果呈现给用户。
图2 被动测量的工作原理图
基于流的流量测量主要是对网络中的流进行测量和分析,以掌握网络的流量特性,如各种协议的使用情况、业务的服务性能和用户的行为特征等。网络流量测量广泛用于网络规划、性能分析、入侵监测以及QoS保证等领域。对于大规模的网络而言,流量测量和分析非常困难,难以对网络承载的各类业务进行及时准确的流量和流向分析,缺乏有效的流量测量和分析系统。传统的基于网络管理协议的测量系统的典型做法是利用SNMP协议对网络重点链路和接入点进行流量监视和统计,或者利用RMON探测对部分端口进行流量采集和监视。
IETF标准化组织于1990年提出SNMP协议,定义了统一的MIB(Management Information Base)存储流量指标,目前几乎所有的网络设备都支持SNMP协议。基于SNMP的测量过程为:网络管理站发送MIB请求信息,采集接口组、IP组、路由表等各组预先定义的参数,并进行存储分析。HP的OpenView、SUN NetManager等都属于基于SNMP的被动测量系统。但是,基于SNMP/RMON机制的网络流量测量和分析系统有明显的局限性,这种流量分析的粒度较粗,并且往往不是应用相关的。例如,SNMP能够统计流经各端口的数据分组数量,但是无法区分网络流量中不同类型业务的分布状况,也无法对进出的流量进行流向分析。RMON探针需要对监控网段上的每个数据帧进行采集和分析,会耗费大量的CPU资源,而且数据量非常大,分析起来很困难。这种流量测量方式适合总流量测量和接口业务量检测,但不适于流量分析。
为了深入分析网络流量特性,被动测量可以在两个层次上进行,分组级和流级别测量。分组级的被动测量是精细粒度的,包括源、目的IP地址、端口号、分组大小、协议号和特定的应用层数据。存在大量可用的分组捕获工具(俗称嗅探器),大都依赖于libcap库,如TCPdump、Ethereal、Wireshark、SNORT等。Wireshark包括流量签名,可以用于基于分组载荷的应用识别。SNORT是一种实时流量分析和分组记录工具,能够执行内容搜索/匹配并可检测多种网络安全攻击。用于捕获分组的硬件类型分为三种:第一是电缆或光纤分离(或分流)器,可以捕获流量而不影响实际的流量,因为没有将设备添加到分组的路径上;二是采用端口镜像设备,镜像端口的速度可能会限制监视端口的数量,但对分组延迟影响不大;三是在分组路径上放置主动设备(如路由器),该设备可以将分组捕获到磁盘上或将分组镜像到另一台机器上,这种方式会增加分组延迟,但不会更改分组内容。随后,通常会将捕获的分组或相关数据存储在一个本地或远程数据可以便于对数据进行管理和分析。考虑到捕获的数据量很大,必须提高数据访问和分析的效率,因此通常采用高效的数据库管理系统。捕获设备的性能会影响捕获的完整性,并且会造成分组丢失。
相比于分组级测量,基于流的测量是一种宏观测量。需要采用适当的聚集规则,收集的数据包括流的数量、流比特速率、流大小和流分布等。在IP网络中,流指一对端点之间传送的具有相同特征(包括源、目的地址、源、目的端口和协议等)的一系列数据分组。流类似于电信网的呼叫记录,采集一个流的详细数据信息,包括源、目的地址、端口号、协议、业务类型、起止时间、分组和字节数等。基于流的测量便于从更细的粒度对网络流量进行分析,从而更全面地掌握流量特性,如协议使用情况和用户的行为特征等。实际的网络测量中,为了减少测量的数据,采用抽样技术来减少测量开销是很有必要的。RFC 2330中规定抽样时间分布可以是固定时间间隔、随机时间周期、泊松分布时间和几何分布时间等。而NetFlow是Cisco公司专有的流量测量技术,也是典型的基于流的测量系统和工具,广泛用于Cisco路由器和交换机中来捕获、显示和分析各种网络数据流信息,如源地址、目标地址、端口号、协议类型等。NetFlow的缺点是在路由/交换设备上捕获数据包时会增加网络设备的开销,从而影响网络性能,因此主要用在边缘路由器上,不适合用于核心网骨干路由器的测量。为了确定骨干网性能,可以在每一对骨干路由器之间使用基于探测的主动测量技术。这种基于节点对的流量测量的关键是推导流量矩阵,即不同节点对之间的流量大小。流量矩阵可以从基于流的测量结果、网络设备的接口流量统计结果以及其他网络信息中推导出来。其他被动测量工具还有协议分析仪,例如Agilent Internet Advisor,WG Domino等。基于数据分组的被动测量系统因为需要捕获、保存和分析处理链路上经过的数据分组而需要较高的数据处理能力和较大的数据存储能力。基于数据分组捕获的方法还存在用户安全性问题和隐私方面的顾虑。因此,采集系统一般只保存数据包头或者对数据分组按照某种策略进行过滤。
由于因特网分布化、异构化和不协作等特性,IP网络的性能参数难以直接测量出来,需要专门的计算方法进行性能指标的估计。网络推测就是用于性能参数估计和推测的一种技术手段。网络推测利用网络的部分测量信息通过某种推导机制来获得网络未知性能的估计和预测值。如利用端到端的分组延迟和丢失信息可以获得往内部链路的QoS性能。近年来,研究人员将医学、地震预测和地质勘探领域成功应用的成熟理论和方法应用于网络推测,衍生出了网络断层扫描或网络层析(Network Tomography, NT)技术,根据网络外部(网络端点或边界)的测量来分析和推断网络的内部性能和拓扑结构。NT是一种在没有网络节点协作条件下,通过主动发包探测或被动收集网络内部有用信息的新技术,结合统计学方法能够很好地推理出网络所有链路上的QoS参数,如时延分布、丢包率、网络拓扑结构和OD (Origin-Destination)流量等。NT网络推测技术只需测量端到端的网络行为,而不需内部网络的任何协作,不但降低了常规网络测量方法带来的网络负载,还可实现与被测网络内部结构和协议无关的测量。网络推测属于系统识别和参数估计问题,可以根据复杂度和精确度选择相应的估计方法,常用的方法有最小二乘估计、最大似然估计和期望最大化算法等。网络推测的缺点是计算复杂度较高,计算精度不够高。
对网络进行研究的最终目的是为了建立高效、稳定、安全、互操作性强、可预测以及可控制的网络,而网络测量是获得第一手网络行为指标和参数的最有效的手段。本文介绍了网络测量的基本概念和分类,并论述了几种关键的网络测量技术。网络测量是了解网络运行状况、业务性能以及用户使用网络资源和业务情况的重要手段,也是实施网络规划和管理、业务质量评价与控制、业务使用计费和研究网络行为的基础。网络测量具有广泛的应用范围,包括:网络故障诊断、协议排错、网络流量特征分析、业务性能评估、计费管理、网络入侵监测和网络行为分析,等等。因此,研究网络测量方法和技术对于网络基础理论的研究和开发应用都具有重要的意义。
[1] 谈杰,李星. 网络测量综述.计算机应用研究,2006,23(2):5~8
[2] 唐红,赵国锋,张毅等. IP网络测量. 北京:科学出版社,2009
[3] 朱畅华. IP网络测量和业务性能研究. 电子科技大学博士论文,2004
[4] Brownlee N, Claffy K. Internet measurement. IEEE Internet Computing,2004, 8(5): 30~33
[5] 牛燕华,任新华. Internet网络测量方法综述. 计算机应用与软件,2006,23(7):11~13
[6] 杨雅辉,李小东. IP网络性能指标体系的研究. 通信学报,2002,23(11): 1~7
[7] CoatesM, Hero A. Internet tomography. IEEE Signal Processing Magazine,2002, 19 (3) : 47~65
[8] 王俊峰.高速互联网性能测量若干关键技术研究.成都:电子科技大学,2004
[9] 谢高岗.IP网络性能测量技术研究.湖南大学硕士学位论文,2002