Перейти к содержанию
Обсудить задачу →
Статьи и инструкции

WinMTR: как проверить потери пакетов и правильно прочитать результат

Как использовать WinMTR: выбрать цель, накопить выборку, читать Loss и latency, отличить ICMP rate limit от реальной потери и подготовить отчёт.
WinMTR: как проверить потери пакетов и правильно прочитать результат — иллюстрация темы

WinMTR объединяет traceroute и повторяющийся ping. Он помогает увидеть маршрут, задержку и ответы промежуточных узлов, но потеря на одной строке ещё не доказывает неисправность этого маршрутизатора. Ключевой признак реальной проблемы — потери или рост задержки продолжаются на следующих хопах и достигают цели.

WinMTR: потери ответов и потери трафика
Учебная схема механизма. Причины, примеры команд и интерпретация результатов разобраны ниже.

1. Устройство измерения и формулировка проблемы

Что именно делает WinMTR

WinMTR объединяет поиск промежуточных переходов и повторные измерения ответов. Вместо трёх проб, как в обычной трассировке, он накапливает Sent, Recv, Loss% и задержки по наблюдаемым узлам. Но промежуточный ответ генерирует сам маршрутизатор, тогда как пользовательский пакет он обычно пересылает другим механизмом. Поэтому два процесса могут иметь разные приоритеты и ограничения.

Сформулируйте симптом до измерения: «видеоконференция замирает каждые пять минут», «SSH разрывается», «веб-страница иногда отвечает 504». У них разные вероятные причины. WinMTR даёт сетевые наблюдения, но не измеряет состояние базы приложения и не обнаруживает автоматически ошибку TLS.

Фиксируйте точный целевой IP. Имя может разрешаться в разные CDN-адреса, а приложение может ходить через proxy. В первом случае разные запуски нельзя смешивать в одну выборку; во втором прямой маршрут до сайта не обязательно является путём рабочего приложения.

Проверяйте адрес сервиса, где проявляется проблема: игровой сервер, VPN-шлюз, сайт или SIP-провайдер. Тест до публичного DNS не объяснит разрывы другого маршрута. Запишите время и тип подключения.

Выберите конкретный адрес, семейство IP и окно наблюдения

Возьмём пример: сотрудники жалуются на обрывы HTTPS к portal.example.com с офисного ПК. Сначала определите A/AAAA адреса и реальный адрес, который выбрал браузер. CDN может выдавать разные IP разным резолверам; тест до вчерашнего адреса другой площадки не воспроизводит сегодняшний сбой.

Resolve-DnsName portal.example.com -Type A
Resolve-DnsName portal.example.com -Type AAAA
Get-NetIPConfiguration

Запишите адрес цели, время с часовым поясом, интерфейс, наличие VPN и симптом: тайм-аут соединения, прерывание загрузки или задержка ответа приложения. WinMTR до IP измеряет ответы этого IP; ошибка HTTP500 без потерь сети требует анализа приложения. Для IPv6 выбирайте инструмент, который действительно поддерживает IPv6, а не автоматически повторяйте IPv4-результат.

2. Выбор проекта и доверенная загрузка

Старая оригинальная утилита и поддерживаемость альтернатив

У исходного проекта WinMTR есть исторический выпуск и ограничения сопровождения. Не называйте его автоматически «самой свежей современной диагностикой». Страница WinMTR-Official позволяет проверить происхождение проекта. Отдельный fork White-Tiger добавляет свои возможности, включая IPv6, но его следует обозначать другим проектом и проверять совместимость конкретного выпуска.

Откройте Releases выбранного проекта, изучите выпуск и наличие готового Windows-архива, соответствующего системе. Исходный код в ZIP — не обязательно готовая программа. Если бинарника нет, используйте согласованное средство диагностики, а не случайный repack из поисковой выдачи. Собственный вычисленный hash нужен для фиксации полученного файла, но подтверждает подлинность лишь при сравнении с доверенно опубликованным значением.

Для Linux есть mtr с другим набором ключей. Команды mtr нельзя выдавать за команды Windows WinMTR. Доступные поля и экспорт также сверяйте с выбранным клиентом.

Официальный проект опубликован в репозитории WinMTR-Official. Проверьте архив и разрядность, не используйте сборку с рекламного каталога. Приложение портативное и не требует установки.

Версия и происхождение инструмента имеют значение

Первичный репозиторий WinMTR-Official содержит историческую ветку и описывает ограниченное сопровождение. Форк WinMTR Redux отдельно добавляет IPv6. Это разные сборки; в отчёте укажите источник, версию и семейство адресов. Не называйте любой скачанный ZIP «последним официальным». Скачивайте по ссылке разработчика, проверяйте контрольную сумму, если она опубликована, и используйте процедуру разрешённого ПО организации.

Архив распакуйте в отдельный пользовательский каталог. Для штатной диагностики не требуется копировать бинарник в System32. Если запуск блокирует EDR, согласуйте разрешение конкретного приложения; отключение защиты всего ПК меняет условия теста и увеличивает риск. WinMTR Redux — первичный репозиторий.

3. Контрольные условия: кабель, Wi-Fi и VPN

Поставить контрольный опыт дома и в офисе

Первый опыт выполняйте по кабелю, если жалоба наблюдалась через Wi-Fi. Иначе задержки доступа к радиоканалу смешиваются с проблемой провайдера. Сохраните одинаковую цель, выключите только согласованную лишнюю нагрузку и запишите, включён ли VPN. Повторите в момент жалобы и в спокойный период.

3. Контрольные условия: кабель, Wi-Fi и VPN
ОпытЧто остаётся одинаковымЧто он помогает разделить
Wi-Fi и кабельЦель, время около симптомаЛокальная радиосеть и путь дальше
VPN включён/выключен, если это разрешеноСервис и семейство адресовРазные маршруты доступа
Шлюз LAN и конечный сервисСеть клиентаЛокальная доступность и end-to-end наблюдение
Два согласованных внешних источникаIP сервисаДоступность зависит от источника или общей стороны

Сам шлюз может ограничивать Echo, поэтому даже здесь показатель Loss% нуждается в сопоставлении. Отдельный ping до gateway не заменяет измерение работы Wi-Fi на уровне радиоканала.

По возможности подключитесь кабелем, отключите VPN и фоновые загрузки. Сначала проверьте шлюз, затем внешнюю цель. Отдельный тест по Wi-Fi нужен для сравнения, а не смешивания причин.

ipconfig
ping -n 50 192.168.1.1
ping -n 50 example.com

Локальный baseline и исключение Wi-Fi

Сначала сохраните текущие параметры; замените адрес шлюза из ipconfig, не копируйте 192.168.1.1, если он не ваш. Тест по проводу проводите с тем же ПК и целевым IP. Не отключайте корпоративный VPN, если сервис доступен только через него: вместо этого явно разделите разрешённые сценарии.

Если шлюз теряет ответы, повторите тест до другого доступного LAN-узла и проверьте ошибки интерфейса. Маршрутизатор может ограничивать собственный ICMP, поэтому потери к шлюзу без потерь к внешней цели ещё не доказывают дефект кабеля. На Wi-Fi сравните RSSI, канал, повторные передачи и момент смены точки; MTR сам не показывает радиоэфир. Когда только Wi-Fi ухудшает конечный результат, сначала исследуют локальную среду, затем магистраль провайдера.

4. Запуск, длительность и полный экспорт

Как запускать измерение и сохранять весь результат

В поле Host укажите выбранный IP либо имя; при имени запишите реально использованный адрес. В Options задайте умеренный интервал, например одну секунду, оставьте сопоставимые параметры и начните Start. Соберите несколько минут, захватывая симптом. Остановите тест и экспортируйте таблицу в доступном вашей версии текстовом или HTML-формате.

300 проб при интервале около секунды дают примерно пять минут для конечного ряда; фактическая длительность зависит от реализации, тайм-аутов и числа узлов. Значение Sent может различаться между строками. Не меняйте цель или сеть посередине теста: начните новый измерительный интервал и подпишите его отдельно.

Скриншот без последних строк часто скрывает важнейший факт — отвечает ли конечная цель. Экспорт с Host, Loss%, Sent, Recv, Best, Avg и Worst позволяет проверить интерпретацию. Сначала сохраните внутреннюю полную копию, затем подготовьте наружную с учётом адресов и имён вашей инфраструктуры.

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

Пошаговый запуск и экспорт

Откройте WinMTR, в Host введите только hostname или IP без https:// и пути. В Options оставьте умеренный интервал около секунды и стандартный размер пакета; запишите параметры. Нажмите Start. Дождитесь 300–600 проб либо согласованного интервала, охватывающего симптом. Не запускайте десятки окон с минимальными интервалами: вы можете сами вызвать ограничение ICMP.

Зафиксируйте минуту ошибки приложения. Нажмите Stop, экспортируйте текст и отдельно сохраните скриншот полного окна. Нажмите Clear History/очистку перед новым сравнительным прогоном, чтобы не смешивать предыдущие счётчики с новой сетью. Без конечной строки и количества Sent таблица не позволяет проверить вывод. Пять минут при одном пакете в секунду дают около 300 проб, но не гарантируют, что редкий ночной сбой был пойман.

5. Поля таблицы, арифметика и выборка

Поля таблицы, формула и ограничения короткой выборки

5. Поля таблицы, арифметика и выборка
ПолеЗначениеЧастая неверная трактовка
HostОтветивший адрес/имяЭто обязательно физический маршрутизатор отдельного здания
SentКоличество отправленных проб для рядаОдинаковое число у всех строк гарантировано
RecvКоличество учтённых ответовВсе пользовательские TCP-пакеты были доставлены
Loss%Доля неучтённых ответов в данной выборкеНа линке потерян тот же процент полезного трафика
BestМинимальный измеренный RTTТочная задержка одного кабеля
AvgСредний RTT полученных ответовСредняя задержка всех пользовательских транзакций
WorstНаибольший учтённый RTTПостоянная скорость сети
Last, если естьПоследний учтённый RTTНадёжнее всей предыдущей выборки

Для завершённого сопоставимого интервала Loss% приблизительно равен 100 × (Sent − Recv) / Sent. Округление и незавершённые пробы могут влиять на отображение. При 300 отправленных и 294 полученных получается 2%. Для проверки арифметики это достаточно, для локализации причины — нет.

Ноль потерь не доказывает отсутствие редкого отказа. Если условно считать потери независимыми с вероятностью 1%, вероятность не увидеть ни одной за 300 проб равна 0.99^300, около 4,9%. Это учебная модель, а не гарантированный confidence interval для реального burst loss. Короткий интервал особенно плохо ловит событие, возникающее раз в час.

Loss% показывает долю неответивших проб, Sent/Recv — объём выборки, Best/Avrg/Wrst/Last — задержку. Среднее без Worst скрывает всплески, а Worst без повторяемости может быть единичным событием.

Числа на учебном примере

Host                 Loss%   Sent   Recv   Best  Avrg  Wrst  Last
LAN-gateway              0    300    300      1     2    11     1
ISP-control-plane       80    300     60     10    14    35    12
transit                  0    300    300     21    24    44    22
service                  0    300    300     27    31    58    29

Это иллюстрация, а не измерение AVG IT. Доля отсутствующих ответов (Sent-Recv)/Sent×100: у второго узла 240/300=80%. Поскольку последующие узлы получают все пробы, нельзя говорить о 80% потерь транзита на нём. Best близок к задержке без очереди, Avrg показывает среднее ответивших проб, Wrst — самый высокий наблюдаемый RTT, Last — последнюю пробу. У неответивших проб нет измеренного RTT; среднее не включает их как «бесконечную задержку».

6. Высокие потери промежуточных ответов

Случай A: 80% на промежуточном узле и 0% на цели

Узел                 Sent  Recv  Loss  Avg
192.168.10.1          300   300    0%    1 ms
198.51.100.1          300    60   80%   70 ms
203.0.113.10          300   300    0%   15 ms

Это учебные адреса и числа. Дальняя цель ответила на все 300 проб. Следовательно, таблица не доказывает 80% потерь пересылаемого трафика на втором узле. Возможны ограничение ICMP-ответов, иной приоритет CPU или фильтрация ответного направления. Если бы 80% полезных пакетов стабильно терялось там для того же потока, наблюдение цели потребовало бы другого объяснения.

Название control plane описывает обработку собственных сообщений устройства. Forwarding plane — пересылку проходящих пакетов. Ограничение первой части может защищать маршрутизатор, не ухудшая обычную пересылку. Не требуйте от провайдера отключить защиту только ради красивого ряда WinMTR.

Маршрутизатор может ограничивать ICMP к собственному control plane и при этом нормально пересылать пользовательский трафик. Если хоп показывает 80% loss, а все следующие и цель — 0%, транзит не потерян. Смотрите, продолжается ли эффект дальше.

Почему control plane даёт ложное подозрение

На промежуточном маршрутизаторе обычный пакет может пересылаться аппаратно, а ответ ICMP Time Exceeded формируется процессором и ограничивается отдельной политикой. Устройство способно переслать тысячу пакетов и ответить лишь на часть диагностических обращений. Строка No response from host с отвечающими узлами ниже показывает невидимый хоп, не полный обрыв канала.

Обратная ситуация тоже возможна: ICMP идёт хорошо, но TCP к нужному порту блокируется ACL или UDP теряется в очереди другого класса. Поэтому корректный вывод формулируют как «в выбранном ICMP-тесте наблюдается такой результат», а не «сеть абсолютно исправна».

7. Потери конечной цели и границы локализации

Случай B: потери продолжаются до конца

Узел                 Sent  Recv  Loss  Avg
192.168.10.1          500   500    0%    1 ms
198.51.100.1          500   485    3%   12 ms
198.51.100.2          500   480    4%   18 ms
203.0.113.10          500   480    4%   21 ms

Тут конечная цель недодаёт ответы. Первый подозрительный участок — после локального gateway или его ответного пути. Но не следует назвать первый ряд с 3% «точно неисправным портом»: пробы разных рядов не являются одним и тем же пакетом, обратный путь неизвестен, ICMP может обрабатываться отдельно.

Повторите интервал, сравните кабель/Wi-Fi, другую цель в согласованной сети и реальное приложение. При доступе к оборудованию сопоставьте counters интерфейсов: ошибки, drops, загрузку, очереди. Без таких данных WinMTR даёт основание расследовать участок, но не доказательство конкретной аппаратной неисправности.

Реальный кандидат появляется там, где loss или задержка начинаются и сохраняются на последующих узлах до цели. Первый хоп указывает на LAN/Wi-Fi, следующий — на доступ провайдера, дальние — на транзит или сеть сервиса.

Сохраняющееся ухудшение — повод исследовать границу

Host            Loss%   Sent  Recv  Avrg
LAN                 0    500   500     1
access              4    500   480    20
transit             4    500   480    35
service             5    500   475    42

Здесь потери до цели подтверждены диагностическими пробами. Ухудшение начинается возле доступа, но конкретное устройство ещё не установлено: каждую строку измеряют независимыми пакетами, обратный маршрут неизвестен, а промежуточные ответы могут лимитироваться. Потребуются тест с другой стороны, показатели ошибок интерфейса, очередей и корреляция с приложением. Небольшая разница 4% и 5% на выборке 500 не позволяет точно присвоить «ещё 1%» следующему хопу.

Если на первом хопе 0%, а цель потеряла ответы, не исключайте офис полностью: пересылка трафика через WAN/NAT отличается от ping к самому шлюзу.

8. Всплески задержки и интерпретация Worst

Случай C: плохой Worst без постоянных потерь

Средний RTT 20 мс, Worst 400 мс и Loss=0 могут означать единичную очередь или задержку ответа. Для голоса, удалённого рабочего стола и интерактивной работы одиночные всплески важны, но из одного Worst нельзя восстановить частоту. Одинаковый максимум может получиться у одного всплеска за час и у каждого второго пакета.

Сохраните несколько коротких интервалов и время жалобы. Для оценки jitter используйте инструмент и определение, подходящие приложению: вариация RTT не равна автоматически jitter RTP. При bulk download очереди доступа могут увеличиваться без потерь; повторите тест с обычной рабочей нагрузкой, а затем без лишнего трафика, сохраняя условия.

Запустите тест в момент проблемы и вне пика, по кабелю и Wi-Fi, с VPN и без него, если это разрешено. Маршрут обратного трафика может отличаться, поэтому WinMTR показывает не всю картину.

Матрица сравнений вместо случайного переключения

Сделайте четыре отдельных отчёта, где меняется один фактор: провод утром, провод в час проблемы, Wi-Fi в то же окно, альтернативный разрешённый канал до того же IP. При VPN добавьте имя туннеля и точку выхода. Смена сервера или DNS вместе со сменой подключения разрушает сравнение.

Запросите встречный тест от администратора сервиса до разрешённого офисного адреса, если архитектура это допускает. Из-за NAT обратная трассировка может завершиться на шлюзе; это ограничение нужно отметить. Anycast и ECMP иногда меняют маршрут без изменения hostname, поэтому сохраняйте именно фактические IP и полный результат.

9. Сопоставление с TCP, TLS и приложением

Сетевой ответ и прикладной ответ проверяют отдельно

На Windows проверка TCP до своего сервиса:

Test-NetConnection service.example.com -Port 443 -InformationLevel Detailed

TcpTestSucceeded=True означает установление TCP в условиях теста, но не успешный login или HTTP. Для HTTPS можно использовать установленный curl:

curl --connect-timeout 5 --max-time 15 -o /dev/null -sS -w 'connect=%{time_connect} tls=%{time_appconnect} first_byte=%{time_starttransfer} total=%{time_total}\n' https://service.example.com/

Этот Bash-пример использует /dev/null и предназначен Linux/macOS. На Windows применяйте curl.exe с соответствующим путём вывода либо свой прикладной клиент. Времена curl накопительные от старта: для длительности отдельной стадии нужно вычесть предыдущую отметку. Ошибка HTTP 500/504 может исходить от приложения или его upstream; один маршрут без потерь не объясняет её причину.

Если цель фильтрует ICMP, WinMTR может не показать конечный ответ при работающем TCP/HTTPS. Не снимайте firewall-защиту production-сервиса ради измерения, если можно выбрать согласованную диагностическую цель.

ICMP может обрабатываться иначе, чем TCP/UDP приложения. Сопоставьте WinMTR со временем ошибок, логами VPN, звонка или игры, TCP-проверкой порта и загрузкой. Не делайте вывод по одной картинке.

Test-NetConnection example.com -Port 443 -InformationLevel Detailed
ping -n 200 example.com

Подтверждение TCP и HTTPS

TcpTestSucceeded=True подтверждает TCP handshake, но не скорость передачи и не корректность HTTPS. Для приложения измерьте ограниченный по времени запрос без отключения проверки сертификата:

Test-NetConnection portal.example.com -Port 443 -InformationLevel Detailed
curl.exe --connect-timeout 5 --max-time 15 -o NUL -sS -w "code=%{http_code} ip=%{remote_ip} connect=%{time_connect} tls=%{time_appconnect} total=%{time_total}\n" https://portal.example.com/

time_connect и time_appconnect отсчитываются от начала запроса, а не являются независимыми длительностями стадий. HTTP401 может означать нормальный ответ защищённого портала, HTTP500 — отказ приложения, code000 — отсутствие HTTP-ответа. Не помещайте токены/пароли в пример или отчёт. Совпадение потерь на конечной строке с тайм-аутами повышает уверенность в сетевой причине; одиночный успешный запрос не исключает периодический сбой.

10. Технический отчёт с проверяемым выводом

Какой отчёт помогает поддержке

Симптом: что именно не работает, начало и длительность.
Источник: кабель/Wi-Fi, сеть доступа, VPN, семейство IP.
Цель: hostname и фактический IP, приложение и порт.
Инструмент: проект/версия, параметры, интервал.
Измерение: начальное и конечное время, полный экспорт.
Контроль: второй опыт с одной изменённой переменной.
Приложение: результат TCP/TLS/HTTP в то же время.
Вывод: наблюдения отдельно от неподтверждённой причины.

К отчёту не нужна фотография любой строки с красным процентом. Нужны сопоставимые условия и конечный результат. Если точная локализация не получена, следующий шаг — конкретный дополнительный опыт, а не обвинение первого устройства с высоким Loss%.

Экспортируйте текст без внутренних адресов и персональных данных, укажите дату, часовой пояс, целевой hostname, тип линии, длительность, проводной baseline и момент симптома. Не обрезайте последние строки: поведение цели критично для интерпретации.

Что передать провайдеру и как проверить исправление

Сохраните полную исходную таблицу во внутреннем обращении. Для публичной копии обезличьте внутренние имена, сохранив номера строк, счётчики и указание, что адрес скрыт. Укажите исходный/целевой IP в защищённом канале поддержки, длительность, протокол, время, версию клиента, симптом и сравнение с baseline. Вывод «хоп №4 виноват» замените доказательством: где начинается эффект, доходит ли он до цели и какой прикладной отказ совпал по времени.

После ремонта повторите исходный тест при сопоставимой нагрузке и проверьте приложение. Если конечная цель перестала терять ответы, но один промежуточный узел всё ещё даёт 80%, это не основание отклонить исправление. MTR — режимы и параметры первичного инструмента.

Источники: WinMTR-Official, Microsoft Learn — tracert, Microsoft Learn — pathping.