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

Анатомия игровых лагов › L2 ОС и устройство клиента

Переключение 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 не изменился, а обрыв был, это «Хендовер между базовыми станциями (в движении)» или «Слабый сигнал мобильной сети и мёртвые зоны»
Чем проверить
Нужны логи и метрики игрового сервера или клиента

Источники

  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 определяется парой сокетов (адрес и порт) на обоих концах

Смотрите также

Тот же слой: L2 ОС и устройство клиента

Причины с тем же симптомом (Фриз) на других слоях

Карточка в основной версии с иллюстрациями и экспериментами