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

Анатомия игровых лагов › L4 Интернет-маршрут

Ограничение UDP и DPI на уровне страны или провайдера UDP blocking, throttling and inspection by networks

ID причины isp-udp-block · Основной ответственный Внешние стороны · Внешние стороны · Совместно Команда разработки · Разработка клиента, Команда разработки · Разработка сервера, Команда инфраструктуры · Сетевая инфраструктура

Открыть карточку в основной версии с иллюстрациями и экспериментами →

Некоторые сети блокируют отдельные UDP-адреса и порты или ограничивают скорость UDP, а оборудование инспекции пакетов (DPI) отсеивает протоколы, которые не может распознать. Игры, работающие по UDP, в таких сетях не подключаются или часто теряют соединение.

Почему Подключение из сети провайдера, который ограничивает скорость UDP, или из сети с оборудованием проверки трафика (цензуры) на уровне страны или провайдера → Следствие Блокируются отдельные UDP-адреса и порты, в часы нагрузки ограничивается скорость UDP, отсеиваются порты и протоколы не из белого списка, или пропускаются только первые несколько пакетов, а дальше включается блокировка → На экране Только у игроков из определённой страны или у определённого провайдера ошибка входа или бесконечная загрузка, дисконнект вскоре после входа, телепортация из-за потерь в часы нагрузки

Симптомы
Ошибка входа / бесконечная загрузка, Дисконнект, Телепортация
Факторы
Потери
У кого
Один регион или провайдер
Когда
Сразу после входа или техработ, Всегда, Вечерний пик
Ответственные
Основной ответственный Внешние стороны · Внешние стороны · Совместно Команда разработки · Разработка клиента, Команда разработки · Разработка сервера, Команда инфраструктуры · Сетевая инфраструктура
Команда разработки: задачи
Клиент: если по UDP не удаётся подключиться за несколько секунд, автоматически переходить на запасной путь через TCP/TLS 443, распознавать и случаи, когда соединение сначала устанавливается, но вскоре рвётся, и повторять попытку по запасному пути, писать в лог, по какому пути прошло подключение. Сервер: принимать тот же игровой протокол и по TCP 443 (TLS), подстроить таймауты, потому что на запасном пути задержка может вырасти.
Команда инфраструктуры: задачи
Перед запуском в новой стране измерить в сетях местных провайдеров, доходит ли UDP и какие потери в часы пик, разместить ближе к этой стране relay-серверы или шлюзы, принимающие запасной путь через TCP 443, отслеживать долю успешных подключений по UDP и TCP по странам и ASN, если у провайдера подтверждено ограничение скорости UDP, собрать данные и эскалировать.
Внешние стороны: задачи
Запросить у провайдера или ведомства критерии ограничения UDP и возможность их смягчить, посоветовать игрокам подключиться из другой сети и сравнить.
Цифры для ориентира
По замерам, на которые ссылается документ IETF, 3–5% сетей полностью блокируют UDP. По данным Google о QUIC (работает поверх UDP) за 2016 год, 4,4% клиентов не могли им пользоваться: UDP или QUIC был заблокирован либо MTU пути был слишком мал. В основном это были клиенты за корпоративными файрволами, а блокировки на уровне целого провайдера не встречались. Ещё 0,3% клиентов находились в сетях, которые, судя по резкому росту потерь в часы пик, ограничивали скорость UDP. После обращений к провайдерам эту долю удалось снизить с 1% в 2015 году.
На графике
Высоко только у некоторых · доля успешных подключений по UDP (по странам и ASN)
Где смотреть
Отдельно смотреть долю успешных подключений по UDP и по запасному пути TCP 443 в разрезе стран и ASN. С облачной VM в сети этого провайдера или с ПК игрока проверить подключение отдельно на игровой UDP-порт и на TCP 443 и сравнить через mtr -u -P (игровой порт) и mtr -T -P 443, с какого участка пропадают ответы
Подтверждает
Только из определённой страны или ASN по UDP нет первого ответа или соединение рвётся через несколько секунд, а TCP 443 оттуда же работает нормально. При ограничении скорости потери UDP заметно растут только в часы пик, а TCP страдает меньше
Опровергает
Если вместе с UDP не работает и TCP, смотреть аварии на маршруте, блокировку IP и «Сбои и задержки DNS». Если во всех странах одинаково, проверить настройки наших серверов и файрвола, если потери и у UDP, и у TCP только в моменты большого объёма передачи, это «Отбрасывание избытка полисером»
Чем проверить
Инструменты инфраструктуры (игровой код не нужен)
Подробнее
Оборудование DPI выбирает UDP-потоки по адресам, портам и протоколу и блокирует их, а иногда работает по белому списку и блокирует всё, кроме разрешённых протоколов (по обзору IRTF). Если оборудование судит лишь по некоторым полям пакета, блокировка может сработать даже из-за небольшого изменения протокола. На раннем этапе QUIC один файрвол после изменения одного бита в заголовке пропускал первые несколько пакетов, а следующие блокировал, и логика клиента, переключающаяся на TCP, не срабатывала. При запуске в новой стране это может проявиться в жалобах вида «в Корее всё работает, а в этой стране у части провайдеров не подключается». Если блокировка только в сети одного места, например в кафе или офисе, см. причину «Ограничения публичного Wi-Fi и корпоративной сети».

Источники

  1. RFC 9308: Applicability of the QUIC Transport Protocol IETF
    По замерам 3–5% сетей полностью блокируют UDP, поэтому приложения на UDP должны либо смириться с отказом подключения, либо иметь запасной путь через TCP (TLS), порты, не связанные с зарегистрированными сервисами, файрвол может блокировать
  2. The QUIC Transport Protocol: Design and Internet-Scale Deployment (SIGCOMM 2017) ACM
    2016 год: 4,4% клиентов не могли использовать QUIC поверх UDP (блокировка UDP или QUIC либо малый MTU пути, в основном за корпоративными файрволами, блокировка целым провайдером не наблюдалась), 0,3% находились в сетях, похожих на ограничение скорости UDP (рост потерь в часы пик, после обращений к провайдерам доля снизилась с 1% в 2015 году), случай с файрволом, который после изменения 1 бита заголовка пропускал только первые несколько пакетов и блокировал остальные, из-за чего не срабатывала логика перехода на TCP
  3. RFC 9505: A Survey of Worldwide Censorship Techniques IRTF
    Оборудование инспекции в сети может выбирать потоки TCP и UDP по адресам, портам и протоколу и блокировать их (для QUIC наблюдалась блокировка UDP-эндпоинтов), блокировка всего, кроме разрешённых протоколов, ведёт к избыточной блокировке, применяется и ограничение скорости для определённого трафика
  4. mtr(8) manual page source mtr
    -u отправляет UDP, -T отправляет TCP SYN, -P задаёт порт назначения, так маршрут измеряется тем же протоколом и портом, что и у игры

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

Тот же слой: L4 Интернет-маршрут

Причины с тем же симптомом (Ошибка входа / бесконечная загрузка) на других слоях

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