Я знаю, что это необычный вопрос, но, похоже, люди здесь, скорее всего, могут помочь. Я пытаюсь отладить у своего интернет-провайдера, почему у меня возникают экстремальные задержки во время игры.
Вопрос: Какой хороший способ проанализировать время выполнения пакета и потерю, который дает мне более подробную информацию о том, где находится узкое место в соединении? Есть ли простой способ воспроизвести трафик в некоторой степени искусственно, не играя в игру?
Вот моя ситуация:
- Мой провайдер обеспечивает соединение через большую беспроводную сеть с несколькими точками доступа на расстоянии около 10 км, прежде чем подключиться к основному кабелю. Так было всегда, и в прошлом оно оказалось чрезвычайно надежным. Из-за изменений в оборудовании или других изменений настроек моего интернет-провайдера качество игрового процесса несколько месяцев назад упало. Мой провайдер очень полезен и пытается найти и исправить источник проблем.
- В целом, у меня очень хороший пинг, и когда я играю, информация в игре всегда показывает хороший пинг 20-30 мс.
- Особенностью Battlefield является то, что он показывает предупреждающие символы, когда частота кадров падает, время обработки соединения плохое или потеря пакетов. Ситуация, которая повторяется, состоит в том, что я могу играть около 10-60 секунд без какого-либо предупреждающего символа, а затем я испытываю серьезную потерю пакетов, где у меня возникают задержки, и BF показывает мне все виды предупреждений о соединении. После этого я могу снова играть несколько секунд, прежде чем снова увижу это поведение.
Я работаю исключительно над Linux, и мне немного комфортно с ping
, traceroute
, nmap
и другими сетевыми инструментами. Я знаю высокие порты, которые использует BF, я могу узнать используемые размеры пакетов и, конечно, я могу извлечь IP-адреса с игровых серверов. Какой хороший способ начать отслеживать эту проблему, чтобы я мог, я надеюсь, искусственно спровоцировать потерю пакетов, пока мой провайдер отлаживает то, что происходит в его сети?
Анализ
Я установил WireShark, как любезно предложено Moonpoint, и запечатлел несколько минут затянувшегося игрового процесса. В первом анализе я сосредоточился на пакетах, поступающих с игрового сервера. Я отфильтровал все UDP-пакеты, поступающие с сервера, на мой IP-адрес и скорректировал время, чтобы увидеть относительное время между этими пакетами. После сортировки было около 20 пакетов, которые занимали от 650 мс до 1300 мсек, и я подозреваю, что это те, где я прыгаю наполовину по карте. Между большинством других пакетов почти точно время выполнения, которое я вижу как "Ping" в игре, составляет около 30 мс.
После маркировки всех критических пакетов, я очистил фильтр и посмотрел весь трафик, чтобы увидеть, могу ли я найти какую-то модель того, что происходит со всеми пакетами вокруг критических. Я обнаружил, что есть две ситуации. Обратите внимание, что 94.250.208.153 является игровым сервером, а синяя подсветка является критическим пакетом игр UDP:
Во-первых, примерно за 10-15 пакетов до критического существует мистический пакет SSDP M-Search, приходящий с MAC-адреса:
Вторая ситуация заключается в том, что критическому пакету предшествует (или иногда окружается) ретрансляция TCP, в основном на сервер Google:
Могу ли я предпринять какие-либо дальнейшие шаги со своей стороны? Может кто-нибудь сказать мне, как я могу исследовать в мистическом пакете SSDP?