TCP BBR

来自WHY42
Riguz讨论 | 贡献2024年1月17日 (三) 11:16的版本

BBR(Bottleneck Bandwidth and Round-trip propagation time)是Google的一種壅塞控制演算法,在網路連結的電腦或行動裝置中運行,可決定數據發送的速度,旨在解決網路壅塞問題。在啟用BBR前,自1980年代起,TCP/IP ( TCP/IP Protocol Suite ) 的演算法大多都是先觀測傳輸時封包是否有丟失狀況,如果有丟失則認識此為網路壅塞,而處理方式是全面降速,直到丟失的封包成功傳出,此舉會導致緩衝區不斷擴大,在傳輸大量資料時速度越來越慢、最後卡死。[1]

而BBR主要是估計寬帶和延遲狀況,則是不斷偵測封包傳輸的錯誤率,根據總傳輸量和錯誤量的比例來決定要以何種頻寬傳輸,降低緩衝區堵塞的狀況,進而提高傳輸速度。Google 率先將 BBR 用在 google.com 及 YouTube 上,大幅提高了頻寬使用效率,全球網路平均傳輸量提升4%,最高更達到14%,雙向傳播時間加快三成,重新緩衝的平均時間也增長11%。


传统拥塞控制算法并不是一蹴而就的,复杂的网络环境和用户的高要求推动着拥塞控制算法的优化和迭代,我们看下基于丢包策略的传统拥塞控制算法的几个迭代版本,如图所示:

与此同时还有一类算法是基于RTT延时策略来进行控制的,但是这类算法在发包速率上可能不够激进,竞争性能不如其他算法,因此在共享网络带宽时有失公平性,但是算法速率曲线却是很平滑: