为什么当有人打开 YouTube 时你的游戏 Ping 会爆炸

你正处于游戏中期。 Ping 稳定在 30ms。你的室友开始播放电影。突然你的 ping 值飙升至 400 毫秒。你用橡皮筋穿过地图。你死了。他们问“你为什么大喊大叫?”

或者您正在进行 Zoom 通话。房子里的其他人开始将照片上传到云端。你的视频冻结了。音频中断。你的老板认为你的互联网是垃圾。

The weird part: your internet speed test shows 300 Mbps down, 20 Mbps up.充足的带宽。 So why does ONE person using the internet make it terrible for everyone else?

这就是缓冲区膨胀。 它几乎影响每个家庭网络,即使互联网速度很快。

游戏玩家因桌面延迟而感到沮丧
当其他人使用该连接时,Bufferbloat 会将流畅的游戏变成 400 毫秒的延迟峰值。摄影: 像素 · 免费使用

Bufferbloat 实际上是什么(简单版)

您的路由器有缓冲区(等待区域),用于保存数据包,同时决定将数据发送到何处。当这些缓冲区太大时,数据包排队等待的时间太长,从而产生巨大的延迟。

正常行为:

  • 你玩游戏:30ms ping
  • 有人启动 Netflix:ping 保持 35-40 毫秒
  • 几乎不明显

缓冲区膨胀行为:

  • 你玩游戏:30ms ping
  • 有人启动 Netflix:ping 值跃升至 200-500 毫秒
  • 游戏无法玩
  • 缩放/Discord 变得无法使用

为什么会发生: 路由器制造商在路由器中放置了巨大的缓冲区,认为“越多越好”。当您的连接饱和(有人下载或上传)时,这些巨大的缓冲区就会填满数据包,而新数据包(例如您的游戏流量或 Zoom 音频)必须在数百个其他数据包后面等待。

就像一家杂货店,只有一条收银台,但可以容纳 200 人排队。在他们打开另一个收银台之前,队伍就变得很长。

如何测试缓冲区膨胀(2 分钟)

测试方法一:波形缓冲膨胀测试(最简单)

前往: https://www.waveform.com/tools/bufferbloat

它的作用:

  • 在加载连接的同时运行速度测试
  • 测量负载下 ping 增加的程度
  • 给您评分:A+ 到 F

读取结果:

  • A 或 A+: 无缓冲膨胀(罕见)
  • B: 轻度缓冲膨胀(在游戏中明显)
  • C 或 D: 中等缓冲膨胀(非常明显)
  • F: 严重的缓冲膨胀(负载下基本无法使用)

寻找什么:

  • 空载 ping:15ms
  • 加载 ping:200ms
  • 185 毫秒峰值是缓冲区膨胀

测试方法二:手动Ping测试

步骤一: 打开命令提示符/终端并开始连续 ping:

命令
ping 8.8.8.8 -t
## Watch the ping times

步骤 2: 当 ping 运行时,让某人开始大量下载或上传

步骤 3: 观看 ping 时间:

  • 之前: 20-40ms = 正常
  • 下载/上传期间: 仍然 20-60ms = 无缓冲区膨胀
  • 下载/上传期间: 跳至 200-500ms = 缓冲区膨胀

测试方法三:真实游戏测试

步骤一: 开始游戏,注意ping正常

步骤 2: 有人:

  • 开始 Netflix 4K 流
  • 将文件上传到 Google 云端硬盘
  • 在 Steam 上下载游戏

步骤 3: 检查游戏 ping 是否出现峰值

如果您的 ping 值增加了一倍或三倍,则说明您出现了缓冲区膨胀。

Real-World Symptoms of Bufferbloat

当其他人使用互联网时游戏就无法玩

症状: 单独游戏很流畅。当有人直播、下载或上传时,你就会落后。

为什么: 游戏数据包卡在缓冲队列中的数百个视频/下载数据包后面。

Zoom/Teams 通话在上传期间冻结

症状: 视频通话工作正常,直到您共享屏幕、上传文件或其他人上传。然后视频冻结并且音频中断。

为什么: 上行缓冲区已满上传数据包。您的视频通话数据包正在排队等待。

智能家居设备停止响应

症状: Alexa/Google 命令超时。智能灯没有反应。恒温器“离线”。

为什么: 小命令数据包被困在大量下载队列后面。

其他人浏览时流媒体卡顿

症状: Netflix/YouTube 缓冲区也是如此。

为什么: 缓冲区太满,来自视频服务器的确认数据包无法足够快地通过。

速度测试中的高 Ping(负载下)

症状: 速度测试显示速度良好,但负载下 ping 为 200-500 毫秒。

为什么: 速度测试本身是通过测量负载下的延迟来检测缓冲区膨胀。

如何修复缓冲区膨胀(4 个解决方案排名)

解决方案 1:在路由器上启用 SQM/QoS(最佳修复)

时间: 15分钟 费用: 免费 功效: 90-95%

SQM(智能队列管理)或 fq_codel 是智能管理缓冲区的算法,即使在满负载下也能保持较低的延迟。

如果您有支持 SQM 的路由器:

OpenWrt/DD-WRT 路由器:

  1. 登录路由器管理
  2. 找到“SQM QoS”或“智能队列管理”
  3. 启用 SQM
  4. 将下载速度设置为实际速度的 95%(如果您有 300 Mbps,则设置 285)
  5. 将上传速度设置为实际的 95%(如果达到 20 Mbps,则设置 19)
  6. 应用设置

华硕路由器:

  1. 自适应 QoS → QoS 选项卡
  2. 启用 QoS
  3. 将带宽限制设置为实际速度的 90-95%
  4. 在 QoS 类型下,选择“fq_codel”(如果可用)

TP-Link 路由器:

  1. 高级 → 服务质量
  2. 启用 QoS
  3. 将总带宽设置为实际速度的 90-95%

Netgear 路由器:

  1. 高级 → 设置 → QoS 设置
  2. 启用 QoS
  3. 手动设置,输入90-95%的速度

为什么是95%而不是100%? SQM 需要空间才能发挥作用。如果您告诉它您有 300 Mbps,但实际上有 300 Mbps,它无法管理队列,因为数据包到达的速度比它预期的要快。承诺不足让它可以控制队列。

解决方案 2:购买支持 SQM 的路由器(如果您的路由器没有)

费用: $100-200 功效: 95%

许多预算路由器没有适当的 SQM。升级永久解决缓冲区膨胀问题。

具有良好SQM的路由器:

  • IQ路由器 ($200) - 专门设计用于消除缓冲区膨胀
  • 泛快 EdgeRouter X ($60) - 运行 SQM,需要一些技术知识
  • GL.iNet 路由器 ($50-150) - 运行内置 SQM 的 OpenWrt
  • 任何运行 OpenWrt 或 DD-WRT 的路由器 - 可以添加SQM

具有良好 QoS 的消费者路由器:

  • 华硕 RT-AX86U(带 fq_codel 的自适应 QoS)
  • 带 QoS 的 Netgear Nighthawk
  • TP-Link Archer AX50/AX73(有 QoS)

解决方案 3:使用 ISP 的网关 QoS(如果可用)

费用: 免费 功效: 60-70%

一些 ISP 网关具有基本的 QoS。不如 SQM,但总比没有好。

康卡斯特 Xfinity 网关:

  • 登录10.0.0.1
  • 连接设备 → 设备
  • 选择设备 → 编辑
  • 将游戏/工作设备的优先级设置为“高”

AT&T 网关:

  • 登录192.168.1.254
  • 防火墙 → 应用程序、针孔和 DMZ
  • 对特定设备使用应用程序优先级

限制: 基本的设备优先级,而不是真正的队列管理。有帮助,但不能消除缓冲区膨胀。

解决方案 4:带有 OpenWrt 的 Flash 路由器(高级)

费用: 免费 难度: 高级 功效: 95%

如果您的路由器兼容,请安装内置了优秀SQM的OpenWrt固件。

检查兼容性: https://openwrt.org/toh/start

不推荐,除非:

  • 你技术上很舒服
  • 路由器兼容
  • 你已经研究了你的模型的具体流程

风险: 做错了会导致路由器变砖

解决方案 5:限制重度用户的带宽(临时解决方法)

费用: 免费 功效: 50%

如果无法启用 SQM,请手动限制重度用户的带宽:

Windows(带宽限制器):

  • 使用 NetLimiter 或 TMeter 软件
  • 将非优先设备上的下载/上传速度限制为 80%

游戏机:

  • 有些游戏可以在设置中限制下载速度
  • Steam:设置→下载→限制带宽

基于路由器的带宽限制:

  • 大多数路由器可以限制每台设备的速度
  • 设置非必需设备的限制

限制: 手动,非自适应,不是真正的解决方案

正确设置 QoS/SQM 速度限制

常见错误: 设置限制太高

第 1 步:找到您的真实速度 在 https://www.waveform.com/tools/bufferbloat 运行速度测试(它显示您的实际速度)

步骤2:计算90-95%

  • 下载:300 Mbps → 将 SQM 设置为 270-285 Mbps
  • 上传:20 Mbps → 将 SQM 设置为 18-19 Mbps

第三步:测试和调整

  • 再次运行缓冲区膨胀测试
  • 如果仍获得 C 或 D 等级,则将限制降低至 85-90%
  • 如果获得 A 但感觉速度很慢,则增加到 95-98%

对于非对称连接(常见): 上传缓冲区膨胀通常更糟。您可能需要:

  • 下载95%
  • 上传85%

为什么有些路由器不修复缓冲区膨胀

预算路由器(30-60 美元):

  • CPU 太弱,无法高速运行 SQM
  • 勉强有QoS,或者效果不好
  • 即使在千兆位连接下,SQM 也可能会将速度降低至 100 Mbps

ISP 网关:

  • CPU 经常较弱
  • 仅基本 QoS
  • 有时 QoS 会被破坏或禁用

较旧的路由器:

  • 没有fq_codel或蛋糕算法
  • 旧的 QoS 不适用于现代互联网速度

这就是升级到支持 SQM 的路由器很重要的原因

修复后:会发生什么

SQM 之前:

  • 游戏 ping:空闲 30 毫秒,负载下 400 毫秒
  • 缓冲膨胀等级:D 或 F

SQM 后:

  • 游戏 ping:空闲 30 毫秒,负载下 35-45 毫秒
  • 缓冲膨胀等级:A 或 B

Real improvement:

  • 可以在其他人播放 4K 流时玩游戏
  • Zoom 在上传过程中通话稳定
  • 多人同时上网
  • Ping 保持稳定

您仍然会看到负载下有所增加(可能 10-20 毫秒),但不会出现 200-500 毫秒峰值

缓冲膨胀与缓慢的互联网(不同的问题)

缓冲膨胀症状:

  • 速度测试显示速度良好
  • 当只有一个人使用时互联网工作正常
  • 发生多个活动时会出现巨大的滞后峰值
  • 负载下 Ping 跳至 200-500ms

网速慢症状:

  • 速度测试显示速度缓慢
  • 一切都很慢,即使只有一个用户
  • 即使空闲,Ping 也始终很高(80-150 毫秒)
  • 需要升级上网套餐

修复:

  • Bufferbloat:启用 SQM
  • 网速慢:升级套餐或致电ISP

常见的 SQM 设置错误

错误1:将限制设置为100%

错误: 您的速度是300/20,您将SQM设置为300/20 右: 设置为 270/18 (90%) 或 285/19 (95%)

为什么: SQM 需要空间来管理队列

错误2:使用“自动”速度检测

错误: 路由器有“自动检测带宽” - 你使用它 右: 手动输入速度测试中的速度

为什么: 自动检测经常出错,尤其是上传

错误三:只设置下载限制

错误: 设置下载限制,保留自动上传 右: 将下载和上传设置为 90-95%

为什么: 上传缓冲区膨胀通常比下载更糟糕

错误 4:使用基本 QoS 而不是 SQM

错误: 启用具有设备优先级的“QoS” 右: 启用“SQM”、“智能队列”或“fq_codel/cake”

为什么: 旧的 QoS 不能防止缓冲区膨胀,SQM 可以

当 SQM 不够时

您已启用 SQM,但仍有问题:

检查1:WiFi拥塞

  • 问题可能是 WiFi 干扰,而不是缓冲区膨胀
  • 尝试有线连接测试
  • 如果有线没问题,WiFi就是问题

检查2:ISP拥塞

  • 高峰时段(晚上 7-10 点)每个人的互联网速度都会变慢
  • SQM 无法解决 ISP 网络拥塞问题
  • 不同时间运行速度测试

检查3:路由器CPU过载

  • 路由器无法以您的速度处理 SQM
  • 症状:路由器崩溃,速度急剧下降
  • 需要更强大的路由器

检查4:限速错误

  • 尝试降低到85%甚至80%
  • 某些连接需要更多净空

📺 4 分钟讲解 — TechQuickie(Linus 技术提示)

底线

Bufferbloat 让您的互联网感觉很慢,即使它很快。这就是一个人的活动破坏了其他人的体验的原因。

快速诊断:

  1. 在waveform.com/tools/bufferbloat 运行缓冲区膨胀测试
  2. 如果您获得 C、D 或 F 等级,则您已获得

快速修复:

  1. 在路由器上启用 SQM/智能队列管理
  2. 将下载速度设置为实际速度的 95%
  3. 设置上传速度为实际速度的 90-95%
  4. 重新测试

如果路由器没有SQM: 购买具有适当 SQM 支持的路由器(100-200 美元)。这是家庭网络质量的最佳升级。

预期改善:

  • 负载下 Ping 从 300-500ms 下降至 35-50ms
  • 多人同时上网
  • 游戏在流媒体/下载过程中保持流畅
  • 视频通话在上传过程中不会冻结

大多数人不知道缓冲区膨胀的存在。他们只是认为他们的互联网“很奇怪”或者责怪他们的互联网服务提供商。现在您知道真正的问题以及如何解决它。