按关键词阅读: 网络 拥塞控制 Reno TCP BBR
BBR
BBR 是谷歌在 2016 年提出的一种新的拥塞控制算法 , 已经在 Youtube 服务器和谷歌跨数据中心广域网上部署 , 据 Youtube 官方数据称 , 部署 BBR 后 , 在全球范围内访问 Youtube 的延迟降低了 53% , 在时延较高的发展中国家 , 延迟降低了 80% 。
BBR 算法不将出现丢包或时延增加作为拥塞的信号 , 而是认为当网络上的数据包总量大于瓶颈链路带宽和时延的乘积时才出现了拥塞 , 所以 BBR 也称为基于拥塞的拥塞控制算法(Congestion-Based Congestion Control) , 其适用网络为高带宽、高时延、有一定丢包率的长肥网络 , 可以有效降低传输时延 , 并保证较高的吞吐量 , 与其他两个常见算法发包速率对比如下:
文章插图
BBR 算法周期性地探测网络的容量 , 交替测量一段时间内的带宽极大值和时延极小值 , 将其乘积作为作为拥塞窗口大小 , 使得拥塞窗口始的值始终与网络的容量保持一致 。
所以 BBR 算法解决了两个比较主要的问题:
- 在有一定丢包率的网络链路上充分利用带宽 。
- 降低网络链路上的 buffer 占用率 , 从而降低延迟 。
总结目前有非常多的 TCP 的拥塞控制协议 , 例如:
- 基于丢包的拥塞控制:将丢包视为出现拥塞 , 采取缓慢探测的方式 , 逐渐增大拥塞窗口 , 当出现丢包时 , 将拥塞窗口减小 , 如 Reno、Cubic 等 。
- 基于时延的拥塞控制:将时延增加视为出现拥塞 , 延时增加时增大拥塞窗口 , 延时减小时减小拥塞窗口 , 如 Vegas、FastTCP 等 。
- 基于链路容量的拥塞控制:实时测量网络带宽和时延 , 认为网络上报文总量大于带宽时延乘积时出现了拥塞 , 如 BBR 。
- 基于学习的拥塞控制:没有特定的拥塞信号 , 而是借助评价函数 , 基于训练数据 , 使用机器学习的方法形成一个控制策略 , 如 Remy 。
此外 , 拥塞控制只是 TCP 相关考点中的一个部分 , 还有许多的常见的高频考点可以顺带去看看 , 例如:
- OSI 模型是什么
- 有哪些协议是基于 TCP 的 , 哪些是基于 UDP 的
- 为什么建立连接需要三次握手 , 而断开连接需要四次握手
- TCP首部长度 , 有哪些字段
- 三次握手过程中有哪些不安全性
声明:本文归 “力扣” 版权所有 , 如需转载请联系 。
文中部分图片来源于网络 , 为非商业用途使用 , 如有侵权联系删除 。
稿源:(未知)
【傻大方】网址:http://www.shadafang.com/c/111J311292020.html
标题:网络|头条面试题 | TCP 的拥塞控制原理( 二 )