
1.5 计算机网络的主要性能指标
性能指标从不同的角度来度量计算机网络的性能。下面介绍最常用的6个性能指标。

网络性能指标
1. 速率
速率就是数据的传送速率,它也称为数据率(Data Rate)或比特率(Bit Rate),是计算机网络中最重要的一个性能指标。比特(bit)是计算机中数据量的单位,它来源于“binary digit”,意思是一个“二进制数字”。因此一个比特就是二进制数字中的一个1或0。网络技术中速率的单位是bit/s(比特每秒,有时也写为bps,即bit per second)。当数据率较高时,就可以用kbit/s(k=103=千)、Mbit/s(M=106=兆)、Gbit/s(G=109=吉)或Tbit/s(T=1012=太)。现在人们常用更简单的并且是很不严格的记法来描述网络的速率,如100 M以太网,省略了单位中的bit/s,它的意思是速率为100 Mbit/s的以太网。
请读者注意“千”“兆”和“吉”等的英文缩写所代表的数值。例如,计算机中的数据量往往用字节作为度量的单位。1个字节(Byte,B)代表8个比特。“千字节”的“千”用大写K表示,它等于210,即1024,而不是103。同样,在表示计算机中的数据量时,1 MB或1 GB也并非表示106或109个字节,而是表示220(1048576)或230(1073741824)个字节。在通信领域,小写的k表示103而不是1024。但有的书也不这样严格区分,大写K有时表示1000,有时又表示1024,作者认为还是区分为好。
2. 带宽
“带宽”(Bandwidth)有以下两种不同的意义。
(1)带宽本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围。例如,在传统的通信线路上传送的电话信号的标准带宽是3.1kHz(从300 Hz到3.4kHz,即话音的主要成分的频率范围)。这种意义的带宽的单位是赫兹(或千赫兹、兆赫兹、吉赫兹等),表示通信线路允许通过的信号频带范围。
(2)在计算机网络中,带宽用来表示网络某通道传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。本书在提到“带宽”时,主要是指这个意思。这种意义的带宽的单位是“比特每秒”,记为bit/s,前面也常常加上千(k)、兆(M)、吉(G)或太(T)这样的倍数。
其实,“带宽”的这两种意义之间有着密切的关系。一条通信链路的“频带宽度”越宽,其传输数据的“最高数据率”也越高。
3. 吞吐量
吞吐量(Throughput)也称为吞吐率,表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量经常用于对现实世界中的网络的测量,以便人们了解到底有多少数据量能够通过网络。显然,吞吐量受网络的带宽或网络的额定速率的限制。例如,一个100 Mbit/s的以太网,其典型的吞吐量可能只有70 Mbit/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.2小节介绍的网络适配器中),而传播时延发生在机器外部的信道传输媒体上。可以用一个简单的比喻来说明。假定有10辆车的车队从公路收费站入口出发前往50km外的目的地。再假定每一辆车过收费站要花费6s,而车速是100km/h。现在可以算出整个车队从收费站到目的地总共要花费的时间:10辆车的发车时间共需60s(相当于网络中的发送时延),行车时间需要30min(相当于网络中的传播时延),因此总共花费的时间是31min。
(3)处理时延
主机或路由器在收到分组时要花费一定的时间进行处理,例如,分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等,这就产生了处理时延。
(4)排队时延
分组在进行网络传输时要经过许多路由器。分组进入路由器后要先在输入队列中排队等待处理,在路由器确定了转发接口后,还要在输出队列中排队等待转发,这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量,随时间变化会很大。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。
这样,分组从一个结点转发到另一个结点所经历的总时延就是以上4种时延之和:

图1-12所示为几种时延产生的地方,希望读者能够更好地分清这几种时延。

图1-12 几种时延产生的地方
显然,我们都希望网络的时延越小越好,但并非网络速率高就一定时延小。在总时延中,究竟是哪一种时延占主导地位,必须具体分析。现在我们暂时忽略处理时延和排队时延。假定有一个长度为100 MB的数据块(这里的M显然不是指106而是指220,即1048576。B是字节,1字节=8比特),在带宽为1 Mbit/s的信道上(这里的M是106)连续发送,其发送时延是
100×1048576×8 ÷ 106=838.9(s)
即将近要用14 min才能把这样大的数据块发送完毕。若最终这些数据是用光纤传送到1000km外的计算机,那么每一个比特在1000km的光纤上只需5ms就能到达目的地。因此对于这种情况,发送时延占主导地位。如果我们把传播距离减小到1km,那么传播时延也会相应地减小到原来数值的千分之一,但由于传播时延在总时延中的比重是微不足道的,因此总时延的数值变化不明显。
再看一个例子。要传送的数据仅有1 Byte(如键盘上键入的一个字符,共8 bit),在1 Mbit/s的信道上的发送时延是
8 ÷ 106=8×10-6 s=8(µs)
当传播时延为5ms时,总时延为5.008ms。显然,在这种情况下,传播时延决定了总时延。这时,即使把数据率提高到原来的1000倍(即将数据的发送速率提高到1 Gbit/s),总时延也不会减小多少。这个例子告诉我们,不能笼统地认为“数据的发送速率越高,传送得就越快”。这是因为数据传送的总时延是由式(1-3)右端的4项时延组成的,不能仅考虑发送时延1项。
必须强调指出,初学网络的人容易产生错误的概念,就是“在高速链路(或高带宽链路)上,比特应当跑得更快些”。这是不对的。我们知道,汽车在路面质量很好的高速公路上可明显地提高行驶速率,然而对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。承载信息的电磁波在通信线路上的传播速率(这是光速的数量级)与数据的发送速率并无关系。提高数据的发送速率只是减小了数据的发送时延。还有一点也应当注意:数据的发送速率表示的是每秒发送多少个比特,是指某个点或某个接口上的发送速率;而传播速率表示的是每秒传播多少千米,是指传输线路上比特的传播速率。因此,通常所说的“光纤信道的传输速率高”是指向光纤信道发送数据的速率可以很高,而光纤信道的传播速率实际上比铜线的传播速率还略低一点。经过测量得知,光在光纤中的传播速率是2.0×105km/s,比电磁波在铜线(如五类线)中的传播速率(2.3×105km/s)略低一些。上述概念请读者务必弄清。
5. 丢包率
丢包率即分组丢失率,是指在一定的时间范围内,分组在传输过程中丢失的分组数量与总的分组数量的比率。丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。
在计算机网络中,分组丢失主要有两种情况。一种情况是分组在传输过程出现了比特级差错,被结点丢弃。另一种情况就是当分组到达一台队列已满的分组交换机时,由于没有空间来存储这些分组,分组交换机就会将到达的分组或已经排队的分组丢弃。由于分组交换不像电路交换那样通过建立连接来保证通信时所需的各种资源,因而无法确保通信时端到端所需的带宽,在通信量较大时就可能造成网络拥塞,导致分组交换机的队列溢出和分组丢失。这是现代计算机网络中分组丢失最主要的原因。
因此,丢包率反映了网络的拥塞情况。一般无拥塞时路径丢包率为0,轻度拥塞时丢包率为1%~4%,严重拥塞时丢包率为5%~15%。具有较高丢包率的网络通常无法使网络应用正常工作。
丢包率是网络运维人员非常关心的一个网络性能指标,但普通用户往往并不关心这个指标,因为他们通常感觉不到网络丢包。大多数网络应用底层所使用的通信软件会为用户提供可靠的传输服务,它们会自动重传丢失的分组并自动调整发送速率进行网络拥塞控制(这些将在第5章详细讨论)。在网络拥塞,丢包率较高时,用户感觉到的往往是网络时延变大,“网速”变慢,而不是信息的丢失。
6. 利用率
利用率有信道利用率和网络利用率两种。信道利用率指某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。信道利用率并非越高越好。这是因为,根据排队论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。这和高速公路的情况有些相似。当高速公路上的车流量很大时,由于某些地方会出现堵塞,因此行车所需的时间就会增大。网络也有类似的情况。当网络的通信量很少时,网络产生的时延并不大;但在网络通信量不断增大的情况下,由于分组在网络结点(路由器或结点交换机)进行处理时需要排队等候,因此网络引起的时延就会增大。如果令D0表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示D、D0和利用率U之间的关系:

这里U的数值在0到1之间。限于篇幅,这里不介绍式(1-4)的推导过程。当网络利用率达到其容量的1/2时,时延就要加倍。特别值得注意的就是,当网络利用率接近最大值1时,网络的时延就趋于无穷大。因此我们必须有这样的概念:信道利用率或网络利用率过高会产生非常大的时延。也就是说,一定不要让信道或网络的利用率接近于1。图1-13所示为时延与利用率的关系。因此,一些拥有较大主干网的ISP通常会把信道利用率控制在50%以下,一旦超过就要准备扩容,增大线路的带宽。

图1-13时延与利用率的关系
但是信道利用率也不能太低,这会使宝贵的通信资源被白白浪费。在3.1.5小节我们将看到一个设计得不好的协议在某些情况下会导致信道利用率很低(我们将在下一节介绍什么是协议),这时需要使用更好的协议来提高信道利用率,使通信资源得到充分利用。在5.4节我们还会看到一些机制,可以根据情况动态调整网络通信量,使网络利用率保持在一个合理的范围内。