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

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

路由绕行 Suboptimal routing

原因 ID isp-routing · 主责 运维团队·网络运维 · 配合 外部·外部

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

受运营商之间互联协议的限制,离得近的服务器也可能要绕远路才能到。

起因 自己的运营商和服务器所在的运营商之间没有直连 → 结果 绕经其他国家或城市,距离和经过的设备都增加 → 画面表现 只有特定运营商的用户 ping 特别高

症状
操作延迟
因素
延迟
谁会遇到
特定地区/运营商
何时出现
一直
负责方
主责 运维团队·网络运维 · 配合 外部·外部
运维团队要做的事
与多家运营商互联(多线接入),按运营商监控 ping,找出绕路的运营商,与运营商协商调整路由。
外部要做的事
请相关运营商调整路由。
数值参考
即使在同一个国家内,不同路径的 ping 也可能相差两三倍。
监控图上
一直偏高 · RTT(按运营商/ASN)
查看位置
按运营商(ASN)比较 RTT,用慢的运营商的 RIPE Atlas 探针或玩家提供的 traceroute、mtr 结果,看路径经过哪些国家和城市。IPv4 和 IPv6 分开测(mtr -4, -6)
确认依据
同一地区只有特定运营商一直偏高,路径中有绕经其他国家或远方城市的跳。或者只有一个地址族(IPv4 或 IPv6)偏高
排除依据
所有运营商都差不多高,看“传播延迟(物理距离)”;只在晚上高,看“高峰时段对等互联链路拥塞”
确认手段
运维工具即可确认(无需游戏代码)
深入了解
IPv4 和 IPv6 的路由各自独立,同一台服务器也可能只有一边绕远路而变慢(2016 年 APNIC 测量:同一运营商内单独出现了几组 IPv6 比 IPv4 慢 15、25、75 ms 的用户)。采用 Happy Eyeballs(RFC 8305,IPv6 和 IPv4 谁先连上就用谁)的应用会先尝试 IPv6,IPv6 在建议值 250 ms 内连上就不再尝试 IPv4。所以即使 IPv6 稍慢,也容易走这条路径连上。如果只有特定运营商 ping 高,就把 IPv4 和 IPv6 分开测。
真实案例
Riot Games 2015: 绕远路的 League of Legends 流量与 Riot Direct

出处

  1. Quantifying the Causes of Path Inflation (SIGCOMM 2003) ACM
    对 65 家 ISP 的分析:ISP 之间的对等互联策略和域间路由会让路径大幅变长
  2. The Internet at the Speed of Light (HotNets 2014) ACM
    实际路由器路径的长度中位数约为光纤直线距离的 1.5 倍;也有相邻两地之间的数据包绕到地球另一侧的情况(发夹路由,hairpinning)
  3. Probe Selection (RIPE Atlas REST API) RIPE NCC
    RIPE Atlas 测量可按国家、地区、ASN、地址段挑选探针,执行 ping、traceroute
  4. mtr(8) manual page source mtr
    用 -4、-6 只走 IPv4 或 IPv6 测量路径
  5. RFC 8305: Happy Eyeballs Version 2: Better Connectivity Using Concurrency IETF
    某个地址或地址族(IPv4、IPv6)可能因所在网络而被封、出故障或变慢;先尝试 IPv6,到下一次连接尝试之前建议等待 250 ms
  6. IPv6 Performance – Revisited APNIC
    对比同一批双栈用户的 IPv6 与 IPv4 往返时间:有的接入网处理 IPv6 数据包的方式完全不同,同一运营商内出现了几组 IPv6 慢 15、25、75 ms 的用户

相关原因

同一层:L4 公网链路

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

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