延迟、等待时间和抖动
来自EEWiki.
延迟和等待时间是近义词,都是指从源到目的地传输一个比特所花费的时间量。抖动是指随时间而变化的延迟。查看滞后时间的一种方法是查看系统保持一个数据分组的时间长度。该系统可能只是一个设备(如路由器),也可能是一个完整的通信系统(包括路由器和链路)。
图D-18表示了带宽、延迟和吞吐量之间的关系。带宽通常用来指一个系统的数据速率,但它更适合于指一个系统在运行时所需要的频带的宽度。数据速率和线路速度这两个词更适合于在谈论传输数字信息时使用。系统的速度受拥塞和延迟的影响。吞吐量是指在考虑到延迟的前提下实测的系统性能。吞吐量的大小主要由防火墙内网卡,及程序算法的效率决定,尤其是程序算法,会使防火墙系统进行大量运算,通信量大打折扣。
图D-18 带宽、延迟和吞吐量之间的关系
延迟是由距离、错误和错误恢复、拥塞、传输中所涉及的各系统的处理能力以及其他一些因素造成的。即使消除了这些硬件类型的延迟,您仍然会遇到光速延迟。在跨国光缆中发送一个比特大约需要30毫秒的时间,这一延迟是无法消除的。
在向其他国家/地区传输数据时(特别是在考虑到沿途会增加延迟的所有设备的情况下),距离延迟(称为传播延迟)就会特别重要。在卫星传输中,延迟也是至为关键的;不要忘记,大多数通信活动都需要往返数据交换,特别是在发送方等待接收方的接收确认时。数据速率的提高可以使您在相同的时间内发送更多的比特,但它并不会使延迟问题有多大改善。过量的延迟可能会使接收系统超时并请求重新传输。如果延迟过量,则必须对延迟因数进行调整。
对于实时通信(如交互式话音呼叫和实况视频)来说,延迟是一个大问题。对于强调时间观念的事务处理系统来说,延迟也可能成为一个问题。必须避免因为拥塞而导致的延迟问题;因此对于实况多媒体来说,要想确保足够多的数据分组及时通过,则带宽管理、优先级排队和QoS就是重要的。
和延迟本身相比,延迟变差(抖动)对话音呼叫的破坏性更大。延迟变差是指不同数据包间延迟时间的差别。抖动缓冲用来平均延迟时间,但抖动缓冲平滑延迟时间的能力既存在瞬时限制、又有总量限制。话音网络的抖动不应超过30毫秒。如果延迟是恒定的,则您可能对交谈中的轻微停顿变得习以为常;但如果延迟是变化的,您就很难适应了。RTP(实时协议)就是一个具有数据分组重新同步功能的流协议。发送方在数据分组上放置时间戳,然后接收方使用这些时间戳同步播放这些数据分组,从而消除抖动现象。
RTP为数据提供了具有实时特征的端对端传送服务,如在组播或单播网络服务下的交互式视频音频或模拟数据。应用程序通常在UDP上运行RTP以便使用其多路结点和校验服务;这两种协议都提供了传输层协议的功能。但是RTP可以与其它适合的底层网络或传输协议一起使用。如果底层网络提供组播方式,那么RTP可以使用该组播表传输数据到多个目的地。
延迟/等待时间的原因
延迟指数据包到达目的地所用的时间,是由硬件和软件的低效能以及会导致错误发生的网络拥塞和传输问题引起的。延迟包括固定延迟(顺序化及量化等)及可变延迟(网络拥塞)。话音数据包到达目的地的总时间不得超过150毫秒。引起延迟的原因可能有以下几方面:
因为通信量过多而导致网络拥塞。
由于硬件效能低而导致处理上产生延迟。
由于网络设备缓冲区溢出而导致排队延迟。
与一个信号通过一种物理媒体所花费的时间长度相关的传播延迟。
拥塞延迟
如果网络上的通信量增加,则拥塞程度也会增加。在高速公路上,繁忙的交叉路口会发生拥塞现象,同样,在网络上,路由器和交换机处也会发生拥塞现象,从而导致变化的延迟(抖动)。
以太网的共享媒体很容易造成拥塞。如果电缆正被使用,则用户必须等待。如果两个人试图同时传输,则会发生冲突。这时,这两个人都必须等待,然后进行重试,这样就会导致终端用户应用的更多延迟。
当TCP/IP主机开始传输的时候,它无法就下游拥塞问题对网络进行监控。该主机无法直接检测到目前路由器是否将超载。只有当发送方被迫对丢失的数据分组重新传输时它才会感觉到网络一定很忙,然后开始降低它的传输速度。
目前已经开发出了几种技术来解决TCP/IP网络上的拥塞问题,如慢速启动和拥塞避免。拥塞控制可以帮助主机适应各种通信量状况。传输可以缓慢地启动并升速,直到检测到拥塞(数据分组正被丢失)为止。
硬件和处理延迟
在网络很忙的情况下,路由器和交换机必须能够跟上通信量的需求,并以尽可能少的延迟和数据分组丢失来转发数据分组。一个典型的路由器使用下列技术之一来处理数据分组:
存储转发 存储转发技术要求交换机在接收到全部数据包后再决定如何转发。这一技术很容易造成延迟,在处理数据分组之前必须完整地接收到它们。
切入转发 这一技术有助于减少延迟。设备将先检查数据分组标题,然后接收整个数据分组并立即对其进行转发。 切入转发的缺点是错误帧也会被传出去。错误帧的概率较小的情况下,可以采用切入法以提高传输速度。而错误帧的概率较大的情况下,可以采用存储转发法/以减少错误帧的重传。
路由器要做的工作很多。它们会检查错误,然后查找表,并对每个数据分组做出路由决策。处理能力是至为关键的,许多供应商已推出了吉比特和兆兆位的路由器来处理巨大的通信量负载。另一种方法是对数据分组标记信息,从而消除了对每个数据分组执行查找的需要。这一工作是由路由选择交换机和标记交换设备来完成的。
排队延迟
当路由器收到数据分组并对其进行了检查之后,它将该数据分组发送到一个缓冲区,并在此将其排入队列中等待传输,通常的原则是先进先出(FIFO)。路由器是从多个不同的源接收数据分组的,因此设备可能很容易溢出。
当网络变忙的时候,这些缓冲器开始填充。通信量移入队列的速度可能比移出的速度快。如果数据分组的延迟时间足够长,则源系统可能就会假定数据分组已丢失并开始重新传输数据分组。这会增加网络的拥塞和延迟。
如上所述,队列通常是按先来先得的原则处理的。优先级排队技术使某些数据分组优先于其他数据分组得到处理。数据分组可能会提前加以标记或标签,以便将其定向到与它们的优先级匹配的队列中。另一种情况是,设备可能会对数据分组的内容进行检查,以确定其优先级。
链路延迟
一旦将数据分组排入队列,它就准备转发到网络链路上。网络链路受所使用的联网技术的最大数据速率(即接口每秒送入媒体的比特数)和传播延迟的影响。
传播延迟是指信号从电缆一端传到另一端所需要的时间。真空中的传输接近于光速,但电缆是由会导致传播延迟的材料制成的。例如,电信号在铜线电缆中传输的速度大约是光速的三分之二。一份名为“Propagation Delay(传播延迟)”的论文描述了一个比特在通过以太网电缆时的“长度”。
由于我们知道以太网的运行速率为lO Mbit/s或每秒lOOOOOOObit,所以就可以确定1bit占用的线路的长度约等于20m或60英尺。
传播延迟会随距离的增加而增加。1bit在光缆上往返1600公里大约需要lOms,也就是说,跨越美国的往返需要大约30ms,而传输到地球同步卫星上需要大约250ms。为了如实说明这一点,请考虑lOOms以上的往返延迟视为是话音交谈不可接受的。 传播延迟和过长的电缆可能会使共享的以太网产生问题。假定电缆一端的计算机在电缆上放置一个信号,同时电缆另一端的计算机开始传输。由于传播延迟和电缆过长问题,两个站都不会检测到对方站已经开始传输。信号发生冲突,并被损坏。在某些情况下,发送器可能永远不会知道发生了这种情况,因为它在检测到冲突之前就已经完成了传输。接收器将会丢弃损坏的数据分组,并要求重新传输。
监视和控制延迟
网络带宽的增加解决了许多性能问题,但某些延迟问题是不可避免的。例如,在大文件传输的情形下,TCP/IP会首先尝试使用所有带宽,而这可能会使其他传输停止,并严重地影响到话音呼叫,优先级排队和带宽预留技术有助于解决这一问题。另一种解决方案是使用通信量调整技术来“消除”较长时间的大文件传输,从而使其他通信量不会被切断。
“对话协议”是指用于来回发送大量确认和控制信息的通信协议。所有的开销都会减少实际发送的数据量。与非对话协议(如帧中继)相比,用对话协议(如旧的X.25)传输一个文件所花费的时间更长。某些网络在数据分组/信元中引入了大量的开销,如ATM。Stuart Cheshire的论文“Bandwidth and Latency:It′s the Latency, Stupid”对调制解调器受到各种类型的等待时间问题影响的原因进行了详细解释。
全球网络上的传播延迟问题相对较小,但数据分组在通过如此长的距离的链路时必须经过所有设备这一点又增加了大量延迟。距因特网上的Web服务器的距离越远,数据分组必须通过的网络、路由器和交换机的数量就越多,从而增加了延迟。为了解决这一问题,许多受欢迎的Web站点被反射(复制或高速缓存)到特定地理区域的服务器上,以便使Web内容与这些区域的用户距离更近。
许多组织都运行代理服务器,用于在本地高速缓存因特网信息,以使本组织内部可能需要该信息的其他用户很快能够获取到它。LowLat项目(低等待时间项目)将信息存放在高速缓存系统上。
网际协议(IP)是一个网络层协议,它包含寻址信息和控制信息,可使数据包在网络中路由。IP 协议是TCP/IP协议族中的主要网络层协议,与TCP协议结合组成整个因特网协议的核心协议。IP 协议同样都适用于LAN和WAN通信。
在网际协议(IP)开发初期就已经进行了一些尝试,用来控制延迟以及吞吐量和可靠性。但这些早期的尝试从未真正付诸实施。最近又出现了一些新技术(如“区分服务”),在对通信量分类并按其类别设置优先级方面正不断取得进展。
IETF IPPM(IP性能度量标准)工作组正在开发一套标准,用来衡量因特网数据传递业务的质量、性能和可靠性。网络运营商、终端用户或独立的测试团体都可以使用这些度量标准来对性能进行公平的量化度量。

