Диагностика джиттера и потерь пакетов в VoIP с помощью PingPlotter

Диагностика джиттера и потерь пакетов в VoIP с помощью PingPlotter

  • Окт, 06, 2025
Диагностика джиттера и потерь пакетов в VoIP с помощью PingPlotter

1. Параметры качества VoIP

Качество VoIP-вызова определяется тремя параметрами: задержкой, джиттером и потерями пакетов.

Задержка (Latency)

Задержка — это время прохождения пакета от отправителя к получателю. В VoIP критична односторонняя задержка. Согласно рекомендациям ITU-T G.113:

  • ≤ 150 мс — допустимо без ухудшения качества
  • 150–250 мс — приемлемо, но возможны неудобства
  • > 250 мс — разговор становится затруднительным

Задержка складывается из времени распространения сигнала, обработки на маршрутизаторах и буферизации. Её нельзя устранить полностью, но можно минимизировать за счёт оптимизации маршрута и отключения ненужных функций (например, SIP ALG).

Джиттер (Jitter)

Джиттер — это вариация задержки между последовательными пакетами. Например, если первый пакет пришёл за 40 мс, второй — за 70 мс, третий — за 50 мс, то джиттер составляет 30 мс и 20 мс соответственно.

VoIP-устройства используют jitter buffer — буфер, который выравнивает поступление пакетов. При высоком джиттере буфер увеличивается, что добавляет задержку. Если джиттер превышает размер буфера, пакеты отбрасываются, что вызывает обрывы речи.

Допустимый уровень джиттера — ≤ 30 мс. При значениях выше 50 мс качество речи резко ухудшается.

Потери пакетов (Packet Loss)

Потери пакетов — это процент пакетов, не достигших получателя. Причины: переполнение очереди на маршрутизаторе, помехи в беспроводной сети, ошибки CRC.

Реакция на потери зависит от кодека:

  • G.711 (без FEC) — потеря 1% вызывает заметные артефакты
  • Opus, G.729 (с FEC) — могут компенсировать до 3–5% потерь

Однако даже 1% потерь в сочетании с джиттером > 30 мс приводит к MOS ниже 3.0.

Параметр Единица измерения Допустимо Критично
Задержка (односторонняя) мс ≤ 150 > 250
Джиттер мс ≤ 30 > 50
Потери пакетов % ≤ 1 > 3

2. Подготовка к диагностике

Для корректной диагностики необходимо правильно выбрать цель и параметры теста.

Выбор цели

Целью должен быть IP-адрес устройства, участвующего в VoIP-сессии:

  • IP-адрес SIP-сервера (например, FreePBX или 3CX в облаке)
  • IP-адрес медиашлюза провайдера (указывается в настройках SIP-транка)
  • IP-адрес удалённого IP-телефона (для межофисных вызовов)

Использование DNS-имён недопустимо, так как добавляет задержку от DNS-запроса и может исказить результаты.

Длительность теста

Минимальная длительность — 15 минут. Проблемы часто проявляются периодически (например, при запуске фоновых задач или в часы пик). Идеальная длительность — 30–60 минут с параллельным VoIP-вызовом.

Параметры пакета

Размер пакета должен быть близок к реальному RTP-пакету. Стандартный RTP-пакет с заголовками UDP/IP составляет 60–160 байт. Поэтому в PingPlotter устанавливается размер 128 байт.

Интервал отправки — 500 мс. Это компромисс между точностью и нагрузкой на сеть. VoIP-пакеты отправляются каждые 20–30 мс, но диагностика с таким интервалом создаст избыточный трафик и не даст дополнительной пользы.

Оборудование

Тест должен запускаться с того же устройства, с которого идёт VoIP-вызов (особенно важно для Wi-Fi). PingPlotter требует прав администратора для отправки raw-пакетов.

3. Настройка PingPlotter

Установка и запуск

PingPlotter может работать в portable-режиме без установки. Запуск от имени администратора обязателен.

Параметры сессии

  • Target: IP-адрес цели
  • Packet Size: 128
  • Interval: 500 мс
  • Max Trace Hops: 30
  • Packet Type: ICMP (по умолчанию)

ICMP используется, так как он проходит те же маршруты и очереди, что и UDP-трафик. Хотя некоторые сети могут по-разному обрабатывать ICMP и UDP, в большинстве случаев поведение идентично.

Запуск трассировки

  1. Нажмите Trace.
  2. Дождитесь построения маршрута (все хопы отобразятся в левой панели).
  3. Проверьте стабильность первого хопа (локальный шлюз). Если там уже есть потери — проблема в локальной сети.
  4. Запустите VoIP-вызов и продолжайте запись в течение 15+ минут.

4. Интерпретация результатов

Структура интерфейса

Левая панель — список хопов (маршрутизаторов). Правая — графики:

  • Красные столбики — процент потерь на хопе за интервал
  • Синяя линия — текущая задержка (мс)

В Pro-версии доступны дополнительные графики: усреднённая задержка, джиттер.

Оценка джиттера

В Pro-версии джиттер отображается как отдельный график. В Standard-версии его оценивают вручную:

Джиттер ≈ (макс. задержка – мин. задержка) / 2

Расчёт выполняется по окну из 10–20 последовательных пакетов. Например, при мин. = 40 мс, макс. = 100 мс → джиттер ≈ 30 мс.

Анализ по хопам

Анализ начинается с первого хопа и продолжается до цели:

  • Хоп 1 — локальный шлюз. Потери или высокая задержка указывают на проблему в LAN (Wi-Fi, перегруженный коммутатор, SIP ALG).
  • Хопы 2–5 — сеть провайдера. Рост задержки или потерь на этом этапе говорит о перегрузке агрегирующего оборудования.
  • Граница AS — смена автономной системы (видна в whois по IP). Резкий скачок указывает на проблемы пиринга между провайдерами.
  • Последние хопы — сеть получателя. Если стабильны — проблема не на его стороне.

Фиксация событий

Кнопка Comment позволяет добавить временную метку с описанием (например, «обрыв речи»). Это критически важно для корреляции сетевых аномалий с симптомами VoIP.

5. Типичные сценарии неисправностей

Симптом в PingPlotter Причина Решение
Потери 100% на хопе 1 с периодичностью 30 сек SIP ALG на маршрутизаторе обнуляет таймеры NAT для SIP-сессий Отключить SIP ALG в настройках роутера или firewall
Джиттер 50–100 мс, потери 1–3% на хопе 1 Перегрузка Wi-Fi из-за конкуренции за эфир или слабого сигнала Перевести устройство на диапазон 5 ГГц, уменьшить количество клиентов или использовать кабель
Рост задержки с 30 до 300+ мс на хопе 3–5 в определённое время Перегрузка канала у провайдера в часы пик Обратиться в техподдержку с отчётом или подключить резервный канал
Задержка > 1000 мс без потерь Bufferbloat — чрезмерная буферизация на маршрутизаторе Включить SQM (Smart Queue Management) или ограничить скорость на интерфейсе
Потери начинаются на хопе, где меняется AS Плохое качество пиринга между провайдерами Использовать другого SIP-провайдера или настроить BGP с предпочтением альтернативного пути

6. Экспорт отчёта

В PingPlotter Pro:

  1. Выделите временной диапазон с аномалией.
  2. Выберите File → Export → PDF Report.
  3. Отчёт включает: график потерь, график задержки, список хопов, комментарии и параметры сессии.

Этот документ содержит объективные данные для обращения к провайдеру.

7. Ограничения метода

Несмотря на эффективность, метод имеет ограничения:

  • ICMP и UDP могут обрабатываться по-разному. Некоторые провайдеры приоритезируют ICMP выше, что даёт ложное ощущение стабильности.
  • При использовании IPsec или сложного NAT ICMP-трафик может следовать другим маршрутом, чем VoIP.
  • Для анализа кодеков, MOS, RTCP и точного измерения джиттера требуется анализ RTP-потока (Wireshark, встроенные инструменты PBX).

Альтернативные инструменты:

  • WinMTR — бесплатный аналог, но без временной визуализации
  • iPerf3 с UDP — для генерации трафика, имитирующего VoIP
  • SmokePing — для постоянного мониторинга на сервере

8. Рекомендации

  • Тестируйте в обе стороны: с клиента к серверу и с сервера к клиенту. Проблема может быть асимметричной.
  • Используйте несколько целей: SIP-сервер, медиашлюз, DNS — чтобы определить, проблема в сигнализации или медиа.
  • Для Wi-Fi запускайте тест непосредственно с проблемного устройства — положение влияет на качество приёма.
  • После настройки QoS повторите тест с теми же параметрами для подтверждения улучшения.
  • Сохраняйте baseline-тесты в «тихий» период для последующего сравнения.

9. Заключение

PingPlotter позволяет локализовать источник джиттера и потерь пакетов по каждому хопу маршрута. Метод основан на визуализации стабильности сети с разрешением 500 мс.

Ключевые шаги:

  1. Указать IP-адрес цели, размер пакета 128 байт, интервал 500 мс.
  2. Запустить трассировку на 15+ минут с параллельным VoIP-вызовом.
  3. Определить хоп, на котором начинаются аномалии (потери, рост задержки, джиттер).
  4. Сопоставить сетевые данные с симптомами через комментарии.
  5. Экспортировать отчёт при взаимодействии с провайдером.

Метод позволяет точно определить, находится ли проблема в локальной сети, на стороне провайдера или на удалённом узле.