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

游戏卡顿白皮书 › L2 客户端操作系统与设备

Wi-Fi ↔ 4G/5G 切换 Network switch changes IP

原因 ID co-netswitch · 主责 研发团队·服务器开发 · 配合 研发团队·客户端开发, 运维团队·网络运维

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

走出家门时 Wi-Fi 断开、切换到 4G 或 5G,自己的 IP 地址会改变,原有连接随之失效。

起因 Wi-Fi 信号变弱,切换到移动网络 → 结果 自己的 IP 地址改变,用旧地址建立的连接无法再收发数据 → 画面表现 画面短暂卡住后掉线或重连

症状
卡住, 掉线
因素
丢包
谁会遇到
只有我
何时出现
移动中/切换地图时
负责方
主责 研发团队·服务器开发 · 配合 研发团队·客户端开发, 运维团队·网络运维
研发团队要做的事
服务器:用会话令牌在地址变化后仍识别为同一玩家并接续,旧地址的连接立即清理,评估地址变化后仍能保持连接的协议(如 QUIC 的连接迁移)。客户端:检测到网络切换时,不等心跳超时,直接用会话令牌重连。
运维团队要做的事
使用 QUIC 连接迁移时,把负载均衡器设置为按连接 ID 选择服务器,不按地址和端口选择(按地址和端口选择时,地址变化后的数据包会被发到别的服务器)。
监控图上
连接成批断开 · 掉线、重连次数,重连时变化的 IP
查看位置
在服务器连接日志中查找同一会话令牌用不同 IP 重连的记录,并与客户端默认网络变更回调(registerDefaultNetworkCallback)的时刻对照
确认依据
掉线后重连的 IP 从 Wi-Fi(家庭宽带)网段变为移动运营商网段,或者反过来,并且在此之前刚收到网络切换回调
排除依据
IP 没变也掉线,看“基站切换(移动中)”或“手机信号弱/信号盲区”
确认手段
需要游戏服务器/客户端的日志和指标

出处

  1. Read network state Android (Google)
    默认网络变化后,新连接走新网络,旧网络上的连接最终会被强制断开;用 registerDefaultNetworkCallback 检测切换
  2. RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport IETF
    靠连接 ID,IP 地址和端口变化后也能保持连接(第 9 节);只按地址和端口分流的负载均衡器,可能把地址变化后的数据包发到别的服务器(5.2.3 节)
  3. RFC 9293: Transmission Control Protocol (TCP) IETF
    TCP 连接由两端的 socket(地址、端口)对来标识

相关原因

同一层:L2 客户端操作系统与设备

其他层中同样导致“卡住”的原因

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