Проблемы с соединением

Как сделать отчет о проблемах с соединением

В игре существует встроенная система тестирования интернет-канала до наших серверов. Запускается через настройки игры. Запустить проверку можно из окна входа в игру, из Гаража и прямо из боя.

Важно запускать проверку в нужное время. В частности, если вы обнаружили проблемы со связью во время боя, то и запускать проверку связи надо прямо из боя.

Результатом работы системы проверки связи является отчет, демонстрируемый на экране и дублирущийся в файл net.log.

В отчет об ошибке связи следует добавить как скриншоты отчета, так и логи игры. Добавлять логи очень важно, т.к. там может быть важная информация и помимо отчета системы проверки связи.

Почему бывает плохая связь?

В большинстве случаев за возникающие проблемы соединения отвечает один из узлов на маршруте, начиная от ПК игрока и заканчивая игровым сервером.

Что такое маршрут?

Под маршрутом понимается последовательность маршрутизаторов (роутеров, от англ. router), через которые проходят пакеты от игры до сервера и от сервера до игры. Типовой маршрут выглядит так:

1. ПК
2. ДОМАШНИЙ РОУТЕР 
3. РОУТЕР ПРОВАЙДЕРА ИГРОКА
... 
    РОУТЕРЫ ИНТЕРНЕТА 
... 
N-2. МАРШРУТИЗАТОР ПРОВАЙДЕРА ДАТАЦЕНТРА
N-1. МАРШРУТИЗАТОР ДАТАЦЕНТРА
N. СЕРВЕР

О маршрутах

В интернете очень много маршрутизаторов. Из этого следует что, как правило, маршрутов, по которым может пройи пакет, больше одного.
Более того, часть пакетов может идти по одному маршруту, а часть по другим. Заранее предсказать это невозможно.

Про пинг

На прохождение по маршруту пакету требуется некоторое время. Это время называется пингом и измеряется обычно в миллисекундах.
Очевидно, что чем меньше пинг, тем лучше. Так же нетрудно понять, что чем больше узлов на маршруте, тем больше пинг. Кроме того, величина пинга зависит от загруженности маршрутизаторов на маршруте и от некоторых других обстоятельств.

Про потерю пакетов

Если хотя бы один узел на одном из возможных маршрутов по каким-то причинам, полностью или частично, не пропускает пакеты, то в игре начинается потеря пакетов.
Причины для потери пакетов могут быть разными. Вот некоторые из них:

  • маршрутизатор не справляется с нагрузкой и отбрасывает пакеты, которые не успевает обработать
  • размер пакета больше того, который способен обработать маршрутизатор (см. подробнее про MTU)

Про трассировку

Можно проверить значение пинга и потерь пакетов до каждого узла на маршруте. Получение этой информации называется трассировкой.
Обычно результат трассировки выглядит подобным образом:

  1    <1 мс    <1 мс    <1 мс  192.168.40.252
  2    <1 мс     2 ms    <1 мс  vl1502.ar13-23.ekb.ru.mirasystem.net [92.242.1.153]
  3    19 ms     4 ms     3 ms  be3-4030.sr32-27.ekb.ru.mirasystem.net [92.242.29.226]
  4     1 ms     1 ms     1 ms  asb-cr01-ae9.200.ekt.mts-internet.net [212.188.22.33]
  5     *        1 ms     2 ms  zoo-cr03-be1.66.ekt.mts-internet.net [212.188.29.249]
  6     *       17 ms     *     vish-cr01-be7.66.kaz.mts-internet.net [212.188.29.85]
  7     *        *        *     Превышен интервал ожидания для запроса.
  8     *        *       65 ms  a197-cr01-ae10.77.msk.mts-internet.net [195.34.50.73]
  9    64 ms    65 ms    64 ms  anc-cr03-ae3.177.ff.mts-internet.net [195.34.59.57]
 10    64 ms    64 ms    64 ms  212.188.61.74
 11    72 ms    73 ms    72 ms  et-24-1.agg01.ams-01.leaseweb.net [31.31.34.52]
 12    73 ms    73 ms    72 ms  ae-101.br01.ams-01.nl.leaseweb.net [31.31.38.115]
 13    71 ms    71 ms    71 ms  be-110.cr02.ams-01.nl.leaseweb.net [81.17.32.67]
 14    71 ms    71 ms    71 ms  po-1004.ce01.ams-01.nl.leaseweb.net [81.17.33.127]
 15    67 ms    67 ms    67 ms  37.48.71.129

Про протоколы связи и их связь с потрей пакетов

Обмен данными в интернете происходит по нескольким протоколам. Протокол - это правила, по которым два устройства производят передачу данных. Рассмотрим несколько протоколов:

  • TCP. Наиболее известный и популярный протокол интернет. Отличительная особенность этого протокола в том, что в него встроен маханизм контроля целостности передачи данных, что делает его относительно медленным.
  • UDP. В отличие от TCP, этот протокол не заботится о том, чтобы все пакеты дошли по назначению, за счет чего обеспечивает высокую скорость передачи данных. Обычно используется в потоковой передаче аудио- и видеоконтента, а так же в онлайн-играх.
  • ICMP. Разработан специально для передачи служебных сообщений. В частности, известная команда ping использует именно ICMP протокол.

Нетрудно увидеть, что, когда мы пингуем какой-то адрес в интернете, мы используем протокол ICMP. При этом для передачи данных игра использует протокол UDP. И, вообще говоря, вполне может быть такая ситуация, что “пинг хороший, а потери пакетов есть”.
Конечно, теоретически, можно пинговать адреса, используя протокол UDP. Но на практике многие маршрутизаторы в интернете не поддерживают такую возможность и получить внятный результат трассировки маршрута на основе протокола UDP не получается.

Поэтому в Crossout трассировка до сервера выполняется по протоколу ICMP, но, вместе с тем, величина потерь пакетов до игровых серверов вычисляется на основе прохождения пакетов UDP.
WinMTR_x64.zip (1.0 МБ)