什么是TCP?
TCP始于1970年,作為協議套件的一部分, TCP / IP將數據格式化成數據包在網絡上進行傳輸。IETF工作人員表示,超過90%的IP流量都通過TCP傳輸。
在過去的幾十年里,為加快TCP / IP的速度,很多人都在為TCP如何處理擁堵的問題不斷努力。TCP通過監控傳輸中丟失的分組數量減慢在感知擁塞時發送流量的速度。由于網絡交換機和路由器的小緩沖區與互聯網連接的低帶寬很匹配,所以BBR的效果還是很不錯的。遺憾的是,“基于損失”擁塞控制在當今的環境中并不適用。
BBR優勢
BBR以一定速度不斷評估多個路由的吞吐量和往返流量時間,得出遍歷網絡需要的時間。這樣一來,BBR以網絡可處理的速度發送流量,比最初的TCP擁塞控制更有效果。
BBR還兼容由Google設計的替代傳輸協議——快速UDP互聯網連接(QUIC),并被IETF作為標準。
BBR并不是工程師們為加速TCP所做出的第一個努力。北卡羅來納州立大學的研究人員表示,當今開發TCP中使用的最流行的基于丟失的擁塞控制算法之一是二進制增加擁塞控制(BIC),其次是CUBIC,還有另一種流行的擁塞控制算法叫做Reno。這些算法都是使用分組丟失來確定擁塞的,盡管開發BBR的Google工程師Jacobson表示,在他看來,BBR才是唯一一個通過實際估計流量速度來確定最佳傳輸速度的TCP算法。
BBR取得初步成功
Mirja Kuhlewind是蘇黎世網絡系統集團的高級研究員,也是IETF的運輸區域主管,負責TCP的維護和改進工作。她表示,在傳輸與擁堵控制方面建立標準需要很長的時間,在BIC和BBR的發展之前,通過數十次TCP技術改進,才僅有一個成為了標準,擁塞控制計劃的標準化不是一件易事。
Reno和CUBIC基于相同的原理工作,將丟失包作出的反應作為擁塞的標志,檢測到丟失時降低發送速率。而BBR利用的是分組定時信息來確定鏈路是否擁塞。
谷歌的一些客戶已經意識到BBR的重要性,Wordpress在Google Cloud和Founder中托管了50萬個站點,谷歌的CTO Jason Cohen也表示BBR與其他基于丟失的擁塞控制相比提高了2700倍的吞吐量、延遲降低了25倍。
BBR原理簡介
擁塞現象是指到達通信子網中某一部分的分組數量過多,使得該部分網絡來不及處理,以致引起這部分乃至整個網絡性能下降的現象,嚴重時甚至會導致網絡通信業務陷入停頓,即出現死鎖現象。這種現象跟公路網中經常所見的交通擁擠一樣,當節假日公路網中車輛大量增加時,各種走向的車流相互干擾,使每輛車到達目的地的時間都相對增加(即延遲增加),甚至有時在某段公路上車輛因堵塞而無法開動(即發生局部死鎖)。
擁塞控制就是針對此問題的控制技術/解決方案,但也不能說是解決,控制技術只能起到盡量避免/緩解擁塞的作用。TCP-BBR技術呢,用了一種溢水原理的思想,來預判丟包率,調配發包速率。
假設你有一支較細的U形管,下面還有一堆不可溶的填塞物,你從一邊開始大量灌水,如果另一邊出水正常,你就可以繼續加大灌水量,達到最大帶寬。如果另一邊發現水時斷時有,就證明下面出現了隨機擁堵,這時,你就要減小灌水量,等待水位落下。這時如果采用傳統繼續灌水時,也就會造成水溢出(丟包現象的產生)。所以這是真正的按需發包。當然,這一切是建立在系統預估的情況下。