menu hover
FAQ по хостингу »

Проблемы с траффиком

При возникновении проблем с доступом к серверу или сайту, перед тем, как обращаться в техподдержку или писать тикет, можно проверить качество канала с помощью таких утилит:

1. Утилита tracert

2. Утилита PathPing

3. Программа WinMtr

4. Определение проблем сети с помощью утилит

1. Утилита tracert

Это консольная утилита операционной системы Windows. Чтобы проверить задержки прохождения пакетов, наберите в командной строке tracert www.domain.com, где www.domain.com - Ваш домен или IP-адрес Вашего сервера.

tracert
2. Утилита PathPing

Это утилита для трассировки сетевого маршрута, поставляемая вместе с Windows NT, Windows 2000, Windows XP, Windows Vista и Windows 7. Сочетает в себе функциональность утилит ping и tracert и обладает дополнительными возможностями.

PathPing предоставляет информацию о латентности сети и потерях данных на промежуточных узлах между исходным пунктом и пунктом назначения. Команда pathping в течение некоторого периода времени отправляет многочисленные сообщения с эхо-запросом каждому маршрутизатору, находящемуся между исходным пунктом и пунктом назначения, а затем на основании пакетов, полученных от каждого из них, вычисляет результаты. Поскольку pathping показывает коэффициент потери пакетов для каждого маршрутизатора или связи, можно определить маршрутизаторы или подсети, имеющие проблемы с сетью. Команда pathping выполняет эквивалентное команде tracert действие, идентифицируя маршрутизаторы, находящиеся на пути.

Существенным отличием от программы tracert в Windows является то, что маршрут следования icmp-пакета записывается в тело этого icmp-пакета, что накладывает определенные ограничения. Во-первых, такой метод поддерживается не всеми маршрутизаторами, а во вторых, накладывается ограничение на длину маршрута.

Запущенная без параметров, команда PathPing выводит справку.

pathping www.domain.com

где, www.domain.com - Ваш домен или IP-адрес Вашего сервера.

pathping www.domain.com -n -q 200

ключи:
-n - не резолвить адреса в имена
-q - к-во запросов на хост.

3. Программа WinMtr

Данная утилита позволяет повторять трасировку в течение некоторого времени и отслеживать потери пакетов в течение тестируемого времени.

  • В поле Host программы WinMtr введите адрес Вашего сайта или IP-адрес сервера и нажмите [Start]. Для завершения тестирования нажмите кнопку [Stop] (эта же кнопка)

    WinMtr
  • В "Опциях" (кнопка "Options") желательно отключить резолвинг имен для IP-адресов сняв галочку "Resolve names":
  • WinMtr

Скачать программу WinMtr можно здесь.

Для тестирования канала отправьте минимум 100 пакетов и пришлите нам скриншот или копию текста (Copy Text to clipboard). Количество отправленных пакетов фиксируется в колонке Sent.

UNUX/Linux/BSD-аналог - утилита mtr.

/!\ Важно /!\
- если у Вас установлен фаервол (брандмауэр), udp- и/или icmp-траффик (ping) должны быть разрешены.
- чем больше количество хопов (промежуточных маршрутизаторов), через которые проходит пакет - тем ниже скорость к серверу. Подробнее описано здесь.

4. Определение проблем сети с помощью утилит

tracert / traceroute / mtr / WinMtr


Эти утилиты используют одинаковый подход к определению маршрута, поэтому рассмотрим пример с tracert.

Для определения промежуточных маршрутизаторов tracert отправляет целевому узлу серию ICMP-пакетов Echo Request (по умолчанию 3 пакета), с каждым шагом увеличивая значение поля TTL ("время жизни") на 1. Это поле обычно указывает максимальное количество маршрутизаторов, которое может быть пройдено пакетом. Первая серия пакетов отправляется с TTL, равным 1, и поэтому первый же маршрутизатор возвращает обратно ICMP-сообщение "Time Exceeded: TTL expired in transit", указывающее на невозможность доставки данных. tracert фиксирует адрес маршрутизатора, а также время между отправкой пакета и получением ответа. Затем tracert повторяет отправку серии пакетов, но уже с TTL, равным 2, что заставляет первый маршрутизатор уменьшить TTL пакетов на единицу и направить их к следующему маршрутизатору. Второй маршрутизатор, получив пакеты с TTL=1, так же возвращает "TTL expired in transit".

Процесс повторяется до тех пор, пока пакет не достигнет целевого узла. При достиженни целевого узла пакетом с TTL=1, узел отвечает на него ICMP-пакетом Echo Reply. Таким образом, при получении ответа от этого узла процесс трассировки считается завершённым.

Trace

В UNIX, Linux, Cisco и BSD утилите traceroute используется модификация Вана Якобсона (англ. Van Jacobson) и отправляются UDP-пакеты. На целевом хосте IP-дейтаграмма с TTL = 1 не отбрасывается и не вызывает ICMP-сообщения типа срок истёк, а должна быть отдана приложению. Достижение пункта назначения определяется следующим образом: отсылаемые traceroute дейтаграммы содержат UDP-пакет с заведомо неиспользуемым номером порта на адресуемом хосте. Номер порта будет равен 33434 + (максимальное количество хопов до узла) - 1. В пункте назначения UDP-модуль, получая подобные дейтаграммы, возвращает ICMP-сообщения об ошибке "порт недоступен" (Port Unreachable). Таким образом, чтобы узнать о завершении работы, программе traceroute достаточно обнаружить, что поступило ICMP-сообщение об ошибке этого типа.

Методология tracert работает только в направлении от источника пакетов. В силу особенностей работы протоколов маршрутизации в сети Интернет, обратные маршруты часто не совпадают с прямыми, причем это справедливо для всех промежуточных узлов в трейсе. Поэтому, ICMP ответ от каждого промежуточного узла может идти своим собственным маршрутом, затеряться или прийти с большой задержкой, хотя в реальности с пакетами которые адресованы конечному узлу этого не происходит. Кроме того, на промежуточных маршрутизаторах часто стоит ограничение числа ответов ICMP в единицу времени, что приводит к появлению ложных потерь.

Основным показателем проблем с сетью являются потери на целевом узле. Очень большой процент или 100% потерь на промежуточном маршрутизаторе могут означать, что этот маршрутизатор блокирует часть или все пакеты ICMP или ICMP Echo-Reply или игнорирует пакеты ICMP Echo-Request.


pathping


Существенным отличием от программы tracert в Windows является то, что маршрут следования ICMP-пакета записывается в тело этого ICMP-пакета, что накладывает определенные ограничения. Во-первых, такой метод поддерживается не всеми маршрутизаторами, а во-вторых, накладывается ограничение на длину маршрута.