При возникновении проблем с доступом к серверу или сайту, перед тем, как обращаться в техподдержку или писать тикет, можно проверить качество канала с помощью таких утилит:
4. Определение проблем сети с помощью утилит
Это консольная утилита операционной системы Windows. Чтобы проверить задержки прохождения пакетов, наберите в командной строке tracert www.domain.com, где www.domain.com - Ваш домен или IP-адрес Вашего сервера.
Это утилита для трассировки сетевого маршрута, поставляемая вместе с Windows NT, Windows 2000, Windows XP, Windows Vista и Windows 7. Сочетает в себе функциональность утилит ping и tracert и обладает дополнительными возможностями.
PathPing предоставляет информацию о латентности сети и потерях данных на промежуточных узлах между исходным пунктом и пунктом назначения. Команда pathping в течение некоторого периода времени отправляет многочисленные сообщения с эхо-запросом каждому маршрутизатору, находящемуся между исходным пунктом и пунктом назначения, а затем на основании пакетов, полученных от каждого из них, вычисляет результаты. Поскольку pathping показывает коэффициент потери пакетов для каждого маршрутизатора или связи, можно определить маршрутизаторы или подсети, имеющие проблемы с сетью. Команда pathping выполняет эквивалентное команде tracert действие, идентифицируя маршрутизаторы, находящиеся на пути.
Существенным отличием от программы tracert в Windows является то, что маршрут следования icmp-пакета записывается в тело этого icmp-пакета, что накладывает определенные ограничения. Во-первых, такой метод поддерживается не всеми маршрутизаторами, а во вторых, накладывается ограничение на длину маршрута.
Запущенная без параметров, команда PathPing выводит справку.
где, www.domain.com - Ваш домен или IP-адрес Вашего сервера.
ключи:
-n - не резолвить адреса в имена
-q - к-во запросов на хост.
Данная утилита позволяет повторять трасировку в течение некоторого времени и отслеживать потери пакетов в течение тестируемого времени.
Скачать программу WinMtr можно здесь.
Для тестирования канала отправьте минимум 100 пакетов и пришлите нам скриншот или копию текста (Copy Text to clipboard). Количество отправленных пакетов фиксируется в колонке Sent.
UNUX/Linux/BSD-аналог - утилита mtr.
/!\ Важно /!\
- если у Вас установлен фаервол (брандмауэр), udp- и/или icmp-траффик (ping) должны быть разрешены.
- чем больше количество хопов (промежуточных маршрутизаторов), через которые проходит пакет - тем ниже скорость к серверу. Подробнее описано здесь.
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. Таким образом, при получении ответа от этого узла процесс трассировки считается завершённым.
В 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-пакета, что накладывает определенные ограничения. Во-первых, такой метод поддерживается не всеми маршрутизаторами, а во-вторых, накладывается ограничение на длину маршрута.