- •26. Принципы построения протокола rtp. Формат сообщений протокола rtp.
- •Принципы построения протокола rtp
- •( Примечание )
- •I Определение f
- •Формат сообщений протокола rtp
- •( Примечание
- •27. Назначение протокола rtcp. Типы сообщений протокола rtcp.
- •Назначение протокола rtcp
- •Типы сообщений протокола rtcp
- •28. Реализация специальных требований потоковых приложений. Протокол stcp управления передачей потоков.
I Определение f
Источником синхронизации называется участник сессии, который формирует временные метки и прикрепляет их к порциям оцифрованного потокового трафика.
В качестве источников синхронизации могут выступать как первичные источники трафика (например, видео- или аудиокодеки), так и вторичные источники (например, микшеры). Уже было отмечено, что микшеры выполняют функцию объединения нескольких потоков, принадлежащих к одной сессии, в единый поток. При выполнении этого преобразования сам микшер становится источником синхронизации, поскольку он прикрепляет к сгруппированным порциям трафика, поступающего от источников заполнения (Contributing Source), свои временные метки.
Для обеспечения однозначной идентификации каждого из участников сессии применяются сформированные случайным образом 32-разрядные числа. Следует отметить, что уникальность идентификатора должна быть обеспечена только в пределах данной сессии. Один узел может иметь разные идентификаторы для каждой из сессий, в которых он принимает участие.
Заголовок сообщения протокола RTP содержит следующие поля: идентификатор отправителя, указывающий источник принимаемых данных, отметку о времени генерирования пакета, информацию о порядке передачи, а также указание о характере содержимого пакета, например, о типе кодировки видеоданных.
Формат сообщений протокола rtp
Как уже было ранее отмечено, протокол RTP предназначен для передачи потоковых данных в реальном масштабе времени. Сообщения протокола RTP состоят из заголовка, в котором размещается управляющая информация, и поля нагрузки, в которое помещаются блоки передаваемых данных. Заголовки сообщений протокола RTP содержат информацию о порядке следования порций и временном положении передаваемых порций оцифрованных потоковых данных, с тем, чтобы обеспечить адекватное восстановление переданного сигнала на приемной стороне.
Каждое сообщение протокола RTP снабжается основным (фиксированным) заголовком, к которому, при необходимости, могут быть добавлены дополнительные поля, специфичные для конкретного приложения.
В табл. 5.2 представлена структура фиксированного заголовка сообщения протокола RTP.
Поле V предназначено для размещения номера версии протокола RTP. Номер текущей версии протокола — 2.
Таблица
5.2. Структура фиксированного заголовка
сообщения протокола RTP
Номер
поля
Содержание
поля
Номер
байта/ полубайта
Длина
поля в битах
1
V
— номер версии протокола RTP
0/0
2
2
Р
— признак заполнения
0/0
1
3
X
— признак расширения заголовка
о/о
1
4
СС
— количество использованных
источников заполнения (CSRC)
0/1
4
5
М
— признак маркера
1
1
6
РТ
— признак типа полезной- нагрузки
1
7
7
SEQUENCE
NUMBER
—
порядковый номер сообщения
2,
3
16
8
TIMESTAMP
—
метка времени
4—7
32
9
SSRC
IDENTIFIER
—
идентификатор источника синхронизации
8—11
32
10
CSRC
IDENTIFIER
—
идентификатор источника заполнения
>12
32
В поле Р размещается иризнак наличия заполнения в фиксированном заголовке сообщения протокола RTP. Этот признак сигнализирует о наличии заполняющих байтов в конце полезной нагрузки. Заполнение применяется в тех случаях, когда по требованию принимающего приложения размер полезной нагрузки устанавливается кратным целому числу байтов. В том случае, если в фиксированном заголовке сообщения протокола RTP бит Р установлен в 1, то последний байт этого сообщения содержит число заполняющих байтов.
Поле X предназначено для размещения признака расширения заголовка. Если в сообщении протокола RTP бит X установлен в 1, то за основным заголовком следует еще один дополнительный, используемый в экспериментальных расширениях протокола RTP.
Поле СС применяется для указания количества использованных источников заполнения. В этом поле содержится количество источников потоковых данных, передаваемых в настоящем сообщении протокола RTP.
В поле М размещается признак маркера. Назначение этого признака определяется типом полезной нагрузки. Бит маркера обычно используется для указания границ потока данных. В случае видеоизображения он задает конец кадра. При использовании в голосовых приложениях этот признак задает начало речи после периода молчания.
Поле РТ идентифицирует тип полезной нагрузки и формат данных. В этом поле, в частности, размещаются наименования кодеков, использованных для сжатия и шифрования полезной нагрузки. Как правило, отправитель использует только один тип полезной нагрузки в течение сеанса. Соответствие структуры поля полезной нагрузки и значения поля РТ определяется профилем приложения.
Поле SEQUENCE NUMBER используется для размещения текущего значения счетчика порядкового номера сообщения, значение которого увеличивается на единицу при передаче очередного сообщения RTP. Наличие порядкового номера позволяет обнаружить потерю сообщений или определить порядок следования нескольких сообщений, имеющих одинаковую метку времени.
