发布时间:2024-09-18
在互联网发展的早期,丢包被视为网络拥塞的直接信号。然而,随着网络技术的飞速进步,这种假设逐渐变得不再适用。2016年,Google推出的BBR(Bottleneck Bandwidth and Round-trip propagation time)拥塞控制算法,为解决这一问题提供了全新的思路。
BBR算法的核心在于主动探测网络状况 ,而不是被动地等待丢包信号。 它通过测量两个关键参数——RTprop(往返传播时间)和BtlBw(瓶颈带宽)——来实时调整发送速率。 具体来说,BBR利用应答包(ACK)中的RTT信息和已发送字节数来计算真实传输速率(delivery rate),并据此调节客户端的发送速率(sending rate)。
与传统的基于丢包的拥塞控制算法(如CUBIC)相比,BBR具有显著优势。在Google的全球广域网(B4)中部署后, BBR将吞吐量提升了2~25倍 ,经过进一步调优后甚至达到了133倍的提升。更重要的是, BBR能够有效避免“缓冲膨胀”问题 ,显著降低报文的往返时延(RTT)。
然而,BBR并非完美无缺。在浅缓冲区环境中, BBR可能导致更高的数据包重传率。 实验表明,在某些情况下,BBR的数据包重传次数可能是CUBIC的100倍。这意味着在对丢包敏感的应用场景中,BBR可能不是一个理想的选择。
BBR的应用场景主要集中在需要高效利用网络资源、对延迟敏感的场景 。例如,在视频流传输、大规模文件传输等领域,BBR能够提供更流畅、更快速的服务。此外,BBR还被应用于Google的内部网络和YouTube等服务中,显著提升了用户体验。
展望未来,BBR算法的出现标志着拥塞控制领域的一个重要转折点。它不仅解决了传统算法在现代网络环境下面临的问题,还为未来的拥塞控制算法设计提供了新的思路。随着网络技术的不断发展,我们有理由相信,未来的拥塞控制算法将会更加智能、更加适应复杂的网络环境。