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

相关推荐
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
wuyk5553 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
XUEYUAN52123 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
QYRdata3 天前
年均增速24.2%!机器人数据湖未来六年增长动能强劲
网络·机器人·服务发现
CHENKONG_CK3 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
chshang19923 天前
工业路由器是什么?浅谈5G工业网络中的IR602
网络·物联网·5g·智能路由器
萧瑟余晖3 天前
Netty 核心组件与 Reactor 模型详解
网络·架构
ITxiaobing20233 天前
IP 定位服务选型指南:从准确率到工程落地的技术考察
linux·服务器·网络
wuyk5553 天前
【Socket 进阶之路】第 9 章 Linux 网络服务量产稳定性优化|心跳保活、TIME_WAIT、SO_LINGER、内存池、断线重连、完整异常防护框架
linux·服务器·开发语言·网络·物联网
z落落3 天前
C#UDP+串口服务端+UDP 客户端(含 CRC16 校验)
网络·网络协议·udp