计算机网络
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.6.1 计算机网络的性能指标

性能指标从不同的方面来度量计算机网络的性能。下面介绍常用的七个性能指标。

1.速率

我们知道,计算机发送出的信号都是数字形式的。比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。英文单词bit来源于binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个1或0。网络技术中的速率指的是连接在计算机网络上的主机在数字信道上传送数据的速率,它也称为数据率(data rate)或比特率(bit rate)。速率是计算机网络中最重要的一个性能指标。速率的单位是b/s(比特每秒)(或bit/s,有时也写为bps,即bit per second)。当数据率较高时,就可以用kb/s(k = 103 =千)、Mb/s(M = 106 = 兆)、Gb/s(G = 109 = 吉)或Tb/s(T = 1012 = 太)。现在人们常用更简单的但很不严格的记法来描述网络的速率,如100M以太网,而省略了单位中的b/s,它的意思是速率为100Mb/s的以太网。顺便指出,上面所说的速率往往是指额定速率标称速率

注:在通信领域和计算机领域,应特别注意数量单位“千”、“兆”和“吉”等的英文缩写所代表的数值。如计算机中的数据量往往用字节作为度量的单位。一个字节(byte,记为大写的B)代表8个比特。“千字节”的“千”用大写K表示,它等于210,即1024,而不是103。同样,在计算机中,1 MB或1 GB也并非表示106或109个字节,而是表示220(1048 576)或230(1073 741 824)个字节。在通信领域小写的k表示103而不是1024。但有的书也不这样严格区分,大写K有时表示1000而有时又表示1024,作者认为从概念上还是区分为好。

2.带宽

带宽”(bandwidth)有以下两种不同的意义:

(1) 带宽本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同频率成份所占据的频率范围。例如,在传统的通信线路上传送的电话信号的标准带宽是3.1kHz (从300 Hz到3.4kHz,即话音的主要成分的频率范围)。这种意义的带宽的单位(或千赫、兆赫、吉赫等)。在过去很长的一段时间,通信的主干线路传送的是模拟信号(即连续变化的信号)。因此,表示通信线路允许通过的信号频带范围就称为线路的带宽(或通频带)。

(2) 在计算机网络中,带宽用来表示网络的通信线路传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。在本书中在提到“带宽”时,主要是指这个意思。这种意义的带宽的单位是“比特每秒”,记为b/s。在这种单位的前面也常常加上千(k)、兆(M)、吉(G)或太(T)这样的倍数。

在“带宽”的两种表述中,前者为频域称谓,而后者为时域称谓,其本质是相同的。也就是说,一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。

3.吞吐量

吞吐量(throughput)表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。显然,吞吐量受网络的带宽或网络的额定速率的限制。例如,对于一个100Mb/s的以太网,其额定速率是100Mb/s,那么这个数值也是该以太网吞吐量的绝对上限值。因此,对于100Mb/s的以太网,其典型的吞吐量可能只有70Mb/s。请注意,有时吞吐量还可用每秒传送的字节数或帧数来表示。

4.时延

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

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

(1) 发送时延 发送时延(transmission delay)是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也叫做“传输时延”。发送时延的计算公式是:

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

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

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

以上两种时延不要弄混。只要理解这两种时延发生的地方,就不会把它们弄混。发送时延发生在机器的内部的发送器中(一般就是发生在网络适配器中,见第3章3.3.1节),而传播时延则发生在机器外部的传输信道媒体上。可以用一个简单的比喻来说明。假定有10辆车的车队从公路收费站入口出发到相距50公里的目的地。再假定每一辆车过收费站要花费6秒钟,而车速是每小时100公里。现在可以算出整个车队从收费站到目的地总共要花费的时间:发车时间共需60秒(相当于网络中的发送时延),行车时间需要30分钟(相当于网络中的传播时延),因此总共花费的时间是31分钟。

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

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

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

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

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

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

图1-14 几种时延产生的地方不一样

必须指出,在总时延中,究竟是哪一种时延占主导地位必须具体分析。现在我们暂时忽略处理时延和排队时延注:当计算机网络中的通信量过大时,网络中的许多路由器的处理时延和排队时延将会大大增加,因而处理时延和排队时延有可能在总时延中占据主要成分。这时整个网络的性能就变差了。。假定有一个长度为100 MB的数据块(这里的M显然不是指106而是指220,即1048 576。B是字节,1字节 = 8比特),在带宽为1Mb/s的信道上(这里的M是106)连续发送,其发送时延是

100×1048576×8÷106 = 838.9 s

即大约要用14分钟才能把这样大的数据块发送完毕。然而,若将这样的数据块用光纤传送到1000km远的计算机,那么每一个比特在1000km的光纤上只需用5ms就能到达目的地。因此对于这种情况,发送时延占主导地位。如果我们把传播距离减小到1km,那么传播时延也会相应地减小到原来数值的千分之一。然而,由于传播时延在总时延中的比重是微不足道的,因此总时延的数值基本上还是由发送时延来决定的。

再看一个例子。要传送的数据仅有1个字节(如键盘上键入的一个字符,共8bit),在1Mb/s的信道上的发送时延是

8÷106 = 8×10-6 s = 8 μs

当传播时延为5ms时,总时延为5.008ms。在这种情况下,传播时延决定了总时延。这时,即使把数据率提高到1000倍(即将数据的发送速率提高到1Gb/s),总时延也不会减小多少。这个例子告诉我们,不能笼统地认为:“数据的发送速率越高,传送得就越快”。这是因为数据传送的总时延是由公式(1-3)右端的四项时延组成的,不能仅考虑发送时延一项。

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

5.时延带宽积

把以上讨论的网络性能的两个度量——传播时延和带宽——相乘,就得到另一个很有用的度量:传播时延带宽积,

我们可以用图1-15的示意图来表示时延带宽积。这是一个代表链路的圆柱形管道,管道的长度表示链路的传播时延(请注意,现在以时间作为单位来表示链路长度),而管道的截面积表示链路的带宽。因此,时延带宽积就表示这个管道的体积,表示这样的链路可容纳多少个比特。例如,设某段链路的传播时延为20ms,带宽为10Mb/s,算出

时延带宽积 = 20×10-3×10×106 = 2×105bit。

这就表示,若发送端连续发送数据,则在发送的第一个比特即将达到终点时,发送端就已经发送了20万个比特,而这20万个比特都正在链路上向前移动。因此,链路的时延带宽积又称为以比特为单位的链路长度

图1-15 链路像一条空心管道

不难看出,管道中的比特数表示从发送端发出的但尚未达到接收端的比特。对于一条正在传送数据的链路,只有在代表链路的管道都充满比特时,链路才得到了充分的利用。

6.往返时间RTT

在计算机网络中,往返时间RTT (Round-Trip Time)也是一个重要的性能指标,它表示从发送方发送数据开始,到发送方收到来自接收方的确认(接收方收到数据后便立即发送确认),总共经历的时间。对于上述例子,往返时间RTT是40ms,而往返时间和带宽的乘积是4×105 (bit)。在互联网中,往返时间还包括各中间结点的处理时延、排队时延以及转发数据时的发送时延。

显然,往返时间与所发送的分组长度有关。发送很长的数据块的往返时间,应当比发送很短的数据块的往返时间要多些。

往返时间带宽积的意义就是当发送方连续发送数据时,即使能够及时收到对方的确认,但已经将许多比特发送到链路上了。对于上述例子,假定数据的接收方及时发现了差错,并告知发送方,使发送方立即停止发送,但这时发送方也已经发送了40万个比特了。

当使用卫星通信时,往返时间RTT相对较长,是很重要的一个性能指标。

7.利用率

利用率有信道利用率和网络利用率两种。信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。信道利用率并非越高越好。这是因为,根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。这和高速公路的情况有些相似。当高速公路上的车流量很大时,由于在公路上的某些地方会出现堵塞,因此行车所需的时间就会增长。网络也有类似的情况。当网络的通信量很少时,网络产生的时延并不大。但在网络通信量不断增大的情况下,由于分组在网络结点(路由器或结点交换机)进行处理时需要排队等候,因此网络引起的时延就会增大。如果令 D0表示网络空闲时的时延,D 表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式(1-5)来表示DD0及网络利用率U之间的关系:

式中,U是网络的利用率,数值在0到1之间。当网络的利用率达到其容量的1/2时,时延就要加倍。特别值得注意的是:当网络的利用率接近最大值1时,网络的时延就趋于无穷大。因此我们必须有这样的概念:信道或网络利用率过高会产生非常大的时延。图1-16给出了上述概念的示意图。因此,一些拥有较大主干网的ISP通常控制他们的信道利用率不超过50%。如果超过了就要准备扩容,增大线路的带宽。

图1-16 时延与利用率的关系