Транспортный протокол передачи данных в реальном времени

Опубликовано в Технологии > Серверные технологии Продолжение

В сети Internet для решения проблем, связанных с нарушением порядка доставки дейтаграмм и неравномерного интервала между их поступлением, применяется транспортный протокол передачи данных в реальном времени (RTP — Real-time Transport Protocol). Как и можно было предположить, каждый пакет RTP включает и порядковый номер, и отметку времени, которые используются получателем для управления воспроизведением. Поскольку протокол RTP должен быть достаточно универсальным для поддержки широкого класса приложений, в нем не определяется точная интерпретация отметки времени, скорость выборки данных или метод кодировки. Вместо этого в протоколе RTP определен только заголовок постоянного формата, который должен находиться в начале каждого пакета, и предусмотрена возможность определить формат пакета, кодировку данных и назначение отдельных частей тела пакета в отдельной спецификации. На рис. 28.1 показаны поля в заголовке RTP с постоянным форматом. Порядок приема на курсы. Недорогая переподготовка специалистов за два месяца. Новые знания и умения.

Заголовок с постоянным форматом, который находится в начале каждого пакета

В спецификации протокола RTP определено назначение двух полей заголовка, которые применяются при обработке каждого входящего пакета. Двухбитовое поле VER обозначает версию протокола; текущей версией является версия 2, а 16-битовое поле порядкового номера позволяет программному обеспечению RTP расставлять полученные пакеты по порядку. Начальный порядковый номер для любого сеанса выбирается случайным образом по двум причинам. Во-первых, случайный выбор порядкового номера позволяет исключить воздействие пакетов, относящихся к другому сеансу; эта проблема связана с тем, что пакеты одного сеанса, задержавшиеся в сети, могут быть приняты как относящиеся к другому сеансу. Во-вторых, применение начального порядкового номера, выбранного случайным образом, повышает степень защиты, поскольку затрудняет для взломщиков получение информации о порядковых номерах пакетов.

Интерпретация большинства остальных полей в заголовке RTP зависит от семибитового поля PTYPE, которое определяет тип данных пакета. Например, тип данных пакета 0 служит для обозначения одной из кодировок аудиоинформации, РСМ (Pulse-Code Modulation — импульсно-кодовая модуляция). При использовании некоторых других типов данных пакета данные должны передаваться в виде блоков постоянного размера. Если пакеты шифруются, то для реализации некоторых схем шифрования также должны использоваться блоки данных постоянного размера. В Подобных случаях для обозначения того, применялось ли дополнение нулями для увеличения размера пакета до необходимой длины, служит бит Р (сокращение от padding); последний октет заполнения содержит число, указывающее длину заполнения. При использовании некоторых других типов данных пакета выполняется маркировка; для этой цели предназначен бит М (сокращение от marker). Например, при передаче видеоинформации бит М служит для маркировки начала фрейма.

Для правильного определения времени воспроизведения данных в пакете применяется 32-битовое поле с отметкой времени. Значение отметки времени соответствует тому моменту, когда была осуществлена выборка первого октета данных в пакете. Еще более важно то, что отправитель должен постоянно увеличивать показания часов, которые служат для формирования отметки времени, даже если входной сигнал не распознается и данные не передаются. Это позволяет отправителю не вырабатывать ненужные пакеты во время отсутствия сигнала, а получатель по отметке времени очередного пакета может определить, какую длину должна иметь пауза во время воспроизведения.

Спецификация протокола RTP указывает, что начальная отметка времени для сеанса должна быть выбрана случайным образом, но при этом она не определяет единицы измерения, применяемые для формирования значения отметки времени, или точную интерпретацию этого значения. Вместо этого спецификация RTP позволяет устанавливать точность показаний часов в соответствии с типом данных пакета. Это позволяет выбрать точность синхронизации ввода и вывода сигнала с учетом типа приложения. Например, при передаче аудиоинформации по протоколу RTP целесообразно выбрать частоту формирования логических отметок времени, равную частоте выборки аудиоинформации. Однако при передаче видеоинформации для обеспечения бесперебойного воспроизведения частота формирования отметок времени должна в несколько раз превышать частоту кадров. И наконец, стандарт RTP допускает наличие в двух или нескольких пакетах одного и того же значения отметки времени, если выборка содержащейся в них информации осуществлялась в одно и то же время. Кроме того, повторяющиеся значения отметки времени могут, например, возникать при разбиении крупного кадра на несколько мелких пакетов. Поскольку кадр регистрируется с привязкой к одному моменту времени, то значение отметки времени в каждом из пакетов должно быть одинаковым.

Похожие статьи