Переключение Wi-Fi ↔ LTE/5G Network switch changes IP
ID причины co-netswitch · Основной ответственный Команда разработки · Разработка сервера · Совместно Команда разработки · Разработка клиента, Команда инфраструктуры · Сетевая инфраструктура
Когда игрок выходит из дома, Wi-Fi пропадает и устройство переключается на LTE или 5G. IP-адрес меняется, и старое соединение перестаёт работать.
Почему Сигнал Wi-Fi слабеет, и устройство переключается на мобильную сеть → Следствие IP-адрес меняется, и через соединение, открытое со старого адреса, обмениваться данными больше нельзя → На экране Короткий фриз, затем дисконнект или переподключение
Основной ответственный Команда разработки · Разработка сервера · Совместно Команда разработки · Разработка клиента, Команда инфраструктуры · Сетевая инфраструктура
Команда разработки: задачи
Сервер: по токену сессии узнавать того же игрока и после смены адреса, а соединение со старого адреса сразу закрывать, рассмотреть протоколы, которые переживают смену адреса (например, миграцию соединения в QUIC). Клиент: заметив смену сети, сразу переподключаться по токену сессии, не дожидаясь таймаута хартбита.
Команда инфраструктуры: задачи
Если используется миграция соединения QUIC, настроить балансировщик нагрузки так, чтобы он выбирал сервер по ID соединения вместо адреса и порта (при выборе по адресу и порту пакеты с нового адреса уходят на другой сервер).
На графике
Массовый обрыв соединений · число обрывов и переподключений, смена IP при переподключении
Где смотреть
Найти в логе подключений сервера переподключения с тем же токеном сессии, но с другого IP, и сопоставить их со временем колбэка смены сети по умолчанию на клиенте (registerDefaultNetworkCallback)
Подтверждает
IP при переподключении сразу после обрыва меняется с диапазона Wi-Fi (домашнего подключения) на диапазон мобильного оператора или наоборот, а прямо перед этим приходит колбэк смены сети
Опровергает
Если IP не изменился, а обрыв был, это «Хендовер между базовыми станциями (в движении)» или «Слабый сигнал мобильной сети и мёртвые зоны»
Чем проверить
Нужны логи и метрики игрового сервера или клиента
Источники
Read network stateAndroid (Google) При смене сети по умолчанию новые соединения идут через новую сеть, а соединения через прежнюю в итоге принудительно рвутся. Смену отслеживают через registerDefaultNetworkCallback
RFC 9000: QUIC: A UDP-Based Multiplexed and Secure TransportIETF Благодаря ID соединения оно сохраняется при смене IP-адреса и порта (глава 9). Балансировщик, распределяющий только по адресу и порту, может отправить пакеты с нового адреса на другой сервер (раздел 5.2.3)