一、概述
在这里,我们考虑分组交换网的情况,因特网可以被看成是一种基础设施,该基础设施为运行在端系统上的分布式应用提供服务。在理想情况下,我们希望因特网服务能够在任意两个端系统之间随心所欲地移动数据而没有任何数据地丢失。然而,这是一个极高的目标,实践中几乎无法达到。与之相反,计算机网络必须限制在端系统之间的吞吐量(每秒能够传送的数据量),在端系统之间引入时延,而且必定会丢失分组。
二、时延分类
分组从一台主机(源)出发,通过一系列路由器传输,在另一台主机(目的地)中结束它的历程。当分组从一个节点(主机或者路由器)沿着这条路径到后继节点(主机或者路由器),该分组在沿途的每个节点经受了几种不同类型的时延。这些时延最为重要的是:
- 节点处理时延(nodal processing delay)
- 排队时延(queuing delay)
- 传输时延(transmission delay)
- 传播时延(propagation delay)
这些时延总体累加起来是节点总时延(total nodal delay)。许多因特网应用,如搜索、Web浏览、电子邮件、地图、即时讯息和IP语音,它们的性能受网络时延的影响很大。为了深入理解分组交换和计算机网络,我们必须理解这些时延的性质和重要性。
我们来探讨一下下图环境中的这些时延。作为源和目的地之间的端到端路由的一部分,一个分组从上游节点通过路由器A向路由器B发送。我们的目标是在路由器A刻画出节点时延。值得注意的是,路由器A具有通往路由器B的出链路。该链路前面有一个队列(也称为缓存)。当分组从上游节点到达路由器A时,路由器A检查该分组的首部以决定它的适当出链路,并将该分组导向该链路。在这个例子中,对该分组的出链路是通向路由器B的那条链路。仅当在该链路没有其他分组正在传输并且没有其他分组排在该队列前面时,才能在这条链路上传输该分组;如果该链路当前正繁忙或有其他分组已经在该链路上排队,则新到达的分组将加入排队。
2.1 处理时延
检查分组首部和决定将该分组导向何处所需要的时间是处理时延的一部分。处理时延也能够包括其他因素,如检查比特级别的差错所需要的时间,该差错出现在从上游节点向路由器A传输这些分组比特的过程中。高速路由器的处理时延通常是微秒或更低的数量级。在这种节点处理之后,路由器将该分组引向通往路由器B链路之前的队列。
2.2 排队时延
在队列中,当分组在链路上等待传输时,它经受排队时延。一个特定分组的排队时延长度将取决于先期到达的正在排队等待向链路传输的分组数量。如果该队列是空的,并且当前没有其他分组正在传输,则该分组的排队时延为0。另一方面,如果流量很大,并且许多其他分组也在等待传输,该排队时延将很长。我们将很快看到,到达分组期待发现的分组数量是到达该队列的流量的强度和性质的函数。实际的排队时延可以是毫秒到微秒量级。
2.3 传输时延
假定分组以先到先服务方式传输——这在分组交换网中是常见的方式,仅当所有已经到达的分组被传输后,才能传输刚到达的分组。用L比特表示该分组的长度,用R bps (即b/s)表示从路由器A到路由器B的链路传输速率。例如,对于一条10Mbps的以太网链路,速率R=10Mbps;对于100Mbps 的以太网链路,速率 R=100Mbps。传输时延是L/R。这是将所有分组的比特推向链路(即传输,或者说发射)所需要的时间。实际的传输时延通常在毫秒到微秒量级。
2.4 传播时延
一旦一个比特被推向链路,该比特需要向路由器B传播。从该链路的起点到路由器B传播所需要的时间是传播时延。该比特以该链路的传播速率传播。该传播速率取决于链路的物理媒体(即光纤、双绞铜线等)。该传播时延等于两台路由器之间的距离除以传播速率。即传播时延是d/s,d是路由器A和路由器B之间的距离,s是该链路的传播速率。一旦该分组的最后比特传播到节点B,该比特及前面的所有比特被存储于路由器B。整个过程将随着路由器B执行转发而持续下去,在广域网中,传播时延为毫秒级。
三、传输时延和传播时延的比较
计算机网络领域的新手有时难以理解传输时延和传播时延之间的差异。该差异是微然而重要的。传输时延是路由器推出分组所需要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。另一方面,传播时延是一个比特从一台路由器传播到另一台路由器所需要的时间,它是两台路由器之间距离的函数,而与分组长度或链路传输速率无关。
一个类比可以阐明传输时延和传播时延的概念。考虑一条公路每100km有一个收费站,可认为收费站间的公路段是链路,收费站是路由器。假定汽车100km/h的速度(也就是说当一辆汽车离开一个收费站时,它立即加速到100km/h并在收费站间维持该速度)在该公路上行驶(即传播)。假定这时有10 辆汽车作为一个车队在行驶,并且这10辆汽车以固定的顺序互相跟随。可以认为每辆汽车是一个比特,该车队是一个分组。同时假定每个收费站以每辆车12s 的速度服务(即传输)一辆汽车,并且由于时间是深夜,因此该车队是公路上唯一一批汽车。最后,假定无论该车队的第一辆汽车何时到达收费站,它在入口处等待,直到其他9辆汽车到达并整队依次前行。(因此,整个车队在它能够"转发"之前,必须存储在收费站。)收费站将整个车队推向公路所需要的时间是(10辆车)/(5辆车/min)=2min。该时间类比于一台路由器中的传输时延。一辆汽车从一个收费站出口行驶到下一个收费站所需要的时间是100km/(100km/h)=1h。这个时间类比于传播时延。因此,从该车队存储在收费站前到该车队存储在下一个收费站前的时间是"传输时延"与"传播时间"总和,在本例中为62min。
四、小结
在端到端的传输过程中,时延是不可避免的,其中主要的几种类型有节点处理时延(nodal processing delay)、排队时延(queuing delay)、传输时延(transmission delay)、传播时延(propagation delay) 。其中需要注意区分传播时延和传输时延的区别。