你跑了一次测速,结果好几百兆,游戏照样瞬移。那个结果从来就不是关于游戏的证据——它测的是另一个量,走的是另一条路径,连的是另一台服务器。下面讲清楚游戏真正会对什么起反应,以及你该用哪些数字替换刚才那个。
先对号入座
| 你看到的现象 | 最可能的原因 | 下一步做什么 |
|---|---|---|
| 跑分很高,所有地区都卡 | 本地问题:Wi-Fi、上行被占满,或运营商线路 | 换有线、暂停上传,再测一遍全部地区 |
| 跑分很高,只有部分地区差 | 通往这些地区的路由,不是你的宽带 | 换一个测下来干净的地区玩 |
| 一个人玩正常,有人直播就卡 | 上行被占满,游戏包在排队 | 空闲时测一次,负载时再测一次,对比 |
| 平均延迟不高,手感依然发飘 | 被平均值盖住的延迟抖动 | 看延迟区间,不要只看中位数 |
| 瞬移、按键被吞 | 丢包 | 先排除 Wi-Fi,再横向比较地区 |
| 网络指标全都干净,还是一顿一顿 | 不是网络问题 | 查帧时间、设备负载、游戏自身状态 |
测速回答的是另一个问题
兆比特每秒说的是你的线路每秒能搬多少数据。游戏要的是一个小包过去再回来需要多久,单位是毫秒。它们单位不同,因为它们本来就是两个问题。
| 测速报告的 | 游戏真正依赖的 |
|---|---|
| 到附近测速服务器的峰值吞吐 | 到游戏服务器地区的往返时间 |
| 几秒钟的批量传输 | 半小时一局里的稳定性 |
| 线路空闲时测出的 Ping | 线路同时在干别的事情时的延迟 |
| 管子够不够粗 | 每个小包是否都到了、是否准时到 |
下载是在灌满一根管子:管子越粗,大文件越快传完。而一局对战发的是每秒几十次的小包细流,每一个都很急。把管子加粗并不会让某个包更早到达,就像给路加车道并不会让路变短。所以一条线路可以测出 500M,同时依然把你的那一枪送迟——出问题的从来不是带宽这一环。
测速替你挑了最近的服务器,游戏不会
这是最多人被绊住的地方,而且它是结构性的,不是运气不好。
测速会替你挑一台服务器,挑选标准是近——通常是最近的那台,往往就在你自己运营商的网内。作为衡量线路带宽的设计这完全正确,但这也意味着整场测试没有离开过你所在的城市和运营商。
游戏服务器不是这么选的。它固定在某个地区,你的数据包必须穿过你与它之间的一切中转和互联。于是,真正决定你能不能玩的那一段路——跨地区中转、拥堵的互联点、运营商把你绕了远路——恰恰是测速从来没碰到的那一段。跑分干净只说明第一公里是健康的,而卡顿通常住在它后面。
想看清这件事,办法是同时测多个地区,把结果并排放在一起。单独一个数字没有参照物;八个数字摆在一起,你的路由形状立刻就显出来了。
平均值盖住的,恰恰是让你输掉一波的那两件事
测速报告的是几秒批量传输的平均值。平均值用来衡量吞吐是对的工具,用来衡量游戏就是错的,因为毁掉一次交火的从来不是平均值,而是其中的某一个瞬间。
- 一个丢掉的包。 你的线路可以稳稳地平均在 30ms,同时丢掉承载你那一枪的那个包。在游戏里,它表现为瞬移、按键被吞,或者命中判定慢了半拍。
- 一次尖峰。 一直 30ms、偶尔跳到 150ms 撑几分之一秒,比全程 60ms 难受得多。游戏是围绕稳定的时序造出来的,而平均值恰好把不稳定抹平到看不见。
这也是单次测试之间互相打架的原因,以及这里的测量为什么是奔着抓住那些瞬间去设计的,而不是把它们抹平。每个地区先发 3 个预热包并丢弃,然后按固定 50ms 的节奏发一轮 20 个——之所以固定节奏,是因为等到上一个回复再发下一个根本填不满队列,会系统性地少报丢包。只要丢掉哪怕一个包,或者这一轮往返时间跳动过大,该地区就会自动补测 2 轮,并用全部 60 个样本评分。20 个包只能以 5% 为台阶分辨丢包,60 个包能把台阶降到 1.67%,这是"下结论"和"猜"之间的差别。
线路够快,占满了照样排队
带宽高在这里甚至可能帮倒忙。当上传、云备份或者家里另一个人的直播占满上行时,你的游戏包就排在这些流量后面等——而设备里的缓冲区越大,等得越久。延迟往上爬,有时爬得很多,而事后在空闲线路上再测一次速,结果看起来完美无缺。一家人报告说卡、一小时后谁都复现不出来,这是常见原因。
两分钟就能验证:先在线路空闲时测一个地区,然后开一个大文件上传,再测同一个地区。如果延迟和丢包在负载下明显跳升,该修的是路由器的队列管理、或者把大流量挪到别的时间,而不是换更大的套餐。
那该看什么
四件事,按这个顺序:
- 比较地区,不要只测一个。 一次跑完全部地区。全都差,指向你自己的网络;只有部分差,指向路由,而换个地区今天就能解决。
- 看区间,不要只看一个数。 一个稳定在 28 到 34ms 的地区,和一个在 25 到 140ms 之间来回摆的地区,是两回事,哪怕它们平均值一样。
- 把丢包放在旁边一起看。 延迟低但有丢包,照样不好玩。任何丢包都值得再看一眼,这也是为什么这里只要丢一个包就会触发补测。
- 在你真正开黑的时段测。 高峰期拥塞本来就是这个问题的全部,周日早上测出来的结果显不出它。
真正干活的是三个数字,它们被刻意分开显示,而不是揉成一个总分。对于一般的实时对战,中位数低于 25ms 是优秀,低于 50ms 是舒适,超过约 90ms 体验开始下滑——竞技射击的判定比节奏宽松的品类更严格,而这几条线是我们的工程口径,不是任何厂商发布的官方分档。P10–P90 区间显示样本分散到什么程度,它最能解释"Ping 看着挺好、手感却发飘"是怎么回事。丢包应该是 0%,达到或超过 5% 会让评级明显下滑。
还有第五条值得留在手里:如果所有网络指标都干净,就别再在网络上花时间了。帧时间尖峰、着色器编译、显卡过热降频或者游戏服务本身吃力,产生的卡顿和延迟带来的一模一样。一份干净的多地区结果在这里很有用——它告诉你不该继续往哪里找。
如果卡的不只是你一个人,而是整个车队,问题的形状就变了:你要找的是对最慢的那位队友依然可接受的地区,而不是对最快的那位最优的地区。这套逻辑在怎样选出对全队更公平的服务器地区里。
这个检测测的是什么
它测的是从你的浏览器到我们部署在 8 个地区的检测节点的往返时间,走 UDP,在浏览器里跑,什么都不用装。用这些数字来横向比较方向:你的运营商把哪些地区的路由走得好、今晚哪些地区值得避开、以及问题是到哪儿都跟着你还是只指向一个方向。游戏客户端里显示的数字才是某一局的最终依据,因为客户端走的是它自己那条通往厂商服务器的路——而这里给你的,是告诉你该走哪条路的那个比较。测速工具的延迟结果准不准?详细讲了测量本身。
别再拿测速去问游戏的事了。把所有地区跑一遍,一分钟之内答案就摆在你面前。