前言

昨天,有一位朋友在我的文章下留言說,銳速和BBR不都是一樣,是擁塞算法嘛。因為這方面需要講的東西比較多,所以我還是專門水一篇文章吧。

銳速

參考資料:

http://www.tcpedge.com/features.html

http://bbs.kuaibo.com/thread-315336-1-1.html

銳速是一個依賴於內核的模塊,其基本原理是將丟包進行評估,將預判到可能會產生丟包的數據包再發一次。所以可能會產生我們所見到的,銳速會加速VPS流量消耗。也就是我們所說的銳速多倍發包。在ACK到來之前會重發一次甚至更多。導致的結果就是重復發送。

BBR

參考資料:

https://emiria.io/post/TCP-BBR/

https://www.nanqinlang.com/controllor-bbr.html

擁塞現象是指到達通信子網中某一部分的分組數量過多,使得該部分網絡來不及處理,以致引起這部分乃至整個網絡性能下降的現象,嚴重時甚至會導致網絡通信業務陷入停頓,即出現死鎖現象。這種現象跟公路網中經常所見的交通擁擠一樣,當節假日公路網中車輛大量增加時,各種走向的車流相互干擾,使每輛車到達目的地的時間都相對增加(即延遲增加),甚至有時在某段公路上車輛因堵塞而無法開動(即發生局部死鎖)。
擁塞控制就是針對此問題的控制技術/解決方案,但也不能說是解決,控制技術只能起到盡量避免/緩解擁塞的作用。

TCP-BBR技術呢,用了一種溢水原理的思想,來預判丟包率,調配發包速率。
假設你有一支較細的U形管,下面還有一堆不可溶的填塞物,你從一邊開始大量灌水,如果另一邊出水正常,你就可以繼續加大灌水量,達到最大帶寬。如果另一邊發現水時斷時有,就證明下面出現了隨機擁堵,這時,你就要減小灌水量,等待水位落下。這時如果采用傳統繼續灌水時,也就會造成水溢出(丟包現象的產生)。所以這是真正的按需發包。當然,這一切是建立在系統預估的情況下。

總結

銳速屬於多倍發包類型的算法,而BBR是基於溢水模型的。BBR設計的更為科學,而且正在走向一個完美的擁塞算法的路上。銳速是一種損人利己的算法,雖然效果是可以,但是會加劇骨干網的負擔。造成很多不必要的流量浪費。至於兩者的加速效果,請各位自行測試,沒有絕對地哪一種快。