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

遊戲 Lag 白皮書 › L4 網際網路線路

繞遠路的路由 Suboptimal routing

原因 ID isp-routing · 主要負責 基礎設施團隊(網路基礎設施) · 協同 外部(外部)

在含圖解與實驗的完整版中開啟卡片 →

受電信業者之間互連合約的影響,連到附近的伺服器也可能繞到遠處再回來。

為什麼 自己的電信業者與伺服器端的電信業者沒有直接互連 → 於是 經過其他國家或其他城市,距離與經過的設備都增加 → 畫面上 只有特定電信業者的使用者 ping 特別高

症狀
輸入延遲
因素
延遲
誰會遇到
特定地區/電信業者
何時
一直都有
負責單位
主要負責 基礎設施團隊(網路基礎設施) · 協同 外部(外部)
基礎設施團隊要做的事
與多家電信業者互連(multihoming),監控各電信業者的 ping 以找出繞路的業者,並與電信業者協調路由。
外部要做的事
請該電信業者調整路由。
數值參考
即使在同一個國家內,ping 也可能因路徑不同而相差兩三倍。
圖表上
一開始就一直偏高 · RTT(依電信業者/ASN)
查看位置
比較各電信業者(ASN)的 RTT,並用較慢業者的 RIPE Atlas probe 或向玩家取得的 traceroute、mtr,查看路徑經過哪些國家與城市。IPv4 與 IPv6 分開量測(mtr -4、-6)
符合的跡象
同一地區只有特定電信業者一直偏高,路徑中有經過其他國家或遠方城市的區段。或只有其中一種位址類型(IPv4 或 IPv6)偏高
不符合的跡象
所有電信業者都差不多高時是「傳播延遲(物理距離)」,只在晚上偏高時是「尖峰時段 peering 區段壅塞」
確認方式
用基礎設施工具確認(不需要遊戲程式碼)
深入了解
IPv4 與 IPv6 的路徑是分開決定的,同一台伺服器也可能只有其中一邊繞遠路而變慢(2016 年 APNIC 量測:同一家電信業者內,出現了 IPv6 比 IPv4 慢 15、25、75ms 的不同使用者群)。採用 Happy Eyeballs(RFC 8305,IPv6 與 IPv4 哪邊先連上就用哪邊)的應用程式會先嘗試 IPv6,只要 IPv6 在建議值 250ms 內連上,就不會再嘗試 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 之間的 peering 政策與跨網域路由讓路徑大幅拉長
  2. The Internet at the Speed of Light (HotNets 2014) ACM
    實際經過路由器的路徑,中位數約為光纖直線距離的 1.5 倍,也有相近兩點之間的封包繞到地球另一端的案例(hairpinning)
  3. Probe Selection (RIPE Atlas REST API) RIPE NCC
    依國家、地區、ASN、位址區段挑選 RIPE Atlas 量測的 probe,執行 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,到下一次連線嘗試前建議等待 250ms
  6. IPv6 Performance – Revisited APNIC
    比較同一批雙堆疊(dual stack)使用者的 IPv6 與 IPv4 往返時間:接取網路有時會以完全不同的方式處理 IPv6 封包,同一家電信業者內出現 IPv6 慢 15、25、75ms 的群組

相關原因

同一層:L4 網際網路線路

同一症狀(輸入延遲)在其他層的原因

查看含圖解與實驗的完整版卡片