-
延迟时间 编辑
中文名:延迟时间
外文名:delaytime
学科:通信网络
定义:传输一个数据包所花时间
组成:传输时延、响应时延、排队时延
原因:带宽不足、传输饱和
在网络,延迟时间(latency),同义词为延迟,是表示从特定点得到一个数据包(packet)所花的时间。在一些情况下,延迟时间用发送出包到回到发送端这个运行一个周期的时间就是延迟时间。网络传输延迟时间的原因包括:传输,包在两地之间以光速传播所花的时间。发送:媒介本身(不论是光纤(fiber optic)、无线或其他介质)导致了一些延迟。大包导致的延迟往往要比小包导致的时间长。路由器和其它处理,各个网关、节点(NOde)花时间检测可能会改变包的头(比如,改变生存时间(time-to-live)域内的跃点(hop)计数)。其它计算机和存贮延迟,在网络之内各个传输的端点,小包也许会被存储并且硬盘要存取,延迟就发生在中间设备比如交换机(switch)和网桥中。
对用户来说,延迟时间,又称网络延迟,是指用户发出请求到远端系统对该请求作出响应传回给用户的这一段时间。对基于 TCP/IP 协议的 Internet 来说,对每一请求都要作如下处理:路由处理、ADU(用户数据单元)在网络上传输以及服务器对请求进行处理,这些过程都会引起延迟。
首先来看路由延迟,它包括域名请求延迟、TCP连接建立延迟、TCP连接释放延迟和IP在各个网关上的寻径延迟。若用户应用中使用的是对方主机的域名而不是IP地址,在应用程序通信之前应解析出对方IP地址域名解析过程引起的延迟称作域名请求延迟。应用程序将域名交给本地解析器软件,该软件首先在本地缓存区中查找相应域名— 地址联编;如找不到, 本地解析器构造一个询问报文,发往初始域名服务器(本地服务器),域名服务器根据解析情况回答一个响应报文。域名服务器解析采用二步法: 当初始服务器找不到该域名时,则将询问报文发往根服务器,进行自顶向下的搜索(域名服务器组织成树形层次结构)。本地缓存区对域名请求的响应延迟是由CPU、内存、外存速度决定的,该延迟相对来说很小。域名服务器的响应与网络负载、服务器的速度和负载有关。当需要从根服务器开始查找域名时,传输延迟则成为 LAN 上的延迟,此延迟相对较大。TCP 连接建立延迟指从传输服务用户要求建立连接到收到连接证实之间的时间,它包括远端传输层的处理工作时延 。连接释放延迟指从一端的传输层用户发起释放连接请求到另一端的释放实际发生为止之间的时延。连接建立和释放延迟与网络负载及服务器负载有关。TCP/ IP 协议中,每个IP 数据包是独立寻径的。IP寻径延迟指IP 数据包从源端到目的端的各个网关上的寻径延迟,包括网关寻径表处理延迟和地址解析延迟。网关地址解析由 TCP/ IP 提供的ARP( Address Resolution Protocol,地址解析协议) 来完成。由于网关寻径在本机内完成, 而地址解析也在本网内进行,所以IP寻径延迟相对较小。
位于应用层的用户数据单元 ( ADU)在应用层协议调用下层协议提供的服务之后形成协议数据单元( PDU),PDU 作为独立的数据单元在网络上传输。PDU 在网络上的传输延迟由以下几部分组成:打包延迟、传送延迟、传播延迟、排队延迟及处理延迟。打包延迟是实时流应用独有的延迟。实时流应用是指对基于时间的信息( 比如视频 、音频和动画等)进行实时传送的应用。实时信息流是有时间性的,按时间顺序有规律地产生,要等待信息流达到一定的数量以满足协议数据单元( PDU) 有效负载才打包成PDU,这段等待时间称作打包延迟。打包延迟Sp /K,其中Sp为 PDU 有效负载长度,K 为应用的编码速度。因此对于低速编码器来说,延迟比较大 。传送延迟是指 PDU 数据全部传送到线路上的这段时延,或者说 PDU 的第一个比特从端点传送到线路上直到最后一个比特离开端点的这段时间间隔。传送延迟与 PDU 大小以及局部线路上的传送速率有关,对于低速链接 ,传送延迟相当可观 。
传播延迟是 PDU 在介质中传播所用的时间,取决于信号穿过介质的速度。也就是说,这个延迟由链路的物理特性决定,与链路的业务量无关。传播延迟随距离线性增加,LAN 和 MAN 中的传播延迟只50 ~200us,这并不是重要的延迟组成部分。而 WAN 中的传播延迟就变得比较重要了,因为远距离传送使得传播延迟可以达到几十毫秒。排队延迟是分组交换网中的主要延迟,它指的是PDU 在传输路径上每交换一次所引起的缓冲延迟的集合。若分组交换临时过载,每一个 PDU 的目的输出端口上可能有许多分组排队。 队列中位于 PDU 前的每一个分组都会产生一个等于传送延迟的附加延迟。在先进先出( FIFO) 队列机制的交换中, 新到达的分组的排队延迟等于已在该输出端口上排队的所有分组传送延迟的总和。所以排队延迟既与队列前面的分组数量有关,也与输出端口的传送速度有关 。作为主要延迟的排队延迟受当前网络负载影响, 它也是分组交换网中延迟变化的主要因素。由于 Internet 主干网上每个路由器都有大量的数据包排队,排队延迟也成为Internet 上的主要延迟。如若经过10个路由器,每个路由器平均有10个IP数据包排队, 在这条路径上的排队延迟能够达到上百毫秒。处理延迟是路径上每次交换以及源端和目的端对数据包进行处理花费的时间的总和,它不包括排队延迟。在分组交换的交换过程中,处理延迟与排队延迟相比较可以忽略不计,但在端点它还是相当可观的,特别是象视频解压这样的应用 。
网络性能测量方法按照测量方式分为主动测量和被动测量。主动测量是将探测包注入到被测网络中,该探测包记录在网络中的传递情况,在终端通过解析探测包来获取网络性能数据。被动测量方式使用监测设备或工具,通过捕获被测网络中所传递的数据包来分析网络特性。这两种方法各有优缺点。主动测量方法具有灵活的可控性,能够根据测量者自己的意图进行参数设定,如包的类型及大小等。但是注入网络的测量数据流会增加网络负载,从而影响网络性能,测得的数据不能真实反映网络实际性能。被动测量的优点是在测量时并不会增加网络上的流量,所测得的数据能够真实反映网络性能。缺点是可控性差,并且采集数据的保密性和安全性将会受到影响。因此,有时常常将这两种方法结合起来进行网络测量。根据关于网络延迟度量的定义可知任何层的延迟可归结为单向延迟或往返延迟,只是协议不同而已。所以以下测试方法都能实用到网络层以上的延迟测量中。
单向延迟测量方法
首先选择测量所使用的协议,如TCP、UDP、ICMP (Internet Control Message Protocol,因特网控制报文协议)、OWDP (One Way Delay Protocol,单向延迟协议)、IPMP (Internet Protocol Measurement Protocol,IP层测量协仪)等,确定所选协议更细节问题,如TCP、UDP端口号,超时等待时间及测量包的大小等。当确定了这些参数以后,按如下步骤进行:
(1)协商源端和目的端同步:即源端和目的端的时钟之间必须精确同步。
(2)在源端,确定目的端的IP地址,根据所选测量协议的结构来填充测试包。空缺部分应该填充为随机比特位,以避免所测量出来的时延低于路径中采用了压缩技术后的时延。在测试包中设置时间戳,然后发送填写好的测试包到目的主机。
(3)在目的端,准备接收该包(使用被动测量方法,即利用监测工具进行抓包)。如果包在一个合理的时间内到达,立刻将接收时间减去包中的发送时间,就可计算出估计的单向延迟值。该值在源端和目的端时钟同步的前提下才有效。如果包不能在一个合理的时间内到达,则该单向延迟值应被设置为未定义。解决时钟同步问题的方法主要有两种:软件同步和硬件同步。基于GPS(Global Position System,全球定位卫星系统)的同步属于硬件同步;基于网络时间协议(Network Time Protocol)的同步和基于算法估计的同步属于软件同步。在互联网上时间同步多利用NTP服务器来实现,NTP服务器采用GPS接收机来提供参考时钟,主机通过网络时间协议NTP来获得NTP服务器的时间。消除时钟不同步的算法有线性回归算法、中值线适应算法、分段最小算法、Convex Hull Approach算法及线性规划算法等等。
往返延迟测量方法
准备工作同单向延迟测量方法,测量按以下步骤进行:
(1)在源端,确定目的端的IP地址,根据所选测量协议的结构来填充测试包。为了避免由于路径上的压缩技术而使被测延迟低于预期结果,空缺部分应该填充为随机比特位;并且测试包必须设置ID号,以便源主机收到响应包后能够判断出是自己发出测试包的回应。
(2)在源端,设置测试包中的发送时间戳,然后发送填写好的测试包到目的主机。时间戳可以放在包内,也可以放在包外,只要包含一个合适的标识符以便接收的时间戳能够和发送的时间戳相比较。
(3)在目的端,准备接收测试包。如果测试包到达了目的主机,要快速产生响应包并发送到源端。
(4)在源端,准备接收相应的响应包。根据ID号来判断是不是自己测试包的回应。如果响包在超时等待时间内到达,立刻将接收时间减去响应包中的发送时间,就可计算出往返延迟值。如果响应包不能在超时等待时间内到达,该往返延迟值被设置为未定义 。