Транспортный протокол в реальном времени

редактировать
Протокол для доставки аудио и видео по IP-сетям

Транспортный протокол реального времени (RTP ) - это сетевой протокол для доставки аудио. и видео по IP-сетям. RTP используется в системах связи и развлечений, которые включают потоковые мультимедиа, такие как телефония, приложения для видеоконференций, включая WebRTC, телевизионные услуги и веб-функции push-to-talk.

RTP обычно работает по протоколу дейтаграмм пользователя (UDP). RTP используется вместе с протоколом управления RTP (RTCP). В то время как RTP передает потоки мультимедиа (например, аудио и видео), RTCP используется для мониторинга статистики передачи и качества обслуживания (QoS) и помогает синхронизации нескольких потоков. RTP является одной из технических основ Voice over IP и в этом контексте часто используется вместе с протоколом сигнализации, таким как протокол инициации сеанса (SIP), который устанавливает соединения в сети.

RTP был разработан Рабочей группой Аудио-Видео Транспортной Группы Инженерной группы Интернета (IETF) и впервые опубликован в 1996 году как RFC 1889, который затем был заменен на RFC 3550 в 2003 году.

Содержание
  • 1 Обзор
  • 2 Профили и форматы полезной нагрузки
  • 3 Заголовок пакета
  • 4 Разработка приложений
  • 5 Стандарты
  • 6 См. Также
  • 7 Примечания
  • 8 Ссылки
  • 9 Внешние ссылки
Обзор

RTP разработан для сквозная, передача в реальном времени потокового мультимедиа . Протокол предоставляет возможности для компенсации джиттера и обнаружения потери пакетов и доставки вне очереди, которые являются общими, особенно во время передач UDP в IP-сети. RTP позволяет передавать данные в несколько пунктов назначения через многоадресную IP-адресацию. RTP считается основным стандартом для передачи аудио / видео в IP-сетях и используется с соответствующим профилем и форматом полезной нагрузки. Дизайн RTP основан на архитектурном принципе, известном как кадрирование на уровне приложений, где функции протокола реализуются в приложении, а не в стеке протоколов .

в реальном времени <88 операционной системы.>мультимедийные потоковые приложения требуют своевременной доставки информации и часто могут допускать некоторую потерю пакетов для достижения этой цели. Например, потеря пакета в аудиоприложении может привести к потере доли секунды аудиоданных, что можно сделать незаметным с помощью подходящих алгоритмов маскирования ошибок. Протокол управления передачей (TCP), хотя и стандартизирован для использования RTP, обычно не используется в приложениях RTP, поскольку TCP предпочитает надежность, а не своевременность. Вместо этого большинство реализаций RTP построено на Протоколе дейтаграмм пользователя (UDP). Другие транспортные протоколы, специально разработанные для мультимедийных сеансов, - это SCTP и DCCP, хотя по состоянию на 2012 год они не получили широкого распространения.

RTP был разработан Audio / Video Transport рабочая группа организации по стандартизации IETF. RTP используется вместе с другими протоколами, такими как H.323 и RTSP. Спецификация RTP описывает два протокола: RTP и RTCP. RTP используется для передачи мультимедийных данных, а RTCP используется для периодической отправки управляющей информации и параметров QoS.

Протокол передачи данных RTP передает данные в реальном времени. Информация, предоставляемая этим протоколом, включает отметки времени (для синхронизации), порядковые номера (для обнаружения потери пакетов и переупорядочения) и формат полезной нагрузки, который указывает кодированный формат данных. Протокол управления RTCP используется для обратной связи по качеству обслуживания (QoS) и синхронизации между медиапотоками. Пропускная способность трафика RTCP по сравнению с RTP мала, обычно около 5%.

Сеансы RTP обычно инициируются между взаимодействующими одноранговыми узлами с использованием протокола сигнализации, такого как H.323, протокол инициации сеанса (SIP), RTSP или Jingle (XMPP ). Эти протоколы могут использовать протокол описания сеанса для определения параметров сеансов.

Сеанс RTP устанавливается для каждого мультимедийного потока. Аудио- и видеопотоки могут использовать отдельные сеансы RTP, что позволяет приемнику выборочно принимать компоненты определенного потока. Конструкция RTP и RTCP не зависит от транспортного протокола. Приложения обычно используют UDP с номерами портов в непривилегированном диапазоне (от 1024 до 65535). Протокол передачи управления потоком (SCTP) и Протокол управления перегрузкой дейтаграмм (DCCP) могут использоваться, когда требуется надежный транспортный протокол. Спецификация RTP рекомендует четные номера портов для RTP и использование следующего нечетного номера порта для соответствующего сеанса RTCP. Один порт используется для RTP и RTCP в приложениях, которые мультиплексируют протоколы.

RTP используется мультимедийными приложениями в реальном времени, такими как передача голоса по IP, аудио по IP, WebRTC и Интернет-протокол телевидения

Профили и форматы полезной нагрузки

RTP предназначен для переноса множества мультимедийных форматов, что позволяет разрабатывать новые форматы без пересмотра стандарт RTP. С этой целью информация, требуемая конкретным приложением протокола, не включается в общий заголовок RTP. Для каждого класса приложений (например, аудио, видео) RTP определяет профиль и связанные форматы полезной нагрузки. Каждая реализация RTP в конкретном приложении требует спецификации профиля и формата полезной нагрузки.

Профиль определяет кодеки, используемые для кодирования данных полезной нагрузки, и их сопоставление с кодами формата полезной нагрузки в поле протокола Payload Type (PT) of заголовок RTP. Каждый профиль сопровождается несколькими спецификациями формата полезной нагрузки, каждая из которых описывает транспортировку определенных закодированных данных. Примеры форматов полезной звуковой нагрузки: G.711, G.723, G.726, G.729, GSM., QCELP, MP3 и DTMF, а примерами полезной нагрузки видео являются H.261, H. 263, H.264, H.265 и MPEG-1 / MPEG-2. Отображение аудио / видеопотоков MPEG-4 в пакеты RTP указано в RFC 3016, а полезные данные видео H.263 описаны в RFC 2429.

Примеры профилей RTP включают:

Заголовок пакета

пакеты RTP создаются на прикладном уровне и передаются на транспортный уровень для доставки. Каждая единица мультимедийных данных RTP, созданная приложением, начинается с заголовка пакета RTP.

Заголовок пакета RTP
СмещенияОктет0123
ОктетБит012345678910111213141516171819202122232425262728293031
00ВерсияPXCCMPTПорядковый номер
432Отметка времени
864Идентификатор SSRC
1296Идентификаторы CSRC....
12 + 4 × CC96 + 32 × CCИдентификатор заголовка расширения, зависящего от профиляДлина заголовка расширения
16 + 4 × CC128 + 32 × CCЗаголовок расширения....

Заголовок RTP имеет минимальный размер 12 байтов. После заголовка могут присутствовать необязательные расширения заголовка. За ним следует полезная нагрузка RTP, формат которой определяется конкретным классом приложения. Поля в заголовке следующие:

  • Версия : (2 бита) Указывает версию протокола. Текущая версия - 2.
  • P (заполнение) : (1 бит) Используется, чтобы указать, есть ли дополнительные байты заполнения в конце пакета RTP. Заполнение может использоваться для заполнения блока определенного размера, например, в соответствии с требованиями алгоритма шифрования. Последний байт заполнения содержит количество добавленных байтов заполнения (включая его самого).
  • X (Расширение) : (1 бит) Указывает на наличие заголовка расширения между заголовком и данными полезной нагрузки. Заголовок расширения зависит от приложения или профиля.
  • CC (счетчик CSRC) : (4 бита) Содержит количество идентификаторов CSRC (определенных ниже), следующих за SSRC (также определенным ниже).
  • M ( Marker) : (1 бит) Сигнализация, используемая на уровне приложения в зависимости от профиля. Если он установлен, это означает, что текущие данные имеют особое отношение к приложению.
  • PT (Тип полезной нагрузки) : (7 бит) Указывает формат полезной нагрузки и, таким образом, определяет ее интерпретацию приложением. Значения зависят от профиля и могут быть присвоены динамически.
  • Порядковый номер : (16 бит) Порядковый номер увеличивается для каждого отправленного пакета данных RTP и должен использоваться приемником для обнаружения потери пакета и учета нестандартная доставка. Начальное значение порядкового номера должно быть рандомизировано, чтобы затруднить атаки с известным открытым текстом на безопасный транспортный протокол в реальном времени.
  • Временная метка : (32 бита) Используется приемником для воспроизведения полученных отсчетов в соответствующее время и через соответствующие интервалы. Когда присутствует несколько медиапотоков, метки времени могут быть независимыми в каждом потоке. Детализация времени зависит от приложения. Например, аудиоприложение, которое производит выборку данных каждые 125 мкс (8 кГц, обычная частота дискретизации в цифровой телефонии), будет использовать это значение в качестве своего тактового разрешения. Для видеопотоков обычно используется частота 90 кГц. Гранулярность синхронизации - это одна из деталей, которая указывается в профиле RTP для приложения.
  • SSRC : (32 бита) Идентификатор источника синхронизации однозначно определяет источник потока. Источники синхронизации в одном и том же сеансе RTP будут уникальными.
  • CSRC : (32 бита каждый, количество записей указывается полем счетчика CSRC) Идентификаторы участвующих источников перечисляют участвующие источники в поток, который был сгенерирован из нескольких источников.
  • Расширение заголовка : (необязательно, присутствие указывается полем Extension) Первое 32-битное слово содержит идентификатор профиля (16 бит) и спецификатор длины (16 бит), который указывает длину расширения в 32-битных единицах, исключая 32 бита заголовка расширения. Далее следуют данные заголовка расширения.
Дизайн приложения

Функциональное мультимедийное приложение требует других протоколов и стандартов, используемых вместе с RTP. Такие протоколы, как SIP, Jingle, RTSP, H.225 и H.245, используются для инициирования, управления и завершения сеанса. Другие стандарты, такие как H.264, MPEG и H.263, используются для кодирования данных полезной нагрузки, как указано в соответствующем профиле RTP.

Отправитель RTP захватывает мультимедийные данные, затем кодирует, кадрирует и передает это как пакеты RTP с соответствующими отметками времени и увеличивающимися отметками времени и порядковыми номерами. Отправитель устанавливает поле типа полезной нагрузки в соответствии с согласованием соединения и используемым профилем RTP. Получатель RTP обнаруживает отсутствующие пакеты и может переупорядочить пакеты. Он декодирует медиа-данные в пакетах в соответствии с типом полезной нагрузки и представляет поток своему пользователю.

Стандарты документов
  • RFC 3550, Standard 64, RTP: A Транспортный протокол для приложений реального времени
  • RFC 3551, Standard 65, профиль RTP для аудио- и видеоконференций с минимальным контролем
  • RFC 4855, Регистрация типа носителя для форматов полезной нагрузки RTP
  • RFC 4856, Регистрация типа носителя для форматов полезной нагрузки в профиле RTP для аудио- и видеоконференций
  • RFC 7656, Таксономия семантики и механизмов для источников протокола передачи в реальном времени (RTP)
  • RFC 3190, формат полезной нагрузки RTP для 12-битного DAT Audio и 20 - и 24-битный линейный дискретизированный звук
  • RFC 6184, формат полезной нагрузки RTP для H.264 видео
  • RFC 3640, Формат полезной нагрузки RTP для передачи элементарных потоков MPEG-4
  • RFC 6416, формат полезной нагрузки RTP для MPEG-4 аудиовизуальных потоков
  • RFC 2250, формат полезной нагрузки RTP для MPEG1 / MPEG2 Video
См. Также
Примечания
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-03 09:54:46
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте