高性能瀏覽器網絡之網絡部分 -- 延遲和帶寬入門

後面準備抽時間對大作High Performance Browsing Networking進行翻譯,主要是自己看的慢,所以就邊看邊翻譯,權當學習。

水平有限,歡迎圍觀、指正、批評~~

------------------------------------------------------------------------------------------------------------------------------------

第一部分 網絡


第一章 延遲和帶寬入門


速度是一個功能(Speed Is a Feature)

過去幾年,WTO(web performance optimization)行業的出現和快速發展釋放了一個明顯的信號,速度越來越重要,用戶要求更快的用戶體驗。在我們不斷加速和連接的世界中,這不是簡單的對速度需求的強迫症,而是由對很多在線業務最低性能需求測量而得的實證結果驅動的需求。
  • 更快的網站帶來更好的用戶參與度
  • 更快的網站帶來更好的用戶保留率
  • 更快的網站帶來更高的用戶轉換率
簡言之,速度是一個功能。爲了實現這個功能,我們需要理解與之相關的各種因素和基本的限制。本章,我們將把重點放在決定網絡流通性能的兩個關鍵因素:延遲和帶寬(圖1)。
延遲
     從源端發出包到目標端收到包的時間間隔
帶寬
     一個邏輯或物理通信鏈路的最大吞吐量


對延遲和帶寬如何協同作用有了更好的理解之後,我們就有信心深挖TCP, UDP,和所有基於這兩個協議的應用層協議的內部結構和性能特徵。

通過Hibernia Express降低橫跨大西洋的延遲
延遲是金融市場上很多高頻交易算法的一個重要標準,一個幾毫秒的微弱差別可能導致數百萬的損失,也可能帶來數百萬的利潤。
2011年初,華爲和Hibernia Atlantic(美國寬帶服務商)開始部署一條新的橫跨大西洋的3000英里光纖,以連接倫敦和紐約。新光纖的唯一目標是節約5毫秒的交易延遲。
部署好之後,這條電纜將只給金融機構使用。整個工程花費 4億美元,換句話說是,節約一毫秒需要花費8000萬美元!延遲是相當昂貴的 -- 名副其實。

延遲的構成(The Many Components of Latency)

延遲是一個消息,或一個數據包從發送端到達接收端所花費的時間。這是一個簡單而且有用的定義,但也隱藏了很多有用的信息 -- 每一個系統都包含多個源,或組件,它們會影響到消息發送的整體時間,理解有哪些組件和它們的性能的決定因素是很重要的。

讓我們進一步看看,互聯網上,用於中繼消息的典型的路由器,一般有哪些的部分影響到延遲。

傳播延遲
     一個消息從發送端傳輸到接收端所需要的時間,與傳播距離正相關。
傳輸延遲
     把所有數據包的bits推送進鏈路所需要的時間,與數據包長度和鏈路的數據傳輸率有關。
處理延遲
     處理包頭,檢查位錯誤,決定包的目的地總共需要的時間
排隊延遲
     能夠被處理前,在隊列中等待的時間

客戶端與服務器之間的延遲是如上所列所有延遲的總和。傳播延遲由信號傳輸的介質和距離決定 -- 我們將會看到,傳播速度通常是比光速小一些。另一方面,傳輸延遲由傳輸鏈路的可用數據傳輸率決定,與客戶端和服務器之間的距離無關。舉個例子,假設我們要通過兩條鏈路:一條1Mbps,一條100Mbps, 傳輸一個10Mb的文件。把整個文件放入1Mbps的鏈路,需要10秒,而放入100Mbps的鏈路只需要0.1秒。

下一步,當數據包到達路由器時,路由器必須檢查包頭來決定輸出路由,而且還要對數據做其它的檢查 -- 這也花時間。許多這類邏輯現在常常由硬件完成,所以延遲會很小,但確實存在。最後,如果數據包到達的速度比路由器處理的快,它們就要在輸入緩衝中排隊等待。數據在緩衝中等待的時間,毫無疑問,就是所謂的排隊延遲。

每一個在網絡上傳輸的包,都會遇到許多這些延遲的實例。客戶端與服務器之間的距離越遠,花在傳播上的時間就越長。沿途遇到的中間路由器越多,每個包的處理和傳輸延遲就越大。最後,傳輸路徑上的負載越高,包被阻塞在輸入緩衝中的概率就越大。

你的本地路由器中的緩衝膨脹(Bufferbloat)
Bufferbloat是一個由Jim Gettys在2010年杜撰並普及的術語,它是一個說明排隊延遲對網絡整體性能影響的很好的例子。
潛在的問題是,在應該不惜代價避免丟包的假設下,如今的路由器都配備了很大的輸入緩衝。但這破壞了TCP的擁塞避免機制,給網絡引入了高且可變的延遲。
好消息是,爲了解決這一個問題,已經提出了一個新的CoDel主動式隊列管理算法,而且目前已經在Linux 3.5內核中實現。更詳細瞭解,請參考 "Controlling Queue Delay"。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章