한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

游戏卡顿白皮书 › L4 公网链路

传播延迟(物理距离) Propagation delay

原因 ID isp-distance · 主责 运维团队·系统运维 · 配合 运维团队·网络运维, 研发团队·服务器开发

在含图示和实验的完整版中打开此卡片 →

光在光纤里每秒也只能走约 20 万 km。服务器离得远,条件再好也会慢。

起因 服务器离得远(海外服务器、其他大洲) → 结果 往返时间随距离增加(每 1,000 km 至少 10 ms) → 画面表现 所有动作都有固定的操作延迟,判定上吃亏

症状
操作延迟
因素
延迟
谁会遇到
特定地区/运营商
何时出现
一直
负责方
主责 运维团队·系统运维 · 配合 运维团队·网络运维, 研发团队·服务器开发
研发团队要做的事
物理定律无法靠代码改变,只能缓解:提供区域选择,让玩家选近的区服;用延迟补偿(回溯)减少判定上的劣势。
运维团队要做的事
服务器/OS:在玩家多的地区就地部署服务器。网络:在靠近玩家的地方设接入节点(边缘),选择绕行少的线路和路由。
数值参考
首尔–东京约 30 ms,首尔–新加坡约 75 ms,首尔–美国西海岸约 140 ms,首尔–欧洲约 230~270 ms(往返,按实际路径)。去欧洲的直线方向上几乎没有大容量光缆,要绕道东南亚、苏伊士或美国,所以比按距离推算的长得多。
监控图上
一直偏高 · RTT(按国家/地区)
查看位置
给接入 IP 标上国家,看各国的 RTT 分布;再从当地云区域的 VM 或 RIPE Atlas 探针(按国家、ASN 挑选)向服务器跑 ping、traceroute
确认依据
远方国家的 RTT 不分时段一直偏高,数值接近按距离算出的最小延迟(每 1,000 km 往返 10 ms)和公开的延迟统计
排除依据
比距离能解释的值高得多,看“路由绕行”;只在晚上升高,看“高峰时段对等互联链路拥塞”
确认手段
运维工具即可确认(无需游戏代码)
真实案例
Riot Games 2015: 绕远路的 League of Legends 流量与 Riot Direct

出处

  1. ITU-T G.114: One-way transmission time ITU
    光缆传播时延规划值 5 µs/km(约每秒 20 万 km,1,000 km 往返 10 ms)
  2. Azure network round-trip latency statistics Microsoft Azure
    以首尔(Korea Central)为起点的实测往返中位数:东京 30 ms,新加坡 68 ms,美国西海岸 124~136 ms,欧洲 234~244 ms
  3. AAE-1 & SMW5 cable cuts impact millions of users across multiple countries Cloudflare
    欧洲与亚洲之间的流量大多走经过埃及(苏伊士)的海底光缆
  4. Probe Selection (RIPE Atlas REST API) RIPE NCC
    RIPE Atlas 测量可按国家、地区、ASN、地址段挑选探针,执行 ping、traceroute

相关原因

同一层:L4 公网链路

其他层中同样导致“操作延迟”的原因

查看含图示和实验的原卡片