查看原文
其他

教科书解读 “时延”

常华Andy Andy730 2024-03-16

来源:《计算机网络(第7版)》,谢希仁,电子工业出版社


时延(delay 或 latency)是指数据(一个报文或分组,甚至比特)从网络(或链路)一端传送到另一端所需的时。时延是个很重要的性能指标,它有时也称为延迟或迟延。


需要注意的是,网络中的时延是由以下几个个不同的部分组成的:


(1)发送时延

发送时延(transmission delay)是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也叫做传输时延(我们尽量不采用传输时延这个名词,因为它很容易和下面要讲到的传播时延弄混)。发送时延的计算公式是:


发送时延 = 数据帧长度(bit)/ 发送速率(bit/s)


由此可见,对于一定的网络,发送时延并非固定不变,而是与发送的帧长(单位是比特)成正比,与发送速率成反比。


(2)传播时延

传播时延(propagation delay)是电磁波在信道中传播一定的距离需要花费的时间传播时延的计算公式是:


传播时延 = 信道长度(m)/ 电磁波在信道上的传播速率(m/s)


电磁波在自由空间的传播速率是光速,即 3.0 x 10^5 KM/s。电磁波在网络传输媒体中的传播速率比在自由空间要略低一些:在铜线电缆中的传播速率约为 2.3 x 10^5 KM/s,在光纤中的传播速率约为 2.0 x 10^5 KM/s。例如,1000 KM 长的光纤线路产生的传播时延大约为 5 ms。


以上两种时延有本质上的不同。但只要理解这两种时延发生的地方就不会把它们混。发送时延发生在机器内部的发送器中(一般就是发生在网络适配器中),与传输信道的长度(或信号传送的距离)没有任何关系。但传播时延则发生在机器外部的传输信道媒体上,而与信号的发送速率无关。信号传送的距离越远,传播时延就越大。


可以用一个简单的比喻来说明。假定有 10 辆车按顺序从公路收费站入口出发到相距 50 公里的目的地。再假定每一辆车过收费站要花费 6 秒钟,而车速是每小时 100 公里。现在可以算出这 10 辆车从收费站到目的地总共要花费的时间:发车时间共需 60 秒(相当于网络中的发送时延),在公路上的行车时间需要 30 分钟(相当于网络中的传播时延)。因此从第一辆车到收费站开始计算,到最后一辆车到达目的地为止,总共花费的时间是二者之和,即 31 分钟。


下面还有两种时延也需要考虑,但比较容易理解。


(3)处理时延

主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等,这就产生了处理时延。


(4)排队时延

分组在经过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。


这样,数据在网络中经历的总时延就是以上四种时延之和:


总时延 = 发送时延+传播时延+处理时延+排队时延


一般说来,小时延的网络要优于大时延的网络。在某些情况下,一个低速率、小时延的网络很可能要优于一个高速率但大时延的网络。


下画出了这几种时延所产生的地方,希望读者能够更好地分清这几种时延。



必须指出,在总时延中,究竟是哪一种时延占主导地位,必须具体分析。


下面举个例子。现在我们暂时忽略处理时延和排队时延。假定有一个长度为 100 MB 的数据块(这里的 M 显然不是指 10^6 而是指 2^20。B 是字节,1 字节 = 8 比特)。在带宽为 1 Mbit/s 的信道上(这里的 M 显然是 10^6)连续发送(即发送速率为 1 Mbit/s),其发送时延是:


100 x 230 x 8 ÷ 10 = 838.9 s


现在把这个数据块用光纤传送到 1000 KM 远的计算机。由于在 1000 KM 的光纤上的传播时延约 5 ms ,因此在这种情况下,发送 100 MB 的数据块的总时延 = 838.9 + 0.005 ≈ 838.9 s。可见对于这种情况,发送时延决定了总时延的效值。


我们把发送速率提高到 100 倍,即提高到 100 Mbit/s ,那么总时延就变为 8.389 + 0.005 = 8.394 s,缩小到原有数值的 1/100。


但是,并非在任何情况下,提高发送速率就能减小总时延。例如,要传送的数据仅有 1 个字节(如键盘上键入的一个字符,共 8 bit )。当发送速率为 1 Mbit / s 时,发送时延是:


8÷10^6 = 8 x 10^-6 = 8 μs


若传播时延仍为 5 ms,则总时延为 5.008 ms。在这种情况下,传播时延决定了总时延。如果我们把数据率提高到 1000 倍(即将数据的发送速率提高到 1 Gbit/s),不难算出,总时延基本上仍是 5 ms ,并没有明显减小。这个例子告诉我们,不能笼统地认为:“数据的发送速率越高,其传送的总时延就越小”。这是因为数据传送的总时延是由公式右端的四项时延组成的,不能仅考虑发送时延一项。


如果上述概念没有弄清楚,就很容易产生这样错误的概念“在高速链路(或高带宽链路)上,比特会传送得更快些”。但这是不对的。我们知道,汽车在路面质量很好的高速公路上可明显地提高行驶速率。然而对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。荷载信息的电磁波在通信线路上的传播速率(这是光速的数量级)取决于通信线路的介质材料,而与数据的发送速率并无关系。提高数据的发送速率只是减小了数据的发送时延。还有一点也应当注意,就是数据的发送率的单位是每秒发送多少个比特,这是指在某个点某个接口上的发送速率。而传播速率的单位是每秒传播多少公里,是指在某一段传输线路上比特的传播速率。因此,通常所说的“光纤信道的传输率高”是指可以用很高的速率向光纤信道发送数据,而光纤信道的传播速率实际上还要比铜的传播速率略低一点。这是因为经过测量得知,光在光纤中的传播速率约为每秒 20.5 万公里,它比电磁波在铜线(如 5 类线)中的传播速率(每秒 23.1 万公里)略低一些。


上述的重要概念请读者务必弄清。

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存