Синхронизация нескольких потоков

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

Одной из основных особенностей протокола RTCP является то, что он позволяет получателю синхронизировать несколько потоков RTP. Например, рассмотрим передачу звукового сигнала наряду с видеосигналом. Поскольку для аудио-и видеоинформации применяются разные кодировки, в протоколе RTP для них используются два отдельных потока с двумя аппаратными часами, функционирующими с разной частотой. Если получатель попытается воспроизводить два взаимосвязанных потока независимо друг от друга, то результат может оказаться бессмысленным (например, звуковое сопровождение не будет соответствовать видеосигналу). Поэтому получатель должен синхронизировать воспроизведение двух потоков для обеспечения точной координации между аудио- и видеоинформацией. К сожалению, ни поле идентификатора источника синхронизации, ни поле отметки времени в заголовке RTP не содержит достаточной информации для синхронизации нескольких потоков. Для получения необходимой информации применяется протокол RTCP. Матрасы для всей семьи за 1 день - матрас ортопедический.

Протокол RTCP требует, чтобы для синхронизации потоков каждый отправитель передавал информацию о каждом активном потоке. Отправитель передает сообщение с описанием источника и периодически формирует сообщения с отчетами отправителя2. Сообщение с описанием источника содержит каноническое имя, которое однозначно обозначает источник (т.е. приложение-отправитель). Хотя для каждого потока, передаваемого из конкретного источника, используется другой идентификатор источника, все они имеют одно и то же каноническое имя. Получатель не может синхронизировать два потока, если они не имеют одинакового канонического имени.

Сообщения с отчетами отправителя содержат информацию, применяемую получателем для координации значений отметок времени в двух потоках. Формат отчета отправителя приведен на рис. 28.4. Как показано на этом рисунке, отчет отправителя начинается с двадцати восьми октетов информации, которые включают информацию о часах, необходимую получателю для синхронизации потоков. Во-первых, отчет включает абсолютное значение времени, представленное в формате протокола NTP (Network Time Protocol — Синхронизирующий сетевой протокол). Во-вторых, отчет RTCP задает значение отметки времени RTP, полученное от тех же часов, которые применялись для выработки значений в поле отметки времени пакетов RTP. Поскольку каждый конкретный отправитель использует одни и те же часы с абсолютными показаниями времени для отчетов отправителя по всем свои потокам, получатель может сравнить абсолютные значения времени для двух потоков, поступающих из одного источника, и определить, какое соотношение связывает значения в поле отметки времени одного потока со значениями отметки времени для другого потока. Последняя часть пакета содержит последовательность блоков отчета, поступивших от получателей.

структура пакета RTCP, содержащего отчет отправителя

Этот протокол требует также периодического формирования отчетов каждым получателем; отчет получателя информирует отправителя об условиях в сети.