分類: 網頁開發

網路的延遲(Latency)與頻寬(Bandwidth)是什麼?

這裡介紹網路的延遲(Latency)與頻寬(Bandwidth)是什麼,以及它們對於我們的網路有什麼影響。

在過去幾年中,網路效能最佳化(web performance optimization,簡稱 WPO)這個產業快速成長,這個現象也顯示了網路速度對於使用者而言也越來越重要,如果一個網站可以提供比較快速的網路服務,除了改善使用者經驗之外,連同網站的流量與其附帶的效益也都會跟著增加。

網站速度對於使用者(顧客)的影響應該是顯而易見的,一個網站要讓使用者感覺很好,除了網頁設計與美工之外,瀏覽網頁的流暢度也很重要,如果使用者在瀏覽一家公司的網站時,看網頁老是要等很久,即便網站做得很漂亮,我想大概也不會給使用者什麼好映像,反之如果網站反應速度很快,就比較不會產生這樣的問題。

而要讓網站的速度快,就要先了解許多基本的技術細節,其中會影響網路的兩個重要因素就是延遲(Latency)與頻寬(Bandwidth):

  • 延遲(Latency):一個封包從來源端送出後,到目的端接收到這個封包,中間所花的時間。
  • 頻寬(Bandwidth):傳輸媒介的最大吞吐量(throughput)。

網路的延遲(Latency)與頻寬(Bandwidth)示意圖

在了解網路延遲與頻寬的關係之後,接下來就可以更深入研究 TCP 與 UDP 兩種通訊協定的內部結構與效能特性,進而探討以這兩種協定為基礎的應用。

Hibernia Express:減低大西洋的網路延遲

在金融市場上網路的延遲對於頻繁的演算法交易(algorithmic trading)影響很大,只是幾毫秒(milliseconds)的差異也會造幾百萬的虧損或是獲利。

在 2011 年年初,Huawei 與?Hibernia Atlantic 兩家公司開始建造一條橫跨大西洋的光纖網路 Hibernia Express,這條網路長達 3000 英哩,連接英國倫敦與美國紐約,而建造這條光纖網路只有一個目的,就是為了可以減少中間的路由器數量,讓交易商在這兩個城市之間使用網路傳輸資料時,可以省下 5 毫秒的網路延遲。

這條光纖網路一旦建造完成,會專門提供給金融機構來使用,建造這條網路需要花費超過 4 億美元,而在建造完成之後,這些金融機構每秒可以透過這條網路節省 8 千萬美元!網路延遲在這裡是非常昂貴的。

網路延遲(Latency)的組成元素

網路的延遲就是一個訊息或是封包從來源端傳送到目的端所需要的時間,這個定義很簡單易懂,但是在這個背後其實還隱藏了很多其他很多有用的資訊,每一種系統中都會有許多會影響網路延遲的原因,了解有哪些影響因素與其運作方式也是很重要的。

在網路上有許多路由器專門負責遞送網路封包,這樣的路由器通常會有下面這些會造成網路延遲的因素:

  • propagation delay:封包在網路線上傳輸所花費的時間,與網路線上電子訊號跑的速度有關,這個時間就是距離除以訊號傳送速度所得到的數值。假設傳送距離為 d ,傳輸的速率為 s ,那麼 propagation delay 就是 d/s。
  • transmission delay:網路卡將資料傳送到網路線上(或從網路線上接收)所花的時間,與網路設備的傳送速度有關(如高速乙太網路傳送速度為 100Mbps)。假設頻寬為 L(bits),數據傳輸速率為 R(bits/sec),這樣產生的 transmission delay 就是 L/R。
  • nodal processing delay:路由器處理封包表頭(packet header)、檢查位元資料錯誤與尋找配送路徑等所花費的時間。
  • queuing delay:路由器因為某些因素無法立刻將封包傳送到網路上,造成封包暫存在佇列(queue)中等待的時間。

把以上這幾種因素造成的延遲時間加總之後,就是使用者端與伺服器端之間的網路延遲,propagation delay 的時間是取決於訊號傳輸的距離與傳送的媒介,由於網路訊號的傳遞速度是光速,所以 propagation delay 通常都可以維持在非常小的範圍內。

在另一方面,transmission delay 則是由網路設備的資料傳送速度來決定的,這個部份則跟伺服器與使用者之間的距離無關。假設現在有兩條網路,其中一條網路的速度是 1 Mbps,另外一條則是 100 Mbps,如果使用這兩條網路各傳送一個 10 Mb 大小的資料,則將資料放進第一條 1 Mbps 的網路中傳送會需要 10 秒鐘,而放進另一條 100 Mbps 的網路則只需要 0.1 秒。

接著當一個網路封包傳送到路由器(router)時,路由器就會檢查封包的表頭來決定接下來該把這個封包往哪裡遞送,除了表頭之外,也可能會一併檢查封包內部的資料,而這些動作都會需要時間,雖然這些動作大部分都是由硬體在處理,耗費的時間非常少,但是這個時間還是存在的。另外,如果封包傳送給路由器的速度太快,路由器一時來不及處理的話,這些來不及處理的封包就會被放進緩衝區的佇列中等候,而這個等候所耗費的時間就是 queuing delay。

每一個封包再網路上傳送時,都一定會碰到這四種延遲,來源端與目的端的距離越遠,所造成的 propagate delay 就會越長;傳輸過程中如果經過多的路由器,那麼 nodal processing delay 與 transmission delay 也會越長;網路的覆載量比較高的時候,也會有比較高的機率造成路由器來不及處理而把封包放入佇列中,進而增加 queuing delay 的時間。

請繼續閱讀下一頁。

Page: 1 2 3

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang
標籤: 網路

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

2 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

3 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

3 年 ago