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

遊戲 Lag 白皮書 › L2 用戶端 OS 與裝置

Wi-Fi ↔ LTE/5G 切換 Network switch changes IP

原因 ID co-netswitch · 主要負責 遊戲開發團隊(伺服器開發) · 協同 遊戲開發團隊(用戶端開發), 基礎設施團隊(網路基礎設施)

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

走出家門時 Wi-Fi 斷掉、改用 LTE/5G,自己的 IP 位址會改變,原本的連線就此失效。

為什麼 Wi-Fi 訊號變弱,切換到行動網路 → 於是 自己的 IP 位址改變,用舊位址建立的連線無法再收送資料 → 畫面上 短暫停住後斷線,或重新連線

症狀
定格, 斷線
因素
遺失
誰會遇到
只有我
何時
移動中/切換地圖時
負責單位
主要負責 遊戲開發團隊(伺服器開發) · 協同 遊戲開發團隊(用戶端開發), 基礎設施團隊(網路基礎設施)
遊戲開發團隊要做的事
伺服器:位址改變時也用 session token 接續成同一位玩家,並立刻清理舊位址的連線;評估位址改變也能延續連線的協定(QUIC 的連線遷移等)。用戶端:偵測到網路切換時,不要等心跳逾時,直接用 session token 重新連線。
基礎設施團隊要做的事
使用 QUIC 連線遷移時,把負載平衡器設定成依連線 ID 選擇伺服器,不依位址與 port(依位址與 port 選擇時,位址改變後的封包會被送到別台伺服器)。
圖表上
連線同時大量中斷 · 斷線與重新連線次數、重新連線時改變的 IP
查看位置
在伺服器連線 log 中找出同一個 session token 從不同 IP 重新連線的紀錄,並對照用戶端預設網路變更回呼(registerDefaultNetworkCallback)的時間
符合的跡象
斷線後重新連線的 IP 從 Wi-Fi(家用線路)網段變成行動電信業者網段,或反過來,且在那之前剛收到網路切換回呼
不符合的跡象
IP 沒變卻斷線時,是「基地台換手(移動中)」或「行動網路訊號弱、收訊死角」
確認方式
需要遊戲伺服器/用戶端的 log 與指標

出處

  1. Read network state Android (Google)
    預設網路改變後,新連線會走新網路,舊網路上的連線最後會被強制中斷;用 registerDefaultNetworkCallback 偵測切換
  2. RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport IETF
    以連線 ID 讓 IP 位址與 port 改變時連線仍能維持(第 9 章);只依位址與 port 分流的負載平衡器,可能把位址改變後的封包送到別台伺服器(5.2.3 節)
  3. RFC 9293: Transmission Control Protocol (TCP) IETF
    TCP 連線由兩端的 socket(位址、port)組合來識別

相關原因

同一層:L2 用戶端 OS 與裝置

同一症狀(定格)在其他層的原因

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