1.6 計算機網絡的性能指標
性能指標從不同的方面來度量計算機網絡的性能。下面介紹最常用的五個性能指標。
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的以太網。順便指出,上面所說的速率往往是指額定速率或標稱速率。
2.帶寬
“帶寬”(bandwidth)有以下兩種不同的意義:
(1)帶寬本來是指某個信號具有的頻帶寬度。信號的帶寬是指該信號所包含的各種不同頻率成分所占據的頻率范圍。例如,在傳統的通信線路上傳送的電話信號的標準帶寬是3.1 kHz(從300 Hz到3.4 kHz,即話音的主要成分的頻率范圍)。這種意義的帶寬的單位是赫(或千赫、兆赫、吉赫等)。在過去很長的一段時間,通信的主干線路傳送的是模擬信號(即連續變化的信號),因此,表示通信線路允許通過的信號頻帶范圍就稱為線路的帶寬(或通頻帶)。
(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.1節要介紹的網絡適配器中),而傳播時延則發生在機器外部的傳輸信道媒體上。可以用一個簡單的比喻來說明。假定有10輛車的車隊從公路收費站入口出發到相距50公里的目的地。再假定每一輛車過收費站要花費6秒鐘,而車速是每小時100公里。現在可以算出整個車隊從收費站到目的地總共要花費的時間:發車時間共需60秒(相當于網絡中的發送時延),行車時間需要30分鐘(相當于網絡中的傳播時延),因此總共花費的時間是31分鐘。
下面這兩種時延也需要考慮,但比較容易理解。
(3)處理時延
主機或路由器在收到分組時要花費一定的時間進行處理,例如分析分組的首部、從分組中提取數據部分、進行差錯檢驗或查找適當的路由等,這就產生了處理時延。
(4)排隊時延
分組在進行網絡傳輸時,要經過許多的路由器。但分組在進入路由器后要先在輸入隊列中排隊等待處理。在路由器確定了轉發接口后,還要在輸出隊列中排隊等待轉發。這就產生了排隊時延。排隊時延的長短往往取決于網絡當時的通信量。當網絡的通信量很大時會發生隊列溢出,使分組丟失,這相當于排隊時延為無窮大。
這樣,數據在網絡中經歷的總時延就是以上四種時延之和:

一般說來,小時延的網絡要優于大時延的網絡。在某些情況下,一個低速率、小時延的網絡很可能要優于一個高速率但大時延的網絡。
必須指出,在總時延中,究竟是哪一種時延占主導地位,必須具體分析。現在我們暫時忽略處理時延和排隊時延。假定有一個長度為100MB的數據塊(這里的M顯然不是指106而是指220,即1048576。B是字節,1字節=8比特),在帶寬為1Mb/s的信道上(這里的M是106)連續發送,其發送時延是
100 × 1048576 × 8 ÷ 106 = 838.9 s
即將近要用14分鐘才能把這樣大的數據塊發送完畢。然而若將這樣的數據用光纖傳送到1000 km遠的計算機,那么每一個比特在1000km的光纖上只需用5ms就能到達目的地。因此對于這種情況,發送時延占主導地位。如果我們把傳播距離減小到1km,那么傳播時延也會相應地減小到原來數值的千分之一。然而由于傳播時延在總時延中的比重是微不足道的,因此總時延的數值基本上還是由發送時延來決定的。
再看一個例子。要傳送的數據僅有1個字節(如鍵盤上鍵入的一個字符,共8bit)。在1 Mb/s的信道上的發送時延是
8÷ 106 = 8 × 10–6 s = 8 μs
當傳播時延為5 ms時,總時延為5.008 ms。顯然,在這種情況下,傳播時延決定了總時延。這時,即使把數據率提高到1000倍(即將數據的發送速率提高到1Gb/s),總時延也不會減小多少。這個例子告訴我們,不能籠統地認為:“數據的發送速率越高,傳送得就越快”。這是因為數據傳送的總時延是由式(1-3)右端的四項時延組成的,不能僅考慮發送時延一項。
必須強調指出,初學網絡的人容易產生這樣錯誤的概念,就是“在高速鏈路(或高帶寬鏈路)上,比特應當跑得更快些”。但這是不對的。我們知道,汽車在路面質量很好的高速公路上可明顯地提高行駛速率。然而對于高速網絡鏈路,我們提高的僅僅是數據的發送速率而不是比特在鏈路上的傳播速率。荷載信息的電磁波在通信線路上的傳播速率(這是光速的數量級)與數據的發送速率并無關系。提高數據的發送速率只是減小了數據的發送時延。還有一點也應當注意,就是數據的發送速率的單位是每秒發送多少個比特,是指某個點或某個接口上的發送速率。而傳播速率的單位是每秒傳播多少公里,是指傳輸線路上比特的傳播速率。因此,通常所說的“光纖信道的傳輸速率高”是指向光纖信道發送數據的速率可以很高,而光纖信道的傳播速率實際上比銅線的傳播速率還略低一點。這是因為經過測量得知,光在光纖中的傳播速率是每秒20.5萬公里,它比電磁波在銅線(如5類線)中的傳播速率(每秒23.1萬公里)略低一些。上述這個概念請讀者務必弄清。
5.利用率
利用率有信道利用率和網絡利用率兩種。信道利用率指出某信道有百分之幾的時間是被利用的(有數據通過)。完全空閑的信道的利用率是零。網絡利用率則是全網絡的信道利用率的加權平均值。信道利用率并非越高越好。這是因為,根據排隊論的理論,當某信道的利用率增大時,該信道引起的時延也就迅速增加。這和高速公路的情況有些相似。當高速公路上的車流量很大時,由于在公路上的某些地方會出現堵塞,因此行車所需的時間就會增大。網絡也有類似的情況。當網絡的通信量很少時,網絡產生的時延并不大。但在網絡通信量不斷增大的情況下,由于分組在網絡結點(路由器或結點交換機)進行處理時需要排隊等候,因此網絡引起的時延就會增大。如果令D0表示網絡空閑時的時延,D表示網絡當前的時延,那么在適當的假定條件下,可以用下面的簡單公式來表示D、D0和利用率U之間的關系:

這里U的數值在0到1之間。限于篇幅,這里不討論式(1-4)的推導過程。當網絡的利用率達到其容量的1/2時,時延就要加倍。特別值得注意的就是:當網絡的利用率接近最大值1時,網絡的時延就趨于無窮大。因此我們必須有這樣的概念:信道或網絡利用率過高會產生非常大的時延。也就是說,一定不要讓信道或網絡的利用率接近于1。圖1-13給出了上述概念的示意圖。因此一些擁有較大主干網的ISP通常會控制他們的信道利用率不超過50%。如果超過了就要準備擴容,增大線路的帶寬。

圖1-13 時延與利用率的關系