Джиттеры в компьютерных сетях¶
Джиттеры (от англ. jitter — «дрожание, колебание») — это неравномерность временных интервалов между приходом пакетов данных в компьютерной сети, возникающая при передаче потокового мультимедийного трафика. В идеальной сети пакеты, отправленные с постоянным интервалом, приходят с тем же интервалом; при наличии джиттеров интервалы между пакетами на принимающей стороне становятся неравномерными, что приводит к искажению последовательности воспроизведения потока. Джиттеры относятся к числу ключевых параметров качества обслуживания (QoS) и особенно критичны для приложений реального времени — IP-телефонии, видеоконференцсвязи, онлайн-игр и потокового вещания.
¶Причины возникновения
Джиттеры формируются под воздействием ряда факторов, действующих на разных уровнях сети:
- Конкуренция за канал связи. При передаче нескольких потоков данных через один физический канал пакеты вынуждены ждать своей очереди на отправку, что создаёт неравномерные задержки.
- Маршрутизация. Разные пакеты одного потока могут проходить по разным маршрутам и испытывать различные сетевые задержки.
- Переполнение буферов коммутаторов и маршрутизаторов. При кратковременных всплесках трафика пакеты накапливаются в очередях устройств, а затем отправляются «пачками».
- Обработка на узлах сети. Время, затрачиваемое маршрутизатором на инспекцию заголовков, применение правил фильтрации и преобразование кадров, может различаться для разных пакетов.
- Физические условия. В беспроводных сетях джиттеры вызываются многолучёвым распространением сигнала, интерференцией, изменением качества канала и применением механизмов повторной передачи (ARQ).
- Колебания нагрузки на конечных устройствах. Задержки на стороне отправителя или получателя — например, при обработке звука программным кодом — также вносят вклад в общую неравномерность.
¶Джиттеры и задержка
Джиттеры принято отличать от базовой задержки (латентности). Задержка — это время, необходимое пакету для прохождения от отправителя до получателя; она может быть большой, но при этом постоянной, и в таком случае поток воспроизводится корректно, просто с запаздыванием. Джиттеры же характеризуют именно изменчивость задержки: даже при небольшой средней латентности сильные колебания приводят к тому, что пакеты приходят раньше или позже ожидаемого момента. На практике эти параметры тесно связаны: чем выше джиттеры, тем больше должна быть глубина буфера приёма для их компенсации.
¶Влияние на приложения
Для приложений, работающих в реальном времени, джиттеры являются одним из основных источников деградации качества:
- IP-телефония (VoIP). При превышении джиттеров пороговых значений голосовые пакеты приходят с опозданием и выбрасываются, что проявляется в виде пропусков слогов, «рваного» звука и щелчков.
- Видеоконференцсвязь. Неравномерность доставки пакетов вызывает подвисание изображения, размытость и рассинхронизацию звука и видео.
- Онлайн-игры. В играх с жёсткими требованиями к отклику джиттеры приводят к «телепортации» объектов, промахам и ложным срабатываниям античит-систем.
- Потоковое видео. При высоких джиттерах плеер вынужден увеличивать буфер предзагрузки, что увеличивает время начала воспроизведения.
¶Методы измерения
Джиттеры измеряются в миллисекундах и характеризуются разными статистическими метриками. Наиболее распространённые — среднее абсолютное отклонение интервалов между пакетами, стандартное отклонение задержек и максимальное отклонение за измерительный интервал. Для сетей с гарантированным качеством обслуживания используется параметр Maximum Jitter (максимальный джиттер), определяемый рекомендациями ITU-T (например, G.114 для голосовой связи, где рекомендуемое значение не превышает 30 мс).
Инструментарий измерения включает утилиты ping, iperf, mtr, а также специализированные средства — например, PRTG Network Monitor, Wireshark с анализом RTP-потоков. В сетях VoIP джиттеры традиционно измеряется на приёмной стороне по разнице между ожидаемым и фактическим временем прихода каждого пакета.
¶Способы уменьшения
Основные методы борьбы с джиттерами:
- Буферизация на приёмной стороне (jitter buffer). Приёмник намеренно добавляет фиксированную или адаптивную задержку, накапливая пакеты и воспроизводя их с постоянным интервалом. Это наиболее распространённый способ; его недостаток — увеличение общей латентности.
- Приоритизация трафика (QoS). Механизмы DiffServ, MPLS и приоритетная очередьизация на коммутаторах позволяют голосовому и видео-трафику получать приоритет над файловыми передачами.
- Кодеки с устойчивостью к потерям. Современные аудио- и видеокодеки (Opus, H.264, H.265) включают механизмы избыточности, снижающие субъективное влияние джиттеров.
- Выделенные каналы связи. В корпоративных сетях для критичных приложений создаются виртуальные каналы с гарантированной полосой пропускания.
- Оптимизация маршрутизации. Использование протоколов с поддержкой инженерии трафика (TE) позволяет направлять чувствительные к джиттерам потоки по маршрутам с наименьшей изменчивостью задержек.
¶Нормативные значения
Рекомендуемые пороговые значения джиттеров зависят от типа приложения:
| Приложение | Рекомендуемый джиттер |
|---|---|
| IP-телефония (корпоративная) | до 30 мс |
| IP-телефония (массовая) | до 50 мс |
| Видеоконференцсвязь | до 40 мс |
| Онлайн-игры | до 20 мс |
| Потоковое аудио | до 100 мс |
Значения приведены ориентировочно и могут различаться в зависимости от используемых кодеков и требований конкретного сервиса.
Источники:
- ITU-T Recommendation G.114 — One-way transmission time
- RFC 3393 — IP Packet Delay Variation Metric for IP Performance Metrics
- Кроль М. Л., Стрельцов М. Б. «Сети передачи данных и телекоммуникации»
- ГОСТ Р 57580.1-2017 «Безопасность финансового рынка. Оценка качества обслуживания в сетях связи»
