Протокол RTP (Real-time Transport Protocol) – это сетевой протокол, который используется для передачи аудио и видео данных в реальном времени через Интернет. RTP обеспечивает передачу данных с минимальной задержкой и потерями, что делает его идеальным для потоковых мультимедийных приложений, таких как VoIP (голос по IP).Протокол был разработан Audio-Video Transport Working Group в IETF и впервые опубликован в 1996 году как RFC 1889 (RFC 1889 является устаревшим с момента выхода RFC 3550 в 2003 году)
RTP работает в паре с протоколом RTCP (Real-time Control Protocol), который отвечает за управление и мониторинг качества передачи данных. Вместе эти протоколы обеспечивают передачу аудио и видео данных с низкой задержкой и высоким качеством.
Протокол RTP используется в различных приложениях, включая VoIP телефонию, видеоконференции, потоковое вещание и игровую передачу данных. Он обеспечивает надежную и эффективную передачу мультимедийных данных через сеть Интернет.
Протокол RTP переносит в своём заголовке данные, необходимые для восстановления аудиоданных или видеоизображения в приёмном узле, а также данные о типе кодирования информации (JPEG, MPEG и т. п.). В заголовке данного протокола, в частности, передаются временная метка и номер пакета. Эти параметры позволяют при минимальных задержках определить порядок и момент декодирования каждого пакета, а также интерполировать потерянные пакеты.
RTP не имеет стандартного зарезервированного номера порта. Единственное ограничение состоит в том, что соединение проходит с использованием чётного номера, а следующий нечётный номер используется для связи по протоколу RTCP. Тот факт, что RTP использует динамически назначаемые адреса портов, создаёт ему трудности для прохождения межсетевых экранов(NAT), для обхода этой проблемы, как правило, используется 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 (Real-time Transport Protocol):
1. Обеспечивает передачу потоковых данных в реальном времени, таких как аудио и видео.
2. Поддерживает многие форматы сжатия данных.
3. Имеет механизмы для управления задержкой и джиттером данных.
4. Обеспечивает возможность определения порядка пакетов данных и их временных меток.
5. Поддерживает мультикастинг и широковещательную передачу данных.
Недостатки протокола RTP:
1. Не имеет механизмов обеспечения надежности доставки данных. В случае потери пакетов, протокол не предусматривает их повторную передачу.
2. Не обеспечивает шифрование данных, что может привести к утечке конфиденциальной информации при передаче чувствительных данных.
3. Требует дополнительных протоколов для управления качеством обслуживания (QoS) и обеспечения безопасности передачи данных.