Почему видеозвонок не может просто ждать каждый пакет
При передаче голоса и видео данные разбиваются на небольшие пакеты. По сети они идут разными маршрутами и могут задерживаться на разное время: один пакет приходит почти сразу, следующий — заметно позже. Если воспроизвести их немедленно, звук будет рваться, а изображение — застывать или перескакивать.
Обычная задержка — это время пути данных до получателя. Джиттер — разброс этого времени: насколько сильно меняются интервалы между прибывающими пакетами. Даже при приемлемой средней задержке большой разброс мешает собрать непрерывный поток.
Буфер сглаживает скачки — ценой ожидания
Чтобы скрыть неровность доставки, приложение ненадолго складывает пакеты в буфер — временный запас данных. Оно воспроизводит их с ровным темпом, даже если сеть доставила их неравномерно. Запас позволяет дождаться опоздавшего пакета и поставить его на место.
Но буфер не может ждать бесконечно. Если пакет приходит уже после того, как приложению пора его воспроизвести, оно может пропустить его или использовать неполные данные. Тогда появляются щелчки и провалы в звуке, а видео может терять кадры. Увеличение буфера часто делает картинку и звук плавнее, но добавляет задержку: собеседник слышит ответ позже, а действие в игре отображается не сразу.
Почему помеха заметнее в разговоре
Для скачанного фильма приложение обычно может подождать, пока загрузится следующий фрагмент. В видеозвонке такой запас ограничен: разговор должен оставаться почти синхронным, иначе участники начинают перебивать друг друга. Поэтому системе приходится выбирать компромисс между плавностью и оперативностью.
Именно поэтому стабильность доставки важна не меньше скорости соединения: быстрый канал может передавать много данных, но если пакеты приходят рывками, приложению всё равно приходится выбирать между короткими паузами и заметным опозданием.






