它是一种 TCP 拥塞控制算法,用来解决现代互联网的拥塞问题。
TCP 的重心是试图平衡快速传输数据以及多用户共享管道之间的平衡。
大多数 TCP 都实现了回退算法(backoff),其结果就是你只会获得这个管道的一般的宽带(任何比此宽带大的都会拥塞)。所以缺点就显而易见,并没有充分利用这个管道连接(至少 50%)。
这就是 TCP 的主要问题,它主要聚焦于网络传输的平衡从而导致了宽带的浪费。
可以阅读 BBR 论文了解更多,我们现在只需要知道它是一个拥塞控制技术,它具有以下特性:
- 它被设计成实际拥塞的响应,而不是数据报丢失。BBR 团队在设计算法时希望能够对实际的拥塞做出反应,而不是丢包。BBR 模型能让网络发送速度与可用宽带一样快,比以前的 TCP 在 10GB、100ms 的链路上快 2700 倍,只有 1% 的损耗。
- 它关注于在网络不好时,提供网络的性能。TCP BBR 更加精确的平衡了公平性和利用率,从而在同一网络下要比 TCP 获得更好的下载速度。这在网络不好的场景尤其明显(但是,你在一个非常良好的网络,这个机制也不会有副作用)。
- 它不要求客户端实现 BBR。之前的 QUIC 的算法是需要客户端和服务端都要实现此算法。现在 BBR 不要求客户端必须使用 BBR。这对于那些发展中国家来说是非常重要的,因为这些国家使用的可能还是老式的移动平台,宽带有限,又或者是网站和服务没有更新升级。
文章作者模型了网络丢包来进行测试,测试表明性能要比 TCP 高,具体数值可以文本原文链接
谷歌云平台内部已经开始使用 TCP BBR 了,如前端、负载均衡和托管服务,这些客户端都得到了性能上的改善。
但是如果你直接将 VM 端口暴露给用户(如 vpn),那么你必须要自行开启 TCP BBR(通过设置标示位,前提是你的内核支持 BBR,或者自己拉取 bbr 项目生成编译)
https://medium.com/google-cloud/tcp-bbr-magic-dust-for-network-performance-57a5f1ccf437