BBR:基于拥塞的高效TCP控制算法解析(2017 ACM论文)

需积分: 0 0 下载量 179 浏览量 更新于2024-06-30 收藏 2.22MB PDF 举报
BBR(Bottleneck Bandwidth and Round-trip Propagation Time)是一项由Google在2017年提出并发表在ACM的论文中的拥塞控制算法。在传统TCP拥塞控制中,算法主要依赖于丢包(loss-based)机制,这种设计源于20世纪80、90年代,当时网络环境条件限制,链路带宽和内存容量相对较低,链路质量普遍较差,丢包和延迟被视为网络拥塞的明显信号。 然而,随着时间的推移和技术的进步,网络条件发生了显著变化。链路带宽增长了至少六个数量级,丢包和延迟不再等同于拥塞,这使得基于丢包的传统方法变得不再适用。BBR的创新之处在于,它抛弃了对丢包和延迟的依赖,转而专注于直接测量和利用网络拥塞本身的信息。算法的核心思想是通过分析接收方(如路由器)回应的ACK(确认信息)中的RTT(往返时延)和已发送数据量,来估计实际的传输速率(delivery rate),然后以此调整发送端的发送速率(sending rate),以维持合理的飞行数据量,从而最大化带宽利用率和降低传输延迟。 BBR的设计目标是实现全局的、无须协议或网络结构改变的拥塞控制,使其在现代基础设施中具有高度适应性。Google在2016年将其广域网B4的TCP流量从CUBIC协议切换到BBR后,观察到了显著的性能提升,吞吐量提高了2到25倍。经过进一步优化,这一提升甚至达到了惊人的133倍。Linux系统提供了相应的实现支持,包括`include/uapi/linux/inet_diag.h`和`net/ipv4/tcp_bbr.c`文件。 BBR的成功案例展示了在新时代背景下,对传统通信理论进行革新和适应的重要性,它的出现标志着拥塞控制技术向着更精确、更智能的方向发展。通过理解BBR的设计理念和原理,网络管理员和开发者可以更好地优化网络性能,提高服务质量,尤其是在如今数据中心和互联网广泛应用的环境中。