惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Cisco Talos Blog
Cisco Talos Blog
T
Threat Research - Cisco Blogs
P
Privacy International News Feed
S
Schneier on Security
P
Privacy & Cybersecurity Law Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
Scott Helme
Scott Helme
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
O
OpenAI News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
PCI Perspectives
PCI Perspectives
GbyAI
GbyAI
宝玉的分享
宝玉的分享
Y
Y Combinator Blog
T
Troy Hunt's Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
腾讯CDC
C
Check Point Blog
Spread Privacy
Spread Privacy
L
LINUX DO - 最新话题
Recent Announcements
Recent Announcements
大猫的无限游戏
大猫的无限游戏
P
Palo Alto Networks Blog
Hacker News: Ask HN
Hacker News: Ask HN
M
MIT News - Artificial intelligence
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Hacker News
The Hacker News
H
Hacker News: Front Page
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
T
Tor Project blog
Martin Fowler
Martin Fowler
博客园 - 叶小钗
罗磊的独立博客
C
Cyber Attacks, Cyber Crime and Cyber Security
H
Heimdal Security Blog
V
Vulnerabilities – Threatpost
Simon Willison's Weblog
Simon Willison's Weblog
Latest news
Latest news
WordPress大学
WordPress大学
G
Google Developers Blog
N
Netflix TechBlog - Medium
S
Security Affairs
S
Secure Thoughts
Know Your Adversary
Know Your Adversary

地球人

Charged App - 使用说明和隐私权政策 kas 使用说明 kas 用户协议 CSUBOT 机器人 Discord 版使用说明书 groupultra telegram-search 部署教程 CSUBOT 机器人程序部署说明书 CSUBOT 机器人使用说明书 2026年最新:Apple iOS 上免费的代理客户端 如何在 Linux 设备上安装 Manticore Search (2025年3月)Linux 编译安装 PostgreSQL 17.4 MariaDB服务器报错unauthenticated?可能是MySQL-connector-python的问题 Raspberry Pi OS 全球软件源镜像站点列表 如何在树莓派上安装 Raspberry Pi OS(2025年) 怎样删除 Archive.today 上已经存档的网页? 我测试了全部的中国AI应用 hexo-submit-urls-to-search-engine 插件说明文档 查找iOS应用可通过哪些地区的Apple App Store下载的方法 东亚地区国际客运轮渡航线地图 TikTok 和 RedNote 的区别 跨境转账汇款-电汇费用分析 低成本保号香港电话卡 ClubSIM ( 支持 VoWiFi ) 解决 MX Player 报错: this audio format eac3 is not supported 使用 Kiwix 下载并阅读离线维基百科 隐私权政策
Windows 设备开启 BBR 拥塞控制算法
地球人 · 2025-05-21 · via 地球人

这篇文章简要介绍了一下,如何在 windows 设备上开启 BBR 拥塞控制算法;以及当前使用这个功能,可能造成的问题。

BBR(Bottleneck Bandwidth and Round-trip propagation time)是一种由 Google 开发的较新型的 TCP 拥塞控制算法。它旨在解决传统拥塞控制算法(如 Reno 或 CUBIC)在某些网络条件下(尤其是有一定丢包率和延迟的网络中)带宽利用率不高和延迟较大的问题。

核心思想

BBR 的核心思想是不再依赖丢包作为判断网络拥塞的主要信号。传统的拥塞控制算法通常在检测到丢包时才降低发送速率,但这在缓冲区较大或存在轻微随机丢包的网络中,可能导致无法充分利用可用带宽,或者引入不必要的延迟(缓冲区膨胀)。

BBR 转而主动测量网络的两个关键参数

  1. 瓶颈带宽 (Bottleneck Bandwidth, BtlBw):网络路径中数据传输速率的上限,即路径中最窄环节的容量。
  2. 往返传播时间 (Round-trip Propagation Time, RTprop):数据包在网络路径中往返所需的最短时间,不包括在中间设备缓冲区中的排队时间。

工作机制

BBR 通过周期性地探测这两个参数来动态调整其发送行为:

  • 探测瓶颈带宽:BBR 会在一段时间内以略高于当前估计的瓶颈带宽的速率发送数据,以探测是否有更高的可用带宽。
  • 探测往返传播时间:BBR 会在一段时间内以略低于当前估计的瓶颈带宽的速率发送数据,以排空路径中的队列,从而测量到更准确的 RTprop。

通过这种方式,BBR 试图将正在传输的数据量(inflight data)维持在略高于带宽时延积(BDP = BtlBw * RTprop)的水平。这样既能充分利用瓶颈链路的带宽,又能避免在网络中造成过长的排队和高延迟

主要优势

  • 高吞吐量:尤其在有一定丢包和延迟的长肥网络(Long Fat Networks)中,BBR 通常能获得比传统算法更高的吞吐量。
  • 低延迟:通过主动控制排队,BBR 能够有效降低网络延迟,避免缓冲区膨胀问题。
  • 对丢包不敏感:由于不主要依赖丢包来判断拥塞,BBR 在有少量随机丢包的网络中表现更稳定。

Windows 开启 BBR 的条件

操作系统支持才行。版本要求可能是 Windows 11 version 22H2 及以上。

以管理员身份运行 Powershell,发送以下命令了解系统支持的算法:

[Enum]::GetNames([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CongestionProvider])

它可能会输出类似:

Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2

这个列表代表了系统在 TCP 设置中所能识别和配置的拥塞控制算法名称。Default 通常意味着由系统根据特定模板或全局设置来决定使用 CUBIC 或其他算法。

Windows 尝试使用 BBR 拥塞控制算法

查看当前配置的拥塞控制算法:

Get-NetTCPSetting | Select SettingName, CongestionProvider

输出可能如下所示:

SettingName        CongestionProvider
-----------        ------------------
Automatic
InternetCustom     CUBIC
DatacenterCustom   CUBIC
Compat             NewReno
Datacenter         CUBIC
Internet           CUBIC

尝试开启:

Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2

报错:

Set-NetTCPSetting : Property CongestionProvider is read-only
At line:1 char:1
+ Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetTCPSett...ystemName = ""):ROOT/StandardCimv2/MSFT_NetTCPSetti
   ng) [Set-NetTCPSetting], CimException
    + FullyQualifiedErrorId : Windows System Error 87,Set-NetTCPSetting

当前 Windows 使用 BBR 算法的问题

此时,查询得知, Windows 的 BBR 支持尚不完善,有很多 bugs (前两个资料提到,开启 BBR 会破坏“localhost”(环回接口)TCP 流量,导致同一台机器内的连接变得缓慢或无响应),如:

  • 会破坏 Steam,因为 Steamwebhelper 无法再启动,并且当使用 Internet Download Manager 时,它会破坏所有下载挂钩,当改回 CUBIC 时,它们会再次工作 —— Fix BBR2 bugs on Windows 11 - Microsoft Community ,创建于 2025 年 5 月 8 日
  • BBR2 24H2 的新 bug 是连接不稳定。我的 Firefox 浏览器会随机收到 NS_BINDING_ABORT 错误。我的 Visual Studio Code Remote 开发插件连接时卡住了,并出现以下错误: failed to set up socket for dynamic port forward to remote port =: proxy connection timed out. 。我的 Messenger (UWP) 应用几乎崩溃(新消息无法显示)。—— Windows 11 24H2 and BBR2 : r/Windows11
  • 会中断 Hyper-V 的本地控制台连接(自 Windows 11 23H2 起)。控制台将显示 Connecting to '[VM]' 几分钟,然后失败并显示 Video remoting was disconnected ,并弹出 Could not connect to the virtual machine. 的提示。—— 如何在 Windows 上启用 TCP BBR - Stack Overflow
  • v2rayN 无法更新地理文件、核心或连接到代理服务器。—— [Bug]: Windows 中的 BBR2 拥塞算法导致 v2rayN 停止工作 · 2dust/v2rayN

因此决定暂时不开启 BBR。如果您想尝试开启,可以试一下命令:

netsh int tcp set supplemental template=Internet congestionprovider=BBR2
netsh int tcp set supplemental template=InternetCustom congestionprovider=BBR2
netsh int tcp set supplemental template=Datacenter congestionprovider=BBR2
netsh int tcp set supplemental template=DatacenterCustom congestionprovider=BBR2
netsh int tcp set supplemental template=Compat congestionprovider=BBR2

这里也可以将  BBR2  替换成  BBR (BBR v1),可以测试一下,对比一下效果。

然后查看当前配置的拥塞控制算法,是否已经配置为 BBR2

Get-NetTCPSetting | Select SettingName, CongestionProvider

在 Windows 11 23H2 / 24H2 上,启用 BBR v2 可能会导致本地 TCP 连接不可用(例如,导致 adb 无法使用、Steam 失败等) ,这时请将拥塞控制算法恢复为之前的配置。恢复后无需重启,问题应该会立即解决。

本文尚不完善,欢迎留言或者评论,告知我最新信息。

参考

Set-NetTCPSetting (NetTCPIP) | Microsoft Learn

Enable TCP BBR v2 on Linux & Windows 11 - Coxxs

https://github.com/google/bbr

本网页的其他版本

本文章有多种语言的版本。

这些网页仅支持浏览,无法发表评论或留言,但提供了更多语言选项,并且加载时间更短:

ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO