Диагностика сетевого соединения с помощью WinMTR
1. Общая информация
WinMTR — бесплатная и простая в использовании программа, используемая для диагностики сетевых соединений. Она совмещает в себе функции таких встроенных в Windows утилит, как ping и tracert, и позволяет осуществлять трассировку и отслеживать потери пакетов. Скачать программу можно, например, здесь.
WinMTR определяет маршрут, по которому передается трафик от Вашего компьютера до выбранного хоста, и адрес каждого узла маршрута. После на каждый из них отправляются запросы ICMP-пакетами, и таким образом выявляются узлы, на которых возникают задержки или потери данных.
2. Описание программы
Первое поле «Host», в него нужно вписать адрес удаленного узла, до которого Вы хотите проверить качество канала связи, адрес можно задать как при помощи IP-адреса, так и при помощи доменного имени. Чтобы WinMTR начала работать, нужно нажать на кнопку «Start», в процессе трассировки надпись «Start» сменится на «Stop», используйте ее чтобы остановить опрос узлов.
Кнопка «Options» позволяет настроить работу WinMTR. Кнопка «Copy Text to Clipboard» позволяет скопировать отчет WinMTR в буфер обмена в виде простого текста, а кнопка «Copy HTML to Clipboard» превращает отчет WinMTR в HTML разметку и копирует это всё дело в буфер обмена.
Можно сразу помещать отчет WinMTR в файлы, для этого есть кнопки «Export TEXT» и «Export HTML», первая помещает отчет в простой текстовый файл, а вторая в HTML-документ. В белом поле по центру будут отображаться результаты трассировки.
3. О значениях, в различных столбцах WinMTR.
Каждая строка называется хопом, прыжком или шагом, первый столбец каждой строки – адрес устройства по умолчанию WinMTR выводит имя хоста, если оно не задано, то мы видим IP-адрес устройства (какие устройства отображаются описано далее). WinMTR в трассировке не отображает Ваш компьютер, первый хоп – это обычно Ваш роутер, последний хоп – узел назначения, до которого Вы делаете трассировку Теперь перейдем к значениям столбцов WinMTR:
- Hostname – имя узла в трассировке, это может быть как доменное имя, так и IP-адрес. Если вместо доменного имени Вы видите «No response from host», это может означать, что узел не отвечает на ICMP запросы (при этом может передавать данные) или он недоступен.
- Nr — порядковый номер узла в трассировке или номер хопа.
- Loss % — процент потерянных пакетов от узла. WinMTR очень плохо округляет небольшие потери, например, WinMTR показывает, что было отправлено 1000 пакетов и получено 999 ответов, то есть потерялся один пакет, процент должен быть 0.1, а WinMTR покажет, что это 1%, всё дело в том, что округление у WinMTR идет всегда в большую сторону, иногда процент потерь лучше считать вручную.
- Sent – количество отправленных запросов.
- Recv – количество полученных ответов.
- Best – лучшее или наименьшее время ответа удаленного узла.
- Avrg – среднее время задержки пакетов или среднее время ответа.
- Worst – наибольшее или наихудшее время ответа удаленного узла.
- Last – время задержки последнего полученного пакета.
4. Как пользоваться
В поле hostname указываем адрес удаленного узла и нажимаем кнопку «Start», ниже пример трассировки WinMTR до публичного DNS-сервера Google.
Глядя на столбец Loss, можно подумать, что на втором хопе потери 95%, но это не так. Для защиты от DDoS атак, маршрутизаторы настроены таким образом, чтобы они не отвечали на большую часть ICMP запросов (или все запросы, в таком случае может быть запись «No response from host»). Если бы было действительно 95% потерь, то эти потери отразились бы на последующих хопах и в столбце Loss мы бы видели не 0%, а значения с разбросом от 85% до 95%. В данном случае мы можем сделать вывод о качестве интернет соединения по результатам трассировки WinMTR: потерь нет, среднее время отклика конечного узла составляет 42мс.
Стоит отметить, что трассировка WinMTR отображает только устройства сетевого уровня, то есть это могут быть: роутеры/маршрутизаторы, L3 коммутаторы, на интерфейсах которых прописаны IP-адреса и сервера. Устройств канального и физического уровня модели OSI 7 в трассировки нет, так как им для работы не нужны IP-адреса, хотя именно эти устройства, а также некачественные линии связи, обычно являются причинами потерь в канале связи. К устройствам канального уровня относятся сетевые L2 коммутаторы, а к устройствам физического уровня относятся различные конвертора, повторители и усилители и т.п.
Рассмотрим пример трассировки WinMTR с небольшими потерями и поговорим о качестве интернет соединения, вернее будет сказать о качестве канала связи до удаленного узла, так как интернет канал, предоставляемый Вашим провайдером, в данном случае, не оказывает никакого влияния на потери пакетов.
Эта трассировка до сервера одной компании, которая предоставляет своим клиентам услугу и делает она это не очень качественно.
В данном случае Ваш провайдер никак не сможет устранить потери в канале связи. Дело в том, что компания с тестируемым сервером подключена к другому провайдеру. Потери начинаются на последнем хопе, то есть это зона ответственности либо компании, предоставляющей услугу, либо это по причине провайдера, которым пользуется эта компания.
В такой ситуации нет никакого смысла обращаться в техническую поддержку. А вот обратиться в компанию смысл есть. Сказать им, что их услуга не очень хорошо работает и подтвердить это «не очень хорошо» статистикой WinMTR.
Если Вы наблюдаете большие потери пакетов или «No response from host» на первом и последующих хопах, то это говорит о сетевых проблемах на клиентском устройстве или в соединении между устройством и роутером. Если на втором и далее, то проблема может быть с роутером или повреждении кабеля в квартире или на площадке.
5. Что нужно учитывать
Когда Вы проверяете канал связи или интернет соединение при помощи WinMTR, не забывайте, что сетевые маршрутизаторы и L3 коммутаторы могут по-разному обрабатывать пакеты с ICMP вложениями, которые Вы направляете именно им, и те пакеты, которые для данного конкретного узла являются транзитными, то есть пакеты, которые узел может передать дальше.
Например, Вы видите небольшие потери, на седьмом хопе, но потерь уже нет на восьмом и последующих – это не повод для волнений, задача седьмого узла передать данные дальше (так как он транзитный), а не отвечать на «бесполезные» служебные ICMP запросы.
Следующий фактор, который Вам нужно учесть – это время ответа удаленного узла, которое образуется из того времени, которое пакет идет к удаленному узлу и того времени, которое он возвращается. При этом, если Вы проверяете интернет соединение до какого-нибудь географически удаленного узла, Вам не стоит забывать, что маршрут пакета «туда» и маршрут пакета «обратно» может отличаться, следовательно, и время, за которое пакет добирается «туда» отличается от времени, которое тратится на то, чтобы прийти «обратно».
Наиболее важным фактором качественной диагностики является подключение устройства к роутеру, на котором запущен WinMTR, кабелем, а не через Wi-Fi. Причины проблем с Wi-Fi описаны тут. Так же важно не располагать линии связи вблизи электрических кабелей, блоков питания и любых других электрических устройств которые могут наводить помехи на полезный сигнал.
Не забывайте, что в сетях (любого из провайдеров в списке) на маршрутизаторах может работать балансировка и может получиться так, что первый пакет пойдет «влево», а второй «вправо», это означает, что у них будут разные маршруты «туда», но в итоге оба пакета достигнут пункта назначение, а в трассировке, в WinMTR, будет отображен только маршрут первого пакета. При этом может возникнуть ситуация, что потери происходят по маршруту, которым был отправлен второй пакет.