Interested Article - Real-time Transport Protocol

Протокол RTP ( англ. Real-time Transport Protocol ) работает на прикладном уровне (OSI - 7) и используется при передаче трафика реального времени. Протокол был разработан Audio-Video Transport Working Group в IETF и впервые опубликован в 1996 году как ( является устаревшим с момента выхода в 2003 году).

Протокол RTP переносит в своём заголовке данные, необходимые для восстановления аудиоданных или видеоизображения в приёмном узле, а также данные о типе кодирования информации ( JPEG , MPEG и т. п.). В заголовке данного протокола, в частности, передаются временная метка и номер пакета. Эти параметры позволяют при минимальных задержках определить порядок и момент декодирования каждого пакета, а также интерполировать потерянные пакеты.

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

Установление и разрыв соединения не входят в список возможностей RTP, такие действия выполняются сигнальным протоколом (например, RTSP или SIP протоколом).

Описание протокола

RTP был разработан как протокол реального времени , из конца в конец (end-to-end), для передачи потоковых данных . В протокол заложена возможность компенсации джиттера и обнаружения нарушения последовательности пакетов данных — типичных событий при передаче через IP-сети. RTP поддерживает передачу данных для нескольких адресатов через Multicast . RTP рассматривается как основной стандарт для передачи голоса и видео в IP-сетях и совместно с кодеками.

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

Компоненты протокола

Спецификация RTP описывает четыре подпротокола:

  • Протокол передачи данных, RTP, который взаимодействует с передачей данных реального времени. Информация, предоставляемая посредством этого протокола, включает в себя отметку времени (для синхронизации), последовательный номер (для детектирования потери и дублирования пакетов) и формат полезной нагрузки, который определяет формат кодирования данных.
  • Протокол контроля, RTCP , используемый для определения качества обслуживания ( QoS ), обратной связи и синхронизации между медиапотоками. Занимаемая полоса пропускания RTCP мала в сравнении с RTP, обычно около 5 %.
  • Управляющий сигнальный протокол, такой как SIP , H.323 , MGCP или H.248 . Сигнальные протоколы управляют открытием, модификацией и закрытием RTP-сессий между устройствами и приложениями реального времени.
  • Управляющий протокол описания медиа, такой как Session Description Protocol .

Сессии

RTP-сессия устанавливается для каждого потока мультимедиа. Сессия состоит из IP-адреса и пары портов для RTP и RTCP. Например, аудио- и видеопотоки будут иметь различные RTP-сессии, позволяющие приемнику для этого выделить конкретный поток. Порты, которые образуют сессию, связываются друг с другом средствами других протоколов, таких как SIP (содержащий в своих сообщениях протокол SDP ) и RTSP (используя SDP в методе Setup). В соответствии со спецификацией, RTP не имеет стандартного зарезервированного номера порта. Единственное ограничение состоит в том, что соединение проходит с использованием чётного номера, а следующий нечётный номер используется для связи по протоколу RTCP . RTP и RTCP обычно используют непривилегированные UDP-порты (16k-32k), но могут использовать и другие порты, поскольку сам протокол RTP независим от транспортного уровня.

Структура пакета

+ Биты 0-1 2 3 4-7 8 9-15 16-31
0 Ver. P X CC M PT Порядковый номер
32 Метка времени
64 SSRC-идентификатор
96, если CC>0 [CSRC-идентификаторы]
96+(CC×32), если X=1 [Заголовок расширения — определённое профилем значение] [Заголовок расширения — количество блоков данных по 32 бита (EHL)]
96+(CC×32)+32 [Заголовок расширения — блоки данных]
96+(CC×32)+X*(32+32×EHL)
Данные
если P=1 Заполнение (Padding data) L

0-1  — Ver . (2 бита) указывает версию протокола. Текущая версия — 2.
2  — P (один бит) используется в случаях, когда RTP-пакет дополняется пустыми байтами на конце.
3  — X (один бит) используется для указания расширений протокола, задействованных в пакете.
4-7 — CC (4 бита) содержит количество CSRC-идентификаторов, следующих за постоянным заголовком.
8  — M (один бит) используется на уровне приложения и определяется профилем. Если это поле установлено, то данные пакета имеют какое-то особое значение для приложения.
9-15  — PT (7 бит) указывает формат полезной нагрузки и определяет её интерпретацию приложением.
64-95 — SSRC указывает источник синхронизации.
EHL (Extension Header Length) — количество 32-битных слов в блоке данных расширения заголовка.
L — последний байт в пакете, определяющий длину области заполнения в байтах (используется для выравнивания в последнем пакете).

Спецификация RTP

См. также

Ссылки

  • (англ.)

Примечания

  1. Daniel Hardy. Network (неопр.) . — De Boeck Université, 2002. — С. .
  2. Colin Perkins, p.46
  3. Farrel, Adrian. (неопр.) . — Morgan Kaufmann , 2004. — С. 363. — ISBN 9781558609136 .
  4. Ozaktas, Haldun M.; Levent Onural. (неопр.) . — (англ.) , 2007. — С. 366. — ISBN 9783540725312 .
  5. Zurawski, Richard. RTP, RTCP and RTSP protocols // (англ.) . — CRC Press , 2004. — P. . — ISBN 9780849319853 .
  6. : SDP: Session Description Protocol , M. Handley, V. Jacobson, C. Perkins, IETF (July 2006)
Источник —

Same as Real-time Transport Protocol