Real-time Transport Protocol
Протокол RTP (
Протокол RTP переносит в своём заголовке данные, необходимые для восстановления аудиоданных или видеоизображения в приёмном узле, а также данные о типе кодирования информации (
RTP не имеет стандартного зарезервированного номера порта. Единственное ограничение состоит в том, что соединение проходит с использованием чётного номера, а следующий нечётный номер используется для связи по протоколу RTCP. Тот факт, что RTP использует динамически назначаемые адреса портов, создаёт ему трудности для прохождения межсетевых экранов, для обхода этой проблемы, как правило, используется STUN-сервер.
Установление и разрыв соединения не входят в список возможностей RTP, такие действия выполняются
протоколом).Описание протокола
RTP был разработан как протокол
Приложения, формирующие потоки реального времени, требуют своевременной доставки информации и для достижения этой цели могут допустить некоторую потерю пакетов. Например, потеря пакета в аудиоприложении может привести к доле секунды тишины, которая может быть незаметна при использовании подходящих алгоритмов скрытия ошибок.[2] Протокол TCP, хотя и стандартизирован для передачи RTP,[3] как правило, не используется в RTP-приложениях, так как надежность передачи в TCP формирует временные задержки. Вместо этого большинство реализаций RTP базируется на UDP. Кроме этого, существуют другие спецификации для транспортных протоколов SCTP и DCCP, но они мало распространены.[4][5]
Компоненты протокола
Спецификация RTP описывает четыре подпротокола:
- Протокол передачи данных, RTP, который взаимодействует с передачей данных реального времени. Информация, предоставляемая посредством этого протокола, включает в себя отметку времени (для синхронизации), последовательный номер (для детектирования потери и дублирования пакетов) и формат полезной нагрузки, который определяет формат кодирования данных, т.н. профиль данных RTP.
- Протокол контроля, QoS), обратной связи и синхронизации между медиапотоками. Занимаемая полоса пропускания RTCP мала в сравнении с RTP, обычно около 5 %.
- Управляющий сигнальный протокол, такой как SIP, H.323, MGCP или H.248. Сигнальные протоколы управляют открытием, модификацией и закрытием RTP-сессий между устройствами и приложениями реального времени.
- Управляющий протокол описания медиа, такой как Session Description Protocol или H.245, определяет профиль данных RTP для каждой из участников медиа-сессии
Сессии
RTP-сессия устанавливается для каждого потока мультимедиа. Сессия состоит из IP-адреса и пары портов для RTP и RTCP. Например, аудио- и видеопотоки будут иметь различные RTP-сессии, позволяющие приемнику для этого выделить конкретный поток.[6] Порты, которые образуют сессию, связываются друг с другом средствами других протоколов, таких как SIP (содержащий в своих сообщениях протокол SDP[7]) и 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
- STD 64. RTP: A Transport Protocol for Real-Time Applications. H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson. July 2003.
- STD 65. RTP Profile for Audio and Video Conferences with Minimal Control. H. Schulzrinne, S. Casner. July 2003.
- RTP: A Transport Protocol for Real-Time Applications
См. также
Ссылки
Примечания
- ↑ Daniel Hardy. Network (неопр.). — De Boeck Université, 2002. — С. 298.
- ↑ Colin Perkins, p.46
- ↑ RFC 4571
- ↑ Farrel, Adrian. The Internet and its protocols (неопр.). — Morgan Kaufmann, 2004. — С. 363. — ISBN 9781558609136.
- ↑ Ozaktas, Haldun M.; Levent Onural. THREE-DIMENSIONAL TELEVISION (неопр.). — Springer[англ.], 2007. — С. 366. — ISBN 9783540725312.
- ↑ Zurawski, Richard. RTP, RTCP and RTSP protocols // The industrial information technology handbook (англ.). — CRC Press, 2004. — P. 28—7. — ISBN 9780849319853.
- ↑ RFC 4566: SDP: Session Description Protocol, M. Handley, V. Jacobson, C. Perkins, IETF (July 2006)
- Perkins, Colin. RTP (неопр.). — Addison-Wesley, 2003. — С. 414. — ISBN 9780672322495.
- Peterson, Larry L.; Bruce S. Davie. Computer Networks (неопр.). — 4. — Morgan Kaufmann, 2007. — С. 806. — ISBN 9780123740137.
- RTP // Network Protocols Handbook (неопр.). — Javvin Technologies, 2005. — ISBN 9780974094526.
- RTP // Broadband Networks (неопр.). — Ministry of Human resources, India, 2008.