- •Глава 2
- •ПРОТОКОЛЫ МУЛЬТИМЕДИЙНЫХ ПРИЛОЖЕНИЙ
- •2.1. Общие принципы формирования пакетов
- •2.1.1. Формирование речевых пакетов. Рекомендации G.711, G.729, G.723, G.726
- •2.2. Понятие о качестве обслуживания
- •2.2.1. Параметры качества обслуживания
- •2.2.2. Дозирование и выравнивание трафика
- •2.2.3. Предотвращение перегрузки
- •2.2.4. Обслуживание очередей
- •2.3. Классы сетевого качества обслуживания
- •2.3.1. Интегральное обслуживание
- •2.3.2. Дифференцированное обслуживание
- •2.3.3. Технология коммутация по меткам
- •2.4. Сопряжение сетей коммутации каналов и пакетов
- •2.4.1. Протокол управления шлюзами
- •2.4.2. Транспортный протокол реального времени
- •2.5. Сеть на основе протокола H.323
- •2.5.1. Общие сведения
- •2.5.2. Канал регистрации, доступа и статуса. Обнаружение менеджера зоны, регистрация, определение местоположения, запрос доступа, определения состояния.
- •2.5.3. Канал управления соединением
- •2.5.4. Канал управления передачей
- •2.5.5. Дополнительные виды обслуживания
- •2.5.6. Сценарий соединения с участием менеджера зоны
- •2.6. Обеспечение безопасности в сети
- •2.6.2. Методы защиты информации
- •2.6.3. Обеспечение безопасности на сетевом уровне
- •2.6.4. Обеспечение безопасности на представительном и прикладном уровнях
- •2.7. Сеть на основе протокола SIP
- •2.7.1. Общие сведения
- •2.7.2. Регистрация абонентов
- •2.7.3. Установление соединения
- •2.7.4. Дополнительные виды обслуживания
- •2.8. Протокол управления передачей потока
Глава 2 |
ПРОТОКОЛЫ МУЛЬТИМЕДИЙНЫХ ПРИЛОЖЕНИЙ |
______________________________________________________________________________
(DeleteConnection, DLCX). Шлюз разрушает IP-соединение и возвращает подтверждение об исполнении. Combo Switch, в свою очередь, подтверждает получение сообщения REL ответным сообщением RLC. Все задействованные устройства возвращаются в исходное состояние.
2.4.2. Транспортный протокол реального времени
Для передачи мультимедийных приложений реального времени, в том числе речевых пакетов, используется транспортный протокол реального времени (Real time Transport Protocol, RTP) [RFC 3550, STD 64]. Местоположение в стеке протоколов и наименование полей RTP изображено на рис. 2.18. Порядок передачи бит кадра: слева направо/снизу вверх, номер порта – динамический.
|
|
|
Данные (Data) |
|
Лист идентификаторов нагрузки (Contributing Source (CSRC) identifiers) |
||||
Идентификатор источника (Synchronization Source (SSRC) identifier) |
||||
|
|
|
Временной штамп (Timestamp) |
|
Версия P X |
Число |
M |
Тип нагрузки |
Порядковый номер пакета |
(Ver) |
источников |
|
(PT) |
(Sequence number) |
|
(CC) |
|
|
|
4 уровень (UDP)
3 уровень
2 уровень
1 уровень
Рис. 2.18. Местоположение и формат RTP
Назначение полей сообщения следующее.
Версия (Version) – определяет версию протокола, длина 2 бита (Version=2).
Бит заполнения (Padding, P) – устанавливается в 1, если в поле полезной нагрузки (6-й уровень) внесены лишние дополнительные байты. Число внесенных байт содержится в последнем байте заполнения.
Бит расширения (Extension, X) – устанавливается в 1, если используется расширенный заголовок при экспериментальных расширениях RTP.
Число источников (Contribution Sources Count, CC) – указывает на число используемых источников, участвующих в формировании поля полезной нагрузки, длина 4 бита. Устанавливается в 0 при соединении “точка-точка”.
Бит маркера (Marker, M) – устанавливается в 1 при наступлении значимого события, например, при окончание кадра.
Тип нагрузки (Payload Type, PT) – длина 7 бит. Указывает формат и способ кодирования/декодирования нагрузки: 0 – G.711m, 3 – GSM 13 Кбит/с, 4 – G.723, 8 – G.711a, 9 – G.722, 14 – MPEG Audio, 18 – G.729 и т.д.
Порядковый номер пакета (Sequence number) – начинается со случайного числа, увеличиваемого на 1 в каждом последующем пакете, длина 16 бит.
Временной штамп (Timestamp) – начинается со случайного числа, монотонно и линейно увеличиваемого во времени, длина 32 бита. Задает последовательность воспроизведения Данных (Data). Генерируется локальным счетчиком, входная частота которого зависит от типа нагрузки. Например, для аудио приложения входная частота равна частоте дискретизации, при времени формировании пакета 20 мс длиной в 160 байт каждое последующее значение штампа увеличивается на 160 единиц. Используется для вычисления емкости приемного буфера, компенсирующий разброс времени прихода пакетов относительно среднего значения.
125
Ю.Ф.Кожанов, Колбанев М.О ИНТЕРФЕЙСЫ И ПРОТОКОЛЫ СЕТЕЙ СЛЕДУЮЩЕГО ПОКОЛЕНИЯ
______________________________________________________________________________
Идентификатор источника (Synchronization Source identifier, SSRC) – случайное уникальное число, идентифицирующее источник нагрузки. При конференции принимает значение идентификатора устройства конференцсвязи.
Лист идентификаторов нагрузки (Contributing Source identifiers, CSRC) –
опциональное поле списка идентификаторов источников, участвующих в формировании пакета, например, при конференции. Включает от 0 (при СС=0) до 15 полей длиной по 32 бита. Кажый источник имеет свое поле нагрузки. При конференции в поле SSRC помещается идентификатор устройства конференцсвязи, а в поле CSRC – идентификатор(ы) активного абонента.
Данные (Data) – содержит полезную нагрузку (речь), закодированную в соответствии с полем Тип нагрузки. Для каждого участника конференции создается свой поток с требуемым способом кодирования.
Протокол управления протоколом реального времени (Real time Control Protocol, RTCP) используется только совместно с RTP. Служит для рассылки источникам информации статистики качества прохождения пользовательской информации по протоколу RTP. Местоположение RTCP в стеке протоколов аналогично рис. 2.18, номер порта – динамический.
Имеется следующие типы RTCP-сообщений.
Отчет отправителя (Sender Report, SR) используется для передачи статистики от активных отправителей.
Отчет получателя (Receiver Report, RR) используется для передачи статистики от участников, которые не являются активными отправителями.
Описание источника (Source Description, SDES) содержит каноническое имя отправителя (Cname), символическое имя (Name) или адрес электронной почты (e- mail).
Окончание участия (BYE) используется в случае, если участник конференции покидает сессию.
Все типы сообщений передаются в одном составном пакете. Сообщения в составном пакете должны следовать в перечисленном порядке, т.е. первое сообщение всегда должно быть SR или RR, если даже не получено никаких пакетов или участник завершает соединение.
С ростом числа участников конференции поток RTP-пакетов остается практически постоянным, т.к. обычно активным является только один из участников. В этой же ситуации поток RTCP-пакетов от получателей возрастает линейно с ростом числа участников, поэтому принимают следующие меры по ограничению RTCPтрафика. Среднее значение интервала рассылки RTCP-пакетов должно быть не менее 5 секунд. Для избегания одновременной передачи пакетов (в случае конференции) интервал рассылки варьируется случайным образом в диапазоне от -0.5 до +1.5 от среднего значения.
Формат отчета отправителя (SR) приведен на рис. 2.19. Порядок передачи бит кадра: слева направо/снизу вверх. Состоит из 3-х типов секций, первые две из которых являются обязательными.
Назначение полей сообщения следующее.
Версия (Version) – определяет версию протокола, длина 2 бита (Version=2).
Бит заполнения (Padding, P) – устанавливается в 1, если в конце пакета внесены лишние дополнительные байты. Число внесенных байт содержится в последнем байте заполнения.
Число отчетов о приеме (Reception report count, RC) – длина 5 бит, указывает на число источников, содержащихся в пакете, от которых приняты RTP-пакеты.
Тип сообщения (Packet type, PT) – длина 8 бит. Для сообщения SR принимает значение PT=200.
126
Глава 2 |
ПРОТОКОЛЫ МУЛЬТИМЕДИЙНЫХ ПРИЛОЖЕНИЙ |
______________________________________________________________________________
Длина пакета (Length) – длина 16 бит (включая внесенные байты).
Идентификатор источника (Synchronization Source identifier, SSRC) – случайное уникальное 32-битовое число, идентифицирующее источник отчета о принятой RTPнагрузке.
Сетевое время (NTP) – длина 64 бита. Состоит из целой части (старшие разряды – 32 бита) и дробной (младшие разряды – 32 бита). Полный перебор значений младших разрядов происходит за одну секунду, начало отсчета – 1 января 1900 года.
. . .
Идентификатор второго источника (SSRC_2)
Задержка последнего пакета (Delay since last SR – DLSR)
Последняя временная метка (Last SR timestamp – LSR)
Джиттер (Interarrival jitter)
Наибольший номер принятого пакета (Extended highest sequence number received)
Fraction lost |
Суммарное число потерянных пакетов |
|
(Cumulative number of packets lost) |
|
Идентификатор первого источника (SSRC_1) |
Число октетов отправителя (Sender's octet count)
Число пакетов отправителя (Sender's packet count)
Временной штамп (RTP Timestamp)
Сетевое время (NTP, младшие разряды )
Сетевое время (NTP, старшие разряды )
Идентификатор источника (SSRC)
V |
P |
Число отчетов (RC) |
|
Тип сообщения (PT) |
|
Длина пакета (Length) |
|
|
|
|
4 уровень |
(UDP) |
|
|
|
|
|
3 уровень |
|
|
|
|
|
|
2 уровень |
|
|
|
|
|
|
1 уровень |
|
|
Рис. 2.19. Местоположение и формат RTCP-сообщения SR
Временной штамп (RTP Timestamp) – длина 32 бита. Генерируется локальным счетчиком отправителя, равно значению временного штампа RTP-пакета с порядковым номером Число пакетов отправителя.
Число пакетов отправителя (Sender's packet count) – длина 32 бита, общее число пакетов, переданных отправителем.
Число октетов отправителя (Sender's octet count) – длина 32 бита, общее число байт данных (без заголовка и заполнителей), переданных отправителем.
Идентификатор первого источника (Synchronization Source identifier, SSRC_1) –
длина 32 байта. Определяет номер источника, к которому относятся информация в последующих 20 байтах.
Доля потерянных пакетов (Fraction lost) – длина 8 бит, определяет долю потерянных пакетов с момента приема предыдущего SR или RR. Представляет собой число с фиксированной запятой, полученное в результате деления числа потерянных пакетов на число ожидаемых к приему пакетов, умноженному на 256.
Суммарное число потерянных пакетов (Cumulative number of packets lost) – длина
24 бит. Определяется как разность между числом ожидаемых и фактически поступивших пакетов с момента сессии (разговора). Число ожидаемых пакетов вычисляется как разность между порядковыми номерами последнего и первого пакетов. Пакеты, пришедшие с опозданием, не считаются потерянными. За счет дублирования некоторых пакетов суммарное число потерянных пакетов может оказаться отрицательным.
127
Ю.Ф.Кожанов, Колбанев М.О ИНТЕРФЕЙСЫ И ПРОТОКОЛЫ СЕТЕЙ СЛЕДУЮЩЕГО ПОКОЛЕНИЯ
______________________________________________________________________________
Наибольший номер принятого пакета (Extended highest sequence number received)
– длина 32 байта. Наибольший порядковый номер из числа принятых пакетов. Джиттер (Interarrival jitter) – длина 32 бита. Характеризует среднюю величину
разброса времени прихода пакетов относительно среднего значения в единицах Временного штампа. Вычисляется при поступлении каждого RTP-пакета. Вычисление джиттера поясняет рис. 2.20.
S1=100
R1=480
S2=260
S3=420
R2=710
S4=580
R3=860
R4=980
t |
Рис. 2.20. Вычисление джиттера |
t |
Пусть от источника нагрузки поступают RTP-пакеты с временными штампами S1–S4, а приемник принимает их в моменты значений своих временных штампов R1– R4. На первом этапе для каждого i-го пакета вычисляется индивидуальное отклонение
по формуле Di = (Ri+1 – Ri ) – (Si+1-Si), что для нашего случая дает D1 = 70, D2 = -10, D3 = -40. Затем вычисляется величина джиттера по формуле
J n = ∑n |
| Di | |
= J n−1 |
n −1 |
+ |
| Dn | |
≈ J n−1 (1−1/16) + |
| Dn | |
, |
||
n |
n |
|
n |
16 |
||||||
i=1 |
|
|
|
|
||||||
где Jn-1 – значение джиттера, вычисленное для ансамбля из (n–1) ранее пришедших
RTCP-пакетов. Для нашего случая J0=0, J1=70, J2=40, J3=40 (байт).
Последняя временная метка (Last SR timestamp, LSR) – средняя часть сетевого времени, состоящая из младших разрядов целой части (16 бит) и старших разрядов дробной части (16 бит) из последнего принятого отчета отправителя (SR).
Задержка последнего пакета (Delay since last SR, DLSR) – длина 32 бита.
Аппаратная задержка в единицах 1/65536 секунды (≈ 15 мкс) с момента приема последнего пакета и временем посылки отчета о приеме. Используется для вычисления абсолютной задержки от отправителя до получателя. Вычисление абсолютной задержки поясняет рис. 2.21.
|
S |
RTP |
|
R |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
NTP = 0xc55eb705 : 20000000 |
RTCP (SR) |
||||||||
|
|
|
RTP |
||||||
|
|
|
|||||||
|
|
|
|
|
LSR = 0xb705 : 2000 (46853.125 с) |
|
|||
|
|
|
|||||||
|
|
|
RTP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DLSR = 0x0005 : 4000 (5.250 с) |
||||||
|
|
|
RTP |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
RTCP (SR/RR) |
|
|
|
|
|
|
|
T = 0xb70a : 8000 (46858.500 c)
t t
Рис. 2.21. Вычисление задержки
128
Глава 2 |
ПРОТОКОЛЫ МУЛЬТИМЕДИЙНЫХ ПРИЛОЖЕНИЙ |
______________________________________________________________________________
Пусть от источника нагрузки S поступил RTCP-пакет Отчет отправителя (SR) со значением LSR=средняя часть NTP передатчика=0xb705:2000 (46853.125 с).
Приемник через DLSR=0x0005:4000 (5.250 с) отправил Отчет получателя (RR).
Источник нагрузки получил пакет RR в момент времени (средняя часть) Т=0xb70a:8000 (46858.500 c). Тогда абсолютная задержка прохождения пакета по петле источник- получатель-источник (время оборота) вычисляется по формуле RTT = T – LSR – DLSR = 0x0:2000 (0.125 секунд).
Отчет получателя (RR) используется узлами, которые только принимают RTPпакеты. Формат сообщения такой же, как на рис. 2.19 за исключением заштрихованных полей. Тип сообщения (Packet type, PT) для сообщения RR принимает значение
PT=201.
Формат описания источника (Source Description, SDES) приведен на рис. 2.22.
Используется только совместно с сообщениями SR или RR. Порядок передачи бит кадра: слева направо/снизу вверх.
|
|
|
. . . |
|
|
|
|
|
SDES items |
|
|
|
|
|
SSRC/CSRC_2 |
|
|
|
|
|
SDES items |
|
|
|
|
|
SSRC/CSRC_1 |
|
|
V |
P |
SC |
PT=202 |
|
Length |
|
|
|
Сообщение |
SR или RR |
|
|
|
|
4 уровень (UDP) |
|
|
|
|
|
3 уровень |
|
|
|
|
|
2 уровень |
|
|
|
|
|
1 уровень |
|
|
Рис. 2.22. Местоположение и формат RTCP-сообщения SDES
Назначение полей сообщения следующее.
Версия (Version) – определяет версию протокола, длина 2 бита (Version=2).
Бит заполнения (Padding, P) – устанавливается в 1, если в конце пакета внесены лишние дополнительные байты. Число внесенных байт содержится в последнем байте заполнения.
Число источников (Source count, SC) – длина 5 бит, указывает на число источников.
Тип сообщения (Packet type, PT) – длина 8 бит. Для сообщения SDES принимает значение PT=202.
Длина пакета (Length) – длина 16 бит (включая внесенные байты).
Идентификатор первого источника (SSRC/CSRC_1) – длина 32 байта.
Определяет номер источника, к которому относятся информация в последующем поле
SDES items.
Описание первого источника (Sender Description, SDES items) – поле переменной длины, не превышающей 255 байт. Состоит из 8-битового поля типа адреса (1 – каноническое имя Cname, 2 – символическое имя Name, 3 – адрес электронной почты e- mail), 8-битового поля длины (Length) и последующих полей описания. Только тип адреса Cname является обязательным и в поля его описания помещается имя пользователя и домена User and Domain name (рис. 2.23).
Cname=00000001 |
Length |
User and Domain name |
|
|
|
Рис. 2.23. Формат поля SDES items RTCP-сообщения BYE
129
