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

相关推荐
記億揺晃着的那天5 小时前
NAS 内网域名访问为什么需要浏览器授权
网络·nginx·js·nas
chunmiao30326 小时前
DeepSeek V4-Pro 正式版上线,API 8月17日起分时调价
网络·安全
迪康Defender8 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构
0x538 小时前
Java网络编程(二)
java·服务器·网络
微硬创新9 小时前
老旧产线改造:耐达讯自动化16路4‑20mA转PROFINET的工程实践
人工智能·网络协议·自动化·信息与通信
西安景驰电子10 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
ZGi.ai11 小时前
多模型回答不稳定:路由规则与评测方法
网络·人工智能·大模型评测·多模型·模型路由·zgi·模型网关
80s77711 小时前
独享住宅IP、长效代理ip是什么?有哪些作用?
网络·网络协议·tcp/ip
IPdodo_12 小时前
静态 IP、住宅 IP 和固定出口有什么区别?开发场景选型指南
服务器·网络·网络协议·tcp/ip·代理ip
_ZHOURUI_H_12 小时前
Unity TCP底层极限拆解:粘包、半包、CRC、序列号、双缓冲到底怎么一起工作的?
网络·网络协议·tcp/ip·游戏·unity·游戏引擎·游戏开发