Interested Article - Real-time Transport Protocol
- 2020-09-29
- 1
Протокол 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 —
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
См. также
Ссылки
- (англ.)
Примечания
- Daniel Hardy. Network (неопр.) . — De Boeck Université, 2002. — С. .
- Colin Perkins, p.46
- Farrel, Adrian. (неопр.) . — Morgan Kaufmann , 2004. — С. 363. — ISBN 9781558609136 .
- Ozaktas, Haldun M.; Levent Onural. (неопр.) . — ISBN 9783540725312 . , 2007. — С. 366. —
- Zurawski, Richard. RTP, RTCP and RTSP protocols // (англ.) . — CRC Press , 2004. — P. . — ISBN 9780849319853 .
- : SDP: Session Description Protocol , M. Handley, V. Jacobson, C. Perkins, IETF (July 2006)
- Perkins, Colin. (неопр.) . — Addison-Wesley , 2003. — С. 414. — ISBN 9780672322495 .
- Peterson, Larry L.; Bruce S. Davie. (неопр.) . — 4. — Morgan Kaufmann , 2007. — С. 806. — ISBN 9780123740137 .
- // Network Protocols Handbook (неопр.) . — Javvin Technologies, 2005. — ISBN 9780974094526 .
- // Broadband Networks (неопр.) . — Ministry of Human resources, India, 2008.
- 2020-09-29
- 1