Транспортные протоколы находятся на четвертом уровне модели взаимодействия открытых систем — OSI. Такая модель, одобренная Международной организацией по стандартизации, служит шаблоном, описывающим стек сетевых протоколов. На этом уровне они обеспечивают качественное соединение, надежную трансляцию данных.
Транспортные протоколы гарантируют предоставление информации, необходимой для передачи файлов, поддержки критически важных приложений. Некоторые протоколы обладают дополнительными возможностями: восстановлением после ошибок, управлением потоком, поддержкой повторной передачи.
Для чего используются протоколы передачи видео
Приведенная ниже диаграмма описывает четыре этапа цепочки передачи видео в онлайн-режиме:
Существуют проприетарные протоколы, принадлежащие одной компании и обычно требующие лицензии для использования клиентами или сторонними поставщиками.
Подобный протокол требует постоянных ежемесячных платежей, зависит от поставщика (не взаимодействует с устройствами других производителей) и рискует остаться «бесхозным» в случае прекращения выпуска линейки продуктов поставщиком или ликвидации бизнеса.
Протоколы транспортного уровня
TCP — протокол управления передачей
Получатель посылает сообщения обратно отправителю, сигнализируя об их приеме. Если отправитель не дождется ответа, он отправляет пакеты повторно, чтобы убедиться, что они дошли до получателя. Из-за этих подтверждений надежность TCP возрастает. Пакеты также проходят проверку на наличие ошибок.
Передача через TCP направлена на сохранение целостности данных, а значит отправляемые с помощью TCP пакеты, отслеживаются таким образом, чтобы исключить потерю или повреждение данных при передаче. Такой подход приводит к увеличению временных задержек при ожидании неупорядоченных сообщений или повторной передаче потерянных, что делает протокол непригодным для приложений, работающих в реальном времени.
UDP — протокол пользовательских дейтаграмм
Протоколы прикладного уровня для потокового видео
RTMP — протокол обмена сообщениями в реальном времени
Этот протокол, выполненный на базе TCP, представляет собой технологию непрерывной потоковой трансляции, основанной на сообщаемых получателем подтверждениях (АСК). Однако последние не уходят отправителю немедленно, что поддерживает сниженный уровень обратного трафика. Отчет об ACK или NACK (отрицательных подтверждениях) отправляется только после получения последовательности пакетов. Если в этой последовательности есть потерянные пакеты, вся цепочка будет передана повторно, начиная с последнего ACK. Этот процесс может значительно увеличить сквозную задержку.
Также RTMP не поддерживает HEVC-кодировку или расширенные разрешения, поскольку не используется при высоких скоростях передачи данных из-за ограничений пропускной способности. RTMP представлен нескольким вариантами, включая RTMPS, который работает через соединение TLS/SSL.
RTP — транспортный протокол реального времени
RTP также функционирует как транспортный протокол, используемый WebRTC — открытым одноранговым протоколом с JavaScript API для обмена видео между браузерами. Хотя WebRTC хорошо подходит для видеоконференций между небольшими группами или многоадресной потоковой передачи внутри закрытой сети, его возможности масштабирования и надежной потоковой передачи качественного видео ограничены.
RTSP — протокол потоковой передачи в реальном времени
SRT — безопасная, надежная передача видео
Технология имеет дополнительные функции, включая встроенное шифрование AES, поэтому управление безопасностью потока происходит на уровне канала. Это также позволяет пользователям легко обходить брандмауэры на протяжении всего рабочего процесса, поддерживая режимы отправки и получения, в отличие от RTMP и HTTP, функционирующего только в одном направлении. Кроме того, SRT может объединять несколько потоков видео, аудио и данных для поддержки сложных рабочих процессов, что упрощает работу сетевых администраторов. В модуль отправителя / получателя добавлена возможность определения производительности сети на предмет задержки, потери пакетов, джиттера и доступной полосы пропускания. Расширенные интеграции SRT могут использовать эту информацию для управления запуском потока или адаптации конечных точек к изменяющимся условиям сети.
WebRTC — веб-связь в режиме реального времени
WebRTC поддерживают большинство основных браузеров, включая Microsoft Edge, Mozilla Firefox и Google Chrome. Технология используется для работы популярных приложений с видеочатом, таких как Microsoft Teams, Facebook Messenger и Google Hangouts.
HLS — прямая трансляция HTTP
До попадания на видеоплеер данные HLS доставляются с веб-сервера или исходного сервера (часто через CDN). Видеоконтент HLS разбивается на отдельные фрагменты продолжительностью 10 секунд, которые дублируются, кодируются параллельно с различными битрейтами, разрешениями (или профилями). В качестве адаптивного протокола битрейта видеоплеер ищет изменения в условиях пропускной способности. При наличии колебаний устройство может плавно переключаться на наиболее подходящий в данный момент профиль ABR. HLS поддерживает видео, зашифрованное с помощью кодеков H.264 или H.265 (HEVC).
Теперь, когда технология Adobe Flash устарела, HLS стала основным методом доставки видео через Интернет с поддержкой основными веб‑браузерами, медиаплеерами, мобильными устройствами, серверами, телеприставками. Как технология Apple, HLS выступает основным протоколом доставки для устройств iOS.
MPEG-DASH — динамическая адаптивная потоковая передача по HTTP
MPEG-DASH не зависит от кодека, то есть не ограничивается использованием H.264 или HEVC. Технология поддерживает экономически выгодные кодеки, такие, как VP8 или VP9, которые используются для высококачественного вещания с низким уровнем битрейта. Как протокол ABR, выступающий альтернативой HLS, MPEG-DASH широко применяется на устройствах Android.