拥塞控制算法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效果更好

相关推荐
马立杰4 分钟前
IE241210_路由安全技术(三层安全)
网络·安全
马立杰16 分钟前
IE241211_路由安全技术(三层安全)
网络·安全·智能路由器
迪康Defender21 分钟前
公用电脑责任追溯难?迪康端点安全一体化管理系统用户模式详解
java·运维·开发语言·网络·其他·安全
迪康Defender1 小时前
迪康端点安全一体化管理系统文档安全:构建企业文档资产全链路防护体系
运维·网络·安全·web安全·终端安全管理
AI备忘录1 小时前
(十九)华为华三锐捷迈普思科 交换机链路聚合配置命令(LACP/静态聚合五厂商对照)
运维·服务器·网络·网络协议·tcp/ip·华为
raindayinrain1 小时前
理解网络--Tcp性能优化
网络·tcp/ip·性能优化
啊阿狸不会拉杆1 小时前
《计算机网络-自顶向下方法》4.4 泛化转发和SDN 读书笔记
网络·计算机网络·智能路由器
yonlingxu1 小时前
创客匠人深度陪跑案例:盘活存量 IP,解锁婚恋知识赛道第二增长曲线
网络·网络协议·tcp/ip
且白2 小时前
node、npm通过http-server架设本地服务器(可解决跨域)
服务器·网络协议·http
Java小白笔记2 小时前
Java 实现 ZIP 压缩包生成方案
java·开发语言·网络·7-zip