程进荣 钱俊杰
【摘 要】本文讨论端到端网络时延测量的关键技术和影响因素, 介绍了网络时延的有关概念,基于ICMP、TCP、UDP等几种网络通信协议的网络时延测量技术,给出了几种网络时延测量的实现方法。
【关键词】网络测量;时延;测量技术
0 引言
随着Internet的发展,其规模迅速扩大、网络业务不断出现、网络拓扑结构日益复杂。但具有开放、分布式、不协作、异构等特点的因特网有效管理和控制变得更难。人们致力于在各种情况下寻找和建立连接,主要关注分组向那里发送,而较少关注发送分组的时间。分组到达的时间时延大大影响了因特网的服务质量。要提高网络服务质量,就要找出存在问题。当前的网络性能测量评价指标包括:时延、流量、丢包率、吞吐量(带宽)等。其中网络时延是最重要、最常用的性能指标。
1 网络时延的基本概念和时延测量原理
时延是指一个报文或分组从一个网络的一段传送到另一端所需的时间。时延由发送时延、传播时延和处理时延组成。发送时延是节点在发送数据时使数据块从节点进入传媒所需要时间,也就是数据块的第一个比特开始发送算起,到最后一个比特发送完毕所需时间,也称为传输时延。处理时延是指数据在交换节点为存储转发而进行必要的处理所花费时间。
2 时延测量中的关键技术和影响因素
时延测量首先要消除测量中出现的随机性。网络分组的时延是一个随时间变化的随机变量,由固定时延和可变时延两部分构成。固定时延是基本上不变的,它由传输时延和传播时延构成。传输时延由分组大小和链路的容量决定,一个分组的大小一旦固定,通过的链路容量便是固定的,其传输时延也是固定的。传播时延由固定的物理传输介质确定并且是固定的。分组时延中的可变时延是由很多因素造成的。它可以分成中间路由器处理时延和排队等待时延两部分。对于任何一个分组,中间路由器总要对其进行路由查表以确定其转发端口,这个时间可以看成是处理时间。同时,中间路由器繁忙可能导致分组排队等待处理,也需要一段等待时间。处理和等待时间是不固定的,由路由器的具体性能以及链路的拥塞状况而定,是一个随机变量。所以如果链路不出现拥塞,一个分组的最小时延便与该分组的大小成线性关系。分组的时延具有突发性和偶然性,为了能够使测量结果尽可能地反映网络的真实情况,可以采用低通滤波的方法来消除随机性。
其次,对网络时延的测量,必须保证网络入口点和出口点时钟同步。如果时钟不同步,则时延测量会有很大误差。网络中路径往往是非对称的,或者即使路由是对称的但往返具有不同的性能特征。单向时延测量要求严格的时钟同步。GPS时间同步技术是当前比较成熟的并在国际上广泛使用的时间同步技术。单向时延测量一般要求、成本比较高。在实际的测量中,测量精度不是主要问题。网络时延通常在数十到数百毫秒范围内,测量存在几毫秒的误差完全可以接受。因此测量方案都采用往返时延,可以避开时钟同步问题。
网络时延总是随着网络的运行状况而不断变化。通过分析,可将影响网络时延测量的因素归为两类:1)网络本身的性能,即完全独立于网络测量方法、仅与网络本身特性相关的部分;2)测量报文的特定性能,与网络具体的测量方式密切相关.
目前,基于端到端的网络时延测量方法,能达到快速准确的目的。这种方法,不是单个设备的时延测量,而是某一段甚至某一跳之间链路的时延测量。端到端往返时延的计算时间都在同一台计算机上,不存在时间同步问题,无需在测量的两端都安装测量软件,只需要固定一个测量点,另一个测量点可以任意选择,使测量范围扩充到整个因特网。端到端传输优点是链路建立后,发送端知道接收设备一定能收到,而且经过中间交换设备时不需要进行存储转发,因此时延较小。端到端传输缺点是直到接收端收到数据为止,发送端设备一直要参与传输。如果网络时延很长,那么对发送端设备造成很大浪费。端到端传输的另一个缺点是如果接收设备关机或故障,那么端到端传输不可能实现。在端到端网络时延测量中,要降低这种缺点带来的影响,就要选择合理的测量时段、数据包字长和测量样本等。
3 网络时延测量方法
根据网络时延测量其承载数据包的协议不同,网络时延测量方法可分为:基于ICMP协议的网络时延测量。Ping是基于ICMP请求应答报文开发的应用软件,用来诊断网络故障,也是用来测量往返时延最常用的工具。Ping工具通过向网络中特定地址发送ICMP echo报文,并监听回应报文,根据回应报文的探测结果,来评估主机路径的可靠性、往返时延大小等。将报文封装在ICMP报文中是目前网络测量工具最常用的方式,但是ICMP报文也是用来进行DOS攻击的主要方式,因此在许多ICMP协议都被过滤了,可能会完全被阻塞。路由器可以限制ICMP回复的速率来避免被消耗过多的网络带宽和路由资源。这意味利用ICMP协议测量时延的结果是不可靠的。基于UDP协议的网络时延测量。当对方主机或者中间节点过滤掉ICMP报文后,可以使用UDP报文来实现网络的往返时延测量。UDP报文的实现和ICMP报文较相似,都是无连接的。不同的是UDP协议需要指定一个端口,在实际使用时,可以任选一个端口,当接收方该端口对应的服务不存在时,会立即返回一个“端口不可到达”的IC-MP报文。因此,在使用UDP报文进行测量时,要注意发送方发送一个UDP报文,接收方反馈的不一定是UDP报文,也有可能是ICMP报文,这两种返回的报文都可以用来计算网络的时延。此外,UDP协议在实现时要注意其最大报文长度与ICMP报文不同,通常应小于500 Byte。但是将报文封装在UDP报文中也有疑问。UDP没有TCP协议所固有的拥塞控制算法,在UDP报文使用达到高峰时,为了减少对TCP流的影响,UDP报文的速率可能会受到限制。
基于TCP协议的网络时延测量。针对防火墙设置,虽比较复杂,但可适用于测量某些前两种方法不能工作的特定环境。除了选取合适的承载报文,TCP协议测量网络时延的难点包括TCP协议发送机制本身。TCP协议为提高传输效率,往往不是即时发送报文,而要收集足够的数据后才发送,可能会产生发送方记录的发送时间远远早于时间发送时间,而使得测量的结果大于实际值的现象。为避免此现象的发生,要求在主动测量时,不但要求发送方在承载的TCP报文中加入PSH标志,此时将立即发送此数据报文而无需等待,同时也要求接收方在反馈该报文时,也必须带PSH标志。同理,在被动测量时,要注意承载的报文必须是带有PSH标志的报文,并且对应的反馈报文也必须同样带有PSH报文。也可以利用其它协议实现网络时延的测量。方法基本和UDP或TCP类似,关键根据所在网络设置的具体情况,灵活选择承载报文,即能在发送方立即发送,而接收方收到后又能立即反馈的报文。
4 结论
本文阐述了网络时延的相关概念,讨论了影响网络时延测量的各种因素。在实际测量中可根据具体情况灵活选择合适的测量方法。当前,利用端到端时延测量结果进行网络断层推测,是网络测量的一个新兴领域。随着对网络测量研究的深入,人们将更加深刻了解网络的本质,让网络为人类的生活提供更好的支持。
[责任编辑:谢庆云]