Задержка, джиттер и потери пакетов: что портит голос
Опубликовано
«Интернет отличный, спидтест показывает 300 мегабит, а голос всё равно рвётся» — это не парадокс и не поломка спидтеста. Голосу нужны совсем другие свойства канала, чем скачиванию файлов, и ни одно из них тест скорости не измеряет. Разберём три числа, которые действительно определяют качество разговора, и что с каждым из них можно сделать.
Почему скорость почти ни при чём
Голосовой поток — это примерно 20–40 килобит в секунду на человека. Даже созвон на десятерых укладывается в полмегабита. На фоне трёхсот мегабит это статистическая погрешность: канал, который «не тянет» голос по скорости, встречается разве что на очень плохой мобильной связи.
Спидтест меряет пропускную способность — сколько данных пролезает за секунду, если лить их сплошным потоком. Голос устроен противоположным образом: маленькие пакеты, каждые 20 миллисекунд, и каждый обязан приехать вовремя. Опоздавший пакет бесполезен: момент, в который его нужно было воспроизвести, уже прошёл.
Поэтому качество голоса определяют три других числа.
Задержка
Время, за которое звук доезжает от вашего микрофона до чужих наушников. Складывается из захвата и кодирования, пути по сети, буферизации на приёме и воспроизведения.
Ориентиры, которые стоит держать в голове:
- до 150 мс — разговор ощущается живым, паузы естественные;
- 150–300 мс — заметно, начинаются наложения реплик;
- свыше 400 мс — разговор превращается в рацию: люди перебивают друг друга, потом одновременно извиняются и замолкают.
Существенная часть задержки — физика. Свет в оптоволокне идёт примерно 200 километров за миллисекунду, и путь Москва — Франкфурт — Москва даёт около 40 мс только на дорогу. Отсюда практический вывод: географическое расположение сервера важнее, чем тариф. Созвон через сервер на другом континенте будет неудобным при любой скорости.
Джиттер
Разброс задержки. Если пакеты уходят строго каждые 20 миллисекунд, а приходят через 18, 25, 19, 40 — это джиттер.
Именно он, а не средняя задержка, отвечает за ощущение «голос дёргается». Средние 60 мс с разбросом ±5 звучат идеально; средние 60 мс с разбросом ±80 — рвано.
Борются с ним буфером: приёмная сторона накапливает немного звука, чтобы сгладить неравномерность. Буфер адаптивный — растёт, когда джиттер увеличивается. Отсюда неприятный размен: чем больше джиттер, тем большую задержку приходится принимать, чтобы речь оставалась непрерывной. Если буфер оказался мал, недостающие куски заменяются интерполяцией — это и есть тот металлический призвук на месте пропавшего слога.
Главный бытовой источник джиттера — переполненная очередь на домашнем роутере. Кто-то в соседней комнате запускает загрузку, очередь забивается, и голосовые пакеты ждут своей очереди неравномерно.
Потери пакетов
Доля пакетов, которые не доехали вовсе.
- до 1% — практически незаметно, современные кодеки восстанавливают;
- 1–3% — слышны редкие щелчки и проглоченные звуки;
- свыше 5% — разговор рассыпается.
Здесь принципиальное отличие голоса от всего остального трафика. Веб-страница или файл идут по TCP: потерянный пакет запрашивается заново, вы этого не замечаете, кроме нескольких лишних миллисекунд. Голос идёт по UDP, и переспрашивать некогда — пока пакет доедет вторым заходом, его время воспроизведения давно прошло.
Поэтому потери маскируют, а не восстанавливают: по соседним пакетам достраивают правдоподобное продолжение. На коротких пропусках это работает хорошо; на длинных серии подряд — уже нет.
Что действительно улучшает картину
По убыванию эффекта.
Кабель вместо Wi-Fi. Самая скучная и самая действенная мера. Wi-Fi — это разделяемая среда с повторными передачами на канальном уровне, и именно они дают тот самый джиттер. Микроволновка, соседская точка доступа на том же канале, стена — всё это превращается в разброс задержки.
Если только Wi-Fi — то 5 ГГц и поближе к точке. Диапазон 2,4 ГГц забит всем подряд: другими сетями, Bluetooth, бытовой техникой.
Проверить, что канал не занят. Загрузки, облачная синхронизация, обновления, стриминг видео в соседней комнате — всё это забивает очередь на роутере. Голос страдает первым, потому что его пакеты маленькие и частые.
Приоритизация трафика на роутере. Если в веб-интерфейсе есть QoS или Smart Queue Management — включите. Это ровно тот случай, для которого такие настройки существуют.
Другой канал целиком. Если на мобильном интернете голос идёт нормально, а на домашнем нет, дело в пути до серверов, и настройки приложения тут не изменят ничего.
Про VPN
VPN — первое, что советуют, и с голосом он работает хуже, чем с текстом. Причин три.
Задержка складывается. Трафик идёт до VPN-сервера, оттуда до медиасервера и обратно. Лишние 60–150 мс в каждую сторону поверх исходных — и разговор переезжает в категорию «рация».
TCP поверх TCP. Многие VPN, которые «хорошо работают», заворачивают всё в TCP или TLS, чтобы не выделяться в трафике. Для голоса это худший из возможных вариантов: поверх потерь начинают работать сразу два механизма переотправки, и вместо короткого щелчка получается секундный провал.
Общий сервер перегружен. Бесплатные и дешёвые VPN делят канал между всеми. Ночью работает, в вечерний час пик — нет.
Если VPN всё-таки нужен, для голоса выбирайте протокол поверх UDP (WireGuard и подобные) и сервер географически ближе.
Как понять, что дело именно в сети
Три признака, каждый из которых указывает на канал, а не на устройство:
- Текст работает, голос — нет. Чат идёт по TCP на небольшое число известных адресов, голос — по UDP на медиасерверы. Разное поведение при одном соединении означает, что проблема на пути голосового трафика.
- Плохо слышно всех сразу. Если рвётся один конкретный участник, проблема у него. Если все — у вас.
- Спидтест хороший. Ровно та комбинация, с которой начинается эта статья: пропускная способность в порядке, а потери и джиттер — нет.
Диагностическая мелочь, которая экономит время: попробуйте тот же созвон с телефона по мобильному интернету, стоя рядом с компьютером. Если там всё хорошо — виноват домашний канал или роутер, и дальше искать надо там, а не в настройках приложения.
Если же голос не рвётся, а просто не доходит — микрофон, скорее всего, не захватывается вообще. Это другая история: пошаговая диагностика микрофона.