?

計算機網絡總時延公式的探討

2021-09-14 23:21崔鴻顧兆軍
電腦知識與技術 2021年22期
關鍵詞:路由器排隊時延

崔鴻 顧兆軍

摘要:國內大多數高校的《計算機網絡》教材,在介紹計算機網絡基本原理分組交換技術時,給出相同的總時延公式,對該公式進行了探討,提出其修正公式及分析。

關鍵詞: 關總時延公式;計算機網絡

Abstract: When introducing the basic principle of computer network and packet switching technology, the same total delay formula is given in the textbook of computer network in most domestic colleges and universities. This paper discusses the formula, and puts forward its correction formula and analysis.

Key words: total delay formula; computer network

1 引言

國內大多數高校的本科“計算機網絡”課程選用的是《計算機網絡》1或《計算機網絡:自頂向下方法》2為教材,這兩種教材在計算機網絡概述部分,在介紹網絡基本原理分組交換技術時,給出了相同的分組交換總時延公式。筆者認為該公式應該修正。

2 總時延公式

計算機網絡的基本原理是分組交換技術,分組從源主機出發,經過多個路由器,到達終點主機。分組從源端到目的端所花費的時間為總時延。

2.1 總時延原公式與修正公式

兩種教材給出的總時延公式為:

總時延 = 發送時延 + 傳播時延 + 處理時延 + 排隊時延

筆者認為總時延公式應當修正為:

總時延 = 發送時延 + 傳播時延 + 存儲時延

先介紹這幾個時延概念,再介紹本文提出的“存儲時延”的概念。

發送時延(dtrans)是指主機向網絡發送數據所花費的時間,就是數據量除以網絡帶寬。舉例,鏈路的數據傳輸速率為100Mbps,分組大小為1000B,該分組的發送時延就是0.08ms。注意分組數據以字節為單位,網絡帶寬以比特為單位,要換算一下。

傳播時延(dprop)是指信號電磁波在信道中傳播一定的距離而花費的時間,電磁波在電纜中的速度通常按200m/us計算。舉例:某兩個主機相距1000m,傳播時延的計算結果就是5us。

排隊時延(dqueue)分組在路由器內排隊等待處理的時間,稱為排隊時延。排隊時間實質是當時網絡的擁塞程度。

處理時延(dproc)是指路由器CPU處理分組的時間,CPU處理時間也非常小。

2.2 修正公式的分析

計算機網絡基本原理是分組交換技術,就是說一個分組從源主機出發,穿越多個路由器后,到達目的主機。其中的關鍵就是“路由器存儲-轉發分組(store and forward)”。分組在網絡中傳輸過程如圖1所示。

在這個過程中,關鍵是分析清楚分組在路由器內部的過程,現在詳細分析一下分組在路由器內的全過程。

第一步:接收分組

當分組的第1個比特到達路由器的接口時,接口芯片開始接將分組數據存儲在I/O設備的緩沖區里,當整個分組接收完畢,分組完全存入路由器的I/O設備的緩沖區后,路由器的I/O設備產生一個中斷信號給路由器CPU。從第1個比特到達路由器I/O接口,到分組接收完畢,這段時間我稱其為“存儲時延”,是“存儲-轉發”中存儲兩個字的意思,是路由器I/O設備的讀寫時間。

第二步:分組排隊

分組進入路由器后,路由器可能已經接收了多個分組,這些分組在路由器內部排隊,等待CPU處理。排隊的長度是不確定的,依賴于路由器當前的擁塞程度。這段時延稱為“排隊時延”。

第三步:轉發分組

當分組排隊排到后,路由器的CPU開始處理分組,就是檢索路由表,轉發分組,這段CPU處理所用時間很短。這段時間稱為“處理時延”。

路由器的存儲轉發原理絕不是分組的第1個比特到達路由器I/O設備時,路由器就開始轉發分組。而是要完成三個步驟,路由器接收分組,分組排隊,轉發分組。接收分組所花的時間,不能忽略,必須計算。分組進入路由器后,所花時間為排隊時延和處理時延,如無特殊需求,應忽略不計。

總時延公式的瑕疵就是沒有將“路由器存儲轉發”原理與總時延公式匹配,沒有展開詳細的討論。在總時延公式中,將不能忽略的忽略了,將通常忽略的寫入了,弄反了整件事情的方向和重點。這樣一來,就無法說明白存儲轉發原理與總時延公式是同一個事物,只是兩種表達,文字表達和公式表達。讀者就無法將存儲轉發原理與總時延公式匹配在一起。

總時延 = 發送時延 + 傳播時延 + 存儲時延

現對“存儲轉發”原理展開了詳細的討論,明確提出了“存儲時延”的概念,修正了總時延的計算公式,明確表述存儲轉發原理與總時延公式是同一個事物,將原理、公式、分析圖統一在一起。

3 總時延修正公式的應用

此處通過一例題(2010年考研題34題單選題),詳述存儲轉發原理、總時延公式、分析圖,給出總時延公式的實際應用。

例1在下圖所示的采用“存儲-轉發”方式分組的交換網絡中,所有鏈路的數據傳輸速率為100Mbps,分組大小為1000B,其中分組首部大小20B,若主機H1向主機H2發送一個大小為980000B的文件,則在不考慮分組拆裝時間和傳播延遲的情況下,從H1發送到H2接收完為止,需要的時間至少是() A.80ms B.80.08ms C.80.16ms D.80.24ms? ?單項選擇

解析:題中有“至少”兩個字,如何理解??聪聢D,從主機H1到主機H2,可以有兩條路徑,路徑①與路徑②。

路徑①經過3段鏈路,路徑②經過4段鏈路,電磁信號的速度是200m/us的常數,那是不是路徑②花的時間多呢?題目中說明了“不考慮傳播時延”,就是說花的時間都按0計算。那么走路徑②就和路徑①花的時間一樣多了,都是0?選哪條路都無所謂嗎?

路由器是“存儲轉發”,傳播時延忽略不計,存儲時延不能忽略不計。走路徑①,途中經過2個路由器,會產生2個存儲時延,如果選擇路徑②,途中會經過3個路由器,會產生3個存儲時延,轉發流程示意圖如下:

題中要求“至少”,所以應選擇路徑①。按經過2個路由器計算,分析總時延最好的工具就是分組轉發示意圖。注意,因為忽略傳播時延,圖中的分組傳播線就應該是水平的,表示8:00從H1出發,8:00就到達R1,從H1到R1花費時間為0。由題目知,每個分組1000B,注意B是字節,數據傳輸速率為100Mbps,注意b是比特。每個分組的發送時延就是1000*8 / 100Mbps = 80 us= 0.08 ms。分組首部20B,數據部分就是1000-20=980 B,文件大小為980000B, 980000B / 980 B=1000,文件被切分為1000個分組。分組轉發流程如圖5所示。

總時延= 發送時延 + 傳播時延 + 存儲時延

總時延= 1000 * 0.08ms + 0 (忽略)+? 0.08ms * 2,? 共計80.16ms,故應選C。

繼續引申。假設上題主機到路由器鏈路的數據傳輸速率為100Mbps,路由器之間的鏈路數據傳輸速率為1000Mbps,其余條件不變,從H1發送到H2接收完為止,需要的時間至少是多少呢?

第一段鏈路是低速鏈路,傳輸1000B的分組需要0.08ms,在0.08ms后,第1個分組完全到達路由器R1,路由器開始轉發,因第二段鏈路是高速鏈路,傳輸1000B的分組僅僅需要0.008ms,傳輸完之后,路由器能立即傳輸第2個分組嗎?不行,路由器是存儲轉發,此時第2個分組在第一段鏈路中還沒有傳輸完,必須在傳輸結束后,路由器才能開始轉發,這段時間就只能空閑等待。由存儲轉發原理可清晰地分析出路由器R1的存儲時延為0.08ms,路由器R2的存儲時延為0.008ms。

總時延= 發送時延 + 傳播時延 + 存儲時延

總時延=1000*0.08ms? +? 0(忽略) +? 0.08ms + 0.008ms,? 共計80.088ms。

在例題的引申變化中,能更加清晰地解釋總時延公式與存儲轉發原理的關系,二者完全是同一個事物,只是兩種表達方式。在實際分析與應用中,通常忽略排隊時延與處理時延,但不能忽略存儲時延。

參考文獻:

[1] 謝希仁.計算機網絡第7版[M].北京:電子工業出版社,2017.

[2] James F.Kurose,Keith W.Ross.計算機網絡:自頂向下方法[M]. 陳鳴,譯.北京:機械工業出版社,2009.

【通聯編輯:代影】

猜你喜歡
路由器排隊時延
買千兆路由器看接口參數
路由器每天都要關
怎樣排隊
基于GCC-nearest時延估計的室內聲源定位
基于改進二次相關算法的TDOA時延估計
巧排隊列
三角龍排隊
無線路由器的保養方法
FRFT在水聲信道時延頻移聯合估計中的應用
基于分段CEEMD降噪的時延估計研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合