RTP

RTP- (Real-Time Transport Protocol) работает на уровне приложений (OSI - 7) и используется при передаче трафика реального времени, например для передачи голоса в VoIP, SIP.

Иерархия: RTP/UDP/IP

RTP - функционирует поверх протокола UDP (User Datagram Protocol), расположенного, в свою очередь, в стеке протоколов TCP/IP над протоколом IP. Таким образом, иерархия RTP/UDP/IP представляет собой своего рода транспортный механизм для речевого трафика.

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

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

К функциям кодирования/декодирования полей заголовка пакета RTP предъявляются следующие требования:

  1. поле "Версия" содержит номер версии формата заголовка пакета RTP (оконечное оборудование поддерживает версию 2 протокола RTP);
  2. поле "Признак дополнения пакета незначащими октетами" устанавливается в единицу, если длина пакета выровнена с помощью незначащих октетов. Выравнивание может требоваться при использовании алгоритмов шифрования информации, работающих с фиксированным размером пакета;
  3. поле "Флаг наличия дополнительного заголовка" устанавливается в единицу при наличии дополнительного заголовка. Дополнительный заголовок служит для передачи специальной информации пользователя;
  4. поле "Количество идентификаторов CSRC" указывает количество объединяемых потоков RTP;
  5. поле "Маркер" устанавливается в единицу для указания начала кадра;
  6. поле "Тип данных поля полезной нагрузки" идентифицирует вид информации, передаваемой в пакете RTP (аудио-, видео-);
  7. поле "Значение порядка следования пакетов" используется для определения потерянных пакетов. Начальное значение поля определяется случайным образом. Значение поля увеличивается на единицу при передаче очередного пакета. При достижении значения FFFFh поле обнуляется;
  8. поле "Счетчик времени" указывает временную отметку, позволяющую воспроизводить голосовую, видео- и мультимедиаинформацию;
  9. поле "Идентификатор SSRC" идентифицирует потоки RTP, принадлежащие одному вызову;
  10. поле "Список идентификаторов CSRC" содержит перечень источников потоков RTP.