拥塞控制算法cubic 和bbr

1. 背景

CUBIC 和 BBR 是两种用于网络流量控制的拥塞控制算法,广泛应用于传输中,本质上是用于提升网络速度、稳定性和效率的方案。CUBIC 和 BBR 在本质思想、设计目标和工作方式上存在很大的差异,以下是两者的详细对比。

1.1 CUBIC

提出者: CUBIC 是 TCP 拥塞控制的算法之一,于 2008 年提出,是 TCP Reno 和 TCP Vegas 的后继者。

默认算法:

  • Linux 内核中的默认 TCP 拥塞控制算法。
  • 特点为简单易实现,与传统 TCP 的兼容性良好。

核心特点:

  • 基于增量式带宽探测,以时间和 RTT(Round Trip Time, 往返时间)为核心参数计算网络的可用带宽。
    拥塞窗口(拥塞控制的核心变量)的增长由一个三次方函数(cubic 函数)描述。
  • 更适合高带宽、高延迟的网络环境。

1.2 BBR (Bottleneck Bandwidth and RTT)

提出者: 谷歌(Google),首次发布于 2016 年。

默认算法:

  • 正在逐步应用于一些服务(例如 Google 和 YouTube),作为替代传统 TCP 拥塞控制算法的优化方案。

核心特点:

  • 基于可用带宽和往返时间的主动估算。
  • 思路与传统 TCP 比较激进,倾向于紧贴「瓶颈带宽」传输,精准预测网络容量,最大化利用。
  • 擅长处理高带宽、动态相变的网络(例如慢速 5G 信道)。

1.3 核心机制对比

特性 CUBIC BBR
设计模型 以复合函数(时间和 RTT 结合)逐步增加窗口大小 主动探索网络「瓶颈带宽」和「最低 RTT」
拥塞处理 遵循「丢包信号」来判断拥塞,减少窗口大小 仅通过带宽测量和 RTT 来判断拥塞,无需依赖丢包信号
拥塞窗口增长 基于三次方函数,适合高延迟带宽产品(增长速度更快),尤其对长距离链路传输友好 无拥塞窗口概念,更专注于估计「实际带宽」而非增加传输速率
RTT 对吞吐量的影响 RTT 较长时增长更慢,表现会衰减(如 CUBIC 更适合 LAN 等网络)。 RTT 对吞吐量几乎无影响(只需精准捕获最低 RTT,不依赖 RTT 测量传输性能)。
带宽使用优化 并未真实估算网络的瓶颈带宽。 测量网络瓶颈带宽,确保流量紧贴带宽上限,避免过多流量对网络导致拥塞。
恢复速度 默认使用丢包后退避方式逐步恢复流量速率,增长较慢 快速恢复网络速率,带宽调整较为灵活。
适应多样链路 对高带宽高延迟链路(如光纤线路)更优化 对不稳定网络(如卫星通信、无线网络)及非均匀链路自适应能力更好。

2. 实验

在异地场景下,ping大概39ms。

  1. 查看本地拥塞控制算法:

cat /proc/sys/net/ipv4/tcp_congestion_control

  1. 通过iperf3测试TCP网络的总体吞吐量以及带宽,用10个并发

iperf3 -c {ip地址} -P 10

  1. 使用cubic

执行iper3测试发现,部分链接带宽差异很大(甚至10倍), 且频繁发生重传

  1. 使用bbr

sudo sysctl net.ipv4.tcp_congestion_control=bbr

执行iper3测试发现,显示所有链接都十分稳定

在异地网络不稳定场景下,使用BBR效果更好

相关推荐
古希腊数通小白(ip在学)1 小时前
stp拓扑变化分类
运维·服务器·网络·智能路由器
程序小武7 小时前
网络请求的基本概念、原理及生活化解析
网络协议
hrrrrb8 小时前
【TCP/IP】11. IP 组播
服务器·网络·tcp/ip
甘露寺9 小时前
HTTP 请求体类型详解:选择最适合的数据提交格式
网络·网络协议·http
七仔あ9 小时前
小皮面板搭建pikachu靶场
网络·渗透
傻啦嘿哟9 小时前
长效住宅代理IP:反爬虫战场上的隐形盾牌
爬虫·网络协议·tcp/ip
Muisti10 小时前
NAT技术(网络地址转换)
网络·计算机网络·智能路由器
SKYDROID云卓小助手10 小时前
无人设备遥控器之无线电频率篇
服务器·网络·单片机·嵌入式硬件·算法
chirrupy_hamal11 小时前
TCP 保活(KeepAlive)机制详解
网络·tcp
hrrrrb11 小时前
【TCP/IP】7. IP 路由
网络·tcp/ip·智能路由器