为什么当有人打开 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 实际上是什么(简单版)
您的路由器有缓冲区(等待区域),用于保存数据包,同时决定将数据发送到何处。当这些缓冲区太大时,数据包排队等待的时间太长,从而产生巨大的延迟。
正常行为:
- 你玩游戏: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 路由器:
- 登录路由器管理
- 找到“SQM QoS”或“智能队列管理”
- 启用 SQM
- 将下载速度设置为实际速度的 95%(如果您有 300 Mbps,则设置 285)
- 将上传速度设置为实际的 95%(如果达到 20 Mbps,则设置 19)
- 应用设置
华硕路由器:
- 自适应 QoS → QoS 选项卡
- 启用 QoS
- 将带宽限制设置为实际速度的 90-95%
- 在 QoS 类型下,选择“fq_codel”(如果可用)
TP-Link 路由器:
- 高级 → 服务质量
- 启用 QoS
- 将总带宽设置为实际速度的 90-95%
Netgear 路由器:
- 高级 → 设置 → QoS 设置
- 启用 QoS
- 手动设置,输入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 让您的互联网感觉很慢,即使它很快。这就是一个人的活动破坏了其他人的体验的原因。
快速诊断:
- 在waveform.com/tools/bufferbloat 运行缓冲区膨胀测试
- 如果您获得 C、D 或 F 等级,则您已获得
快速修复:
- 在路由器上启用 SQM/智能队列管理
- 将下载速度设置为实际速度的 95%
- 设置上传速度为实际速度的 90-95%
- 重新测试
如果路由器没有SQM: 购买具有适当 SQM 支持的路由器(100-200 美元)。这是家庭网络质量的最佳升级。
预期改善:
- 负载下 Ping 从 300-500ms 下降至 35-50ms
- 多人同时上网
- 游戏在流媒体/下载过程中保持流畅
- 视频通话在上传过程中不会冻结
大多数人不知道缓冲区膨胀的存在。他们只是认为他们的互联网“很奇怪”或者责怪他们的互联网服务提供商。现在您知道真正的问题以及如何解决它。