计算机网络的性能一般是指它的几个重要的性能指标。但除了这些重要的性能指标外,还有一些非性能特征(nonperformance characteristics)也对计算机网络的性能有很大的影响。
那么,计算机网络的性能指标分别是哪七个?
1、速率
计算机发送出的信号都是数字形式的。比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。英文单词bit来源于binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个1或0.计算机网络中的速率指的是连接在计算机网络上的主机在数字信道上传送数据的速率,它也称为数据率(datarate)或(bit rate)。
速率是计算机网络中最重要的一个性能指标。速率的单位是b/s(比特每秒)(或bit/s,有时也写为bps,即bit per second)。当数据率较高时,就可以用kb/s(k=10^3=千)、Mb/s(M=10^6=兆)、Gb/s(G=10^9=吉)或Tb/s(T=10^12=太)现在人们常用更简单的但很不严格的记法来描述网络的速率,如100M以太网,而省略了单位中的b/s,它的意思是速率为100Mb/s的以太网。上面所说的速率往往是指额定速率或标称速率。
在通信领域和计算机领域,应特别注意数量单位“千”、“兆”和“吉”等的英文缩写所代表的数值。如计算机中的数据量往往用字节作为度量的单位。一个字节(byte,记为大写的B)代表8个比特。“千字节”的“千”用大写K表示,它等于2^10,即1024,而不是10^3。同样,在计算机中,1MB或1GB也并非表示10^6或10^9个字节,而是表示2^20(1048 576)或2^30(1073 741 824)个字节。在通信领域小写的K表示10^3而不是1024。但有的书也不这样严格区分,大写k有时表示1000而有时又表示1024,作者认为从概念上还是区分为好。
2、带宽
“带宽”(bandwidth)有以下两种不同的意义:
(1) 带宽本来是指某个信号具有的频带宽度。信号的带宽是指,该信号所包含的各种不同频率成份所占据的频率范围。例如,在传统的通信线路上传送的电话信号的标准带宽是3.1kHz(从300Hz到3.4kHz,即话音的主要成分的频率范围)。这种意义的带宽的单位是赫(或千赫、兆赫、吉赫等)。
在过去很长的一段时间,通信的主干线路传送的是模拟信号(即连续变化的信号)。因此,表示通信线路允许通过的信号频带范围就称为线路的带宽(或通信频带)。
(2) 在计算机网络中,带宽用来表示网络的通信线路传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。在本书中提到“带宽”时,主要是指这个意思。这种意义的带宽的单位是“比特每每秒”,记为b/s。在这种单位的前面也常常加上千(K)、兆(M)、吉(G)或太(T)这样的倍数。
在“带宽”的两种表述中,前者为频域称谓,而后者为时域称谓,其本质是相同的。也就是说,一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。
(3) 吞吐量。吞吐量(throughput)表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
显然,吞吐量受网络的带宽或网络的额定速率的限制。例如,对于一个100Mb/s的以太网,其额定速率是100Mb/s,那么这个数值也是该以太网吞吐量的绝对上限值。因此,对于100Mb/s的以太网,其典型的吞吐量可能只有70Mb/s。
请注意,有时吞吐量还可用每秒传送的字节数或帧数来表示。
3、时延
时延(delay或latency)是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。时延是个很重要的性能指标,它有时也成为延迟或迟延。
需要注意的是,网络中的时延是由以下几个不同的部分组成的:
(1) 发送时间
发送时延(transmission delay)是主机或路由器发送数据帧所需要的时间,也就是发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也叫做“传输时延”。发送时延的计算公式是:
发送时延=数据帧长度(b)/发送速率(b/s)
由此可见,对于一定的网络,发送时延并非固定不变,而是与发送的帧长(单位是比特)成正比,与发送速率成反比。
(2)传播时延
传播时延(prop agation delay)是电磁波在信道中传播一定的距离需要花费的时间。传播时延的计算公式是:
传播时延=信道长度(m)/电磁波在信道上的传播速率(m/s)
电磁波在自由空间的传播速率是光速,即3*10^5km/s。电磁波在网络传输媒体中的传播速率比在自由空间要略低一些:在铜线电缆中的传播速率约为2.3*10^5km/s,在光纤中的传播速率约为2.0*10^5km/s.例如,1000km长的光纤线路产生的传播时延大约为5ms.
以上两种实验不要弄混。只要理解这两种事验发生的地方,就不会把它们弄混。发送时延发生在机器内部的发送器中,而传播时延则发生在机器外部的传输信道媒体上。
(3) 处理时延
主机或路由器在收到分组信息时要花费一定的时间进行处理,例如分组的首部,从分组中提取部分数据、进行差错检验或查找适当的路由等等,这就产生了处理时延。
(4) 排队时延
分组在经过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。
这样,数据在网络中经历的总时延就是以上四种时延之和:
总时间=发生时延+传播时延+处理时延+排队时延
图1-14 时延
必须指出,在总实验中,究竟是哪一种实验占主导地位必须具体分析。先把处理时延和排队时延忽略,如有一个长度为100MB的数据块(这里的M显然不是指10^6而是指2^20,即1048 576。B是字节,1字节=8比特),在带宽为1Mb/s的信道上(这里的M是10^6)连续发送,其发送时延是 100*1048576*8/10^6=838.9s
大约要用14分钟才能把这样大的数据块发送完毕。然而,若将这样的数据块用光纤传送到1000km远的计算机,那么每一个比特在1000km的光纤上只需用5ms就能到达目的地。因此对于这种情况,发送时延占主导地位。如果我们把传播距离减小到1km,那么传播时延也会相应地减小到原来数值的千分之一。然而,由于传播时延在总时延中的比重是微不足道的,因此总时延的数值基本上还是由发送时延来决定的。
再看一个例子。要传送的数据仅有一个字节(如键盘上键入的一个字符,共8bit),在1Mb/s的信道上的发送时延是8/10^6=8*10^-6s=8us
当传播时延为5ms时,总时延为5.008ms.在这种情况下,传播时延决定了总时延。这时即使把数据率提高到1000倍(即将数据的发送速率提高到1Gb/s),总时延也不会减小多少。这个例子告诉我们,不能笼统地认为:“数据的发送速率越高,传送得就越快”。这是因为数据传送的总时延是由:总时延=发送时延+传播时延+处理时延+排队时延,四项时延组成的,不能仅考虑发送时延一项。
必须强调指出,初学网络的人容易产生这样错误的概念,就是“在高速链路(或高带宽链路)上,你应当跑得更快些”。但这是不对的。我们知道,汽车在路面质量很好的高速公路上可以明显地提高行驶速率。然而,对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上传播速率。荷载信息的电磁波在通信线路上的传播速率(这是光速的数量级)与数据的发送速率只是减小了数据的发送时延。
还有一点也应当注意,就是数据的发送速率的单位是每秒发送多少个比特,是指某个点或某个接口上的发送速率。而传播速率的单位是每秒传播多少公里,是指传输线路上比特的传播速率。
因此,通常所说的“光纤信道的传输速率高”是指向光纤信道发送数据的速率可以很高,而光纤信道的传播速率实际上要比铜钱的传播速率还略低一点。这是因为经过测量得知,光在光纤中的传播速率是每秒20.5万公里,它比电磁波在铜线(如5类线)中的传播速率(每秒23.1万公里)略低一些。上述这个概念请读者务必弄清楚。
4、时延带宽积
把以上讨论的网络性能的两个度量一一传播时延和带宽一一相乘,就得到另一个很有用的度量:传播时延带宽积,即
时延带宽积=传播时延*带宽
图1-15 链路
如图1-15所示表示时延带宽积。这是一个代表链路的圆柱形管道,管道的长度表示链路的传播时延(请注意,现在以时间作为单位来表示链路长度),而管道的截面积表示链路的带宽。因此,时延带宽积就表示这个管道的体积,表示这样的链路可容纳多少个比特。例如,设某段链路的传播时延为20ms,带宽为10Mb/s,算出时延带宽积=20*10^-3*10*10^6=2*10^5bit.
这就表示,若发送端连续发送数据,则在发送的第一个比特即将达到终点时,发送端就已经发送了20万个比特,而这20万个比特都正在链路上向前移动。因此,链路的时延带宽积又称为以比特为单位的链路长度。
不难看出,管道中的比特数表示从发送端发出的但尚未达到接收端的比特。对于一条正在传送数据的链路,只有在代表链路的管道都充满比特时,链路才得到了充分的利用。
5、往返时间RTT
在计算机网络中,往返时间RTT(Round-Trip Time)也是一个重要的性能指标,它表示从发送方发送数据开始,到发送方收到来自接收方的确认(接收方收到数据后便立即发送确认),总共经历的时间。对于上述例子,往返时间RTT是40ms,而往返时间和带宽的乘积是4*10^5(bit)。在互连网中,往返时间还包括各中间结点的处理时延、排队时延以及转发数据时的发送时延。
显然,往返时间与所发送的分组长度有关。发送很长的数据块的往返时间,应当比发送很短的数据块的往返时间要多些。
往返时间带宽积的意义就是当发送方连续发送数据时,即使能够及时收到对方的确认,但已经将许多比特发送到链路上了。对于上述例子,假定数据的接收方及时发现了差错,并告知发送方,使发送方立即停止发送,但这时发送方也已经发送了40万各比特了。
当使用卫星通信时,往返时间RTT相对较长,是很重要的一个性能指标。
6-7、信道利用率和网络利用率
信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。信道利用率并非越高越好。这是因为,根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。这和高速公路上的情况有些相似。
由于在公路上的车流量很大时,由于公路上的某些地方会出现堵塞,因此行车所需的时间就会增长。网络上也有类似的情况。当网络的通信量很少时,网络产生的时延并不大。但在网络通信量不断增大的情况下,由于分组在网络结点(路由器或结点交换机)进行处理时需要排队等候,因此网络引起的时延就会增大。
如果令Do表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用简单公式D=Do/1-U来表示D和Do及网络利用率U之间的关系式中,U是网络的利用率,数值在0到1之间。当网络的利用率达到其容量的1/2时,时延就要加倍。
特别值得注意的是:当网络的利用率接近最大值1时,网络的时延就趋于无穷大。因此我们必须有这样的概念:信道或网络利用率过高会产生非常大的时延。
图1-16 时延与利用率的关系