Смекни!
smekni.com

Разработка методов определения эффективности торговых интернет систем (стр. 4 из 17)

передачи.

В приложениях реального времени отправитель генерирует поток данных с

постоянной скоростью, а получатель (или получатели) должен предоставлять

эти данные приложению с той же самой скоростью. Такие приложения включают,

например, аудио- и видеоконференции, живое видео, удаленную диагностику в

медицине, компьютерную телефонию, распределенное интерактивное

моделирование, игры, мониторинг в реальном времени и др.

Наиболее широко используемый протокол транспортного уровня — это TCP.

Несмотря на то что TCP позволяет поддерживать множество разнообразных

распределенных приложений, он не подходит для приложений реального

времени.

Эту задачу и призван решить новый транспортный протокол реального времени

— RTP (Real-Time Transport Protocol), который гарантирует доставку данных

одному или более адресатам с задержкой в заданных пределах, т. е. данные

могут быть воспроизведены в реальном времени.

Принципы построения протокола RTP

RTP не поддерживает каких-либо механизмов доставки пакетов, обеспечения

достоверности передачи или надежности соединения. Эти все функции

возлагаются на транспортный протокол. RTP работает поверх UDP и может

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

участниками RTP-сеанса.

Для каждого участника RTP сеанс определяется парой транспортных адресов

назначения пакетов (один сетевой адрес — IP и пара портов: RTP и RTCP).

Пакеты RTP содержат следующие поля: идентификатор отправителя,

указывающий, кто из участников генерирует данные, отметки о времени

генерирования пакета, чтобы данные могли быть воспроизведены принимающей

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

информация о характере содержимого пакета, например, о типе кодировки

видеоданных (MPEG, Indeo и др.). Наличие такой информации позволяет

оценить величину начальной задержки и объема буфера передачи.

В типичной среде реального времени отправитель генерирует пакеты с

постоянной скоростью. Они отправляются через одинаковые интервалы времени,

проходят через сеть и принимаются получателем, воспроизводящим данные в

реальном времени по их получении. Однако ввиду изменения времени задержки

при передаче пакетов по сети, они могут прибывать через нерегулярные

интервалы времени. Для компенсации этого эффекта поступающие пакеты

буферизуются, придерживаются на некоторое время и затем предоставляются с

постоянной скоростью программному обеспечению, генерирующему вывод.

Поэтому для функционирования протокола реального времени необходимо, чтобы

каждый пакет содержал временную метку— таким образом получатель может

воспроизвести поступающие данные с той же скоростью, что и отправитель.

Поскольку RTP определяет (и регулирует) формат полезной нагрузки

передаваемых данных, с этим напрямую связана концепция синхронизации, за

которую частично отвечает механизм трансляции RTP — микшер. Принимая

потоки пакетов RTP от одного или более источников, микшер, комбинирует их

и посылает новый поток пакетов RTP одному или более получателям. Микшер

может просто комбинировать данные, а также изменять их формат, например,

при комбинировании нескольких источников звука. Предположим, что новая

система хочет принять участие в сеансе, но ее канал до сети не имеет

достаточной емкости для поддержки всех потоков RTP, тогда микшер получает

все эти потоки, объединяет их в один и передает последний новому члену

сеанса. При получении нескольких потоков микшер просто складывает значения

импульсно-кодовой модуляции. Заголовок RTP, генерируемый микшером,

включает идентификатор отправителя, чьи данные присутствуют в пакете.

Более простое устройство — транслятор, создает один исходящий пакет RTP

для каждого поступающего пакета RTP. Этот механизм может изменить формат

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

для передачи данных из одного домена в другой. Например, потенциальный

получатель может оказаться не в состоянии обрабатывать высокоскоростной

видеосигнал, используемый другими участниками сеанса. Транслятор

конвертирует видео в формат более низкого качества, требующий не такой

высокой скорости передачи данных.

Методы контроля работы

Протокол RTP используется только для передачи пользовательских данных —

обычно многоадресной — всем участникам сеанса. Совместно с RTP работает

протокол RTCP (Real-time Transport Control Protocol), основная задача

которого состоит в обеспечении управления передачей RTP. RTCP использует

тот же самый базовый транспортный протокол, что и RTP (обычно UDP), но

другой номер порта.

RTCP выполняет несколько функций:

Обеспечение и контроль качества услуг и обратная связь в случае

перегрузки. Так как RTCP-пакеты являются многоадресными, все участники

сеанса могут оценить, насколько хороши работа и прием других участников.

Сообщения отправителя позволяют получателям оценить скорость данных и

качество передачи. Сообщения получателей содержат информацию о

проблемах, с которыми они сталкиваются, включая утерю пакетов и

избыточную неравномерность передачи. Обратная связь с получателями важна

также для диагностирования ошибок при распространении. Анализируя

сообщения всех участников сеанса, администратор сети может определить,

касается данная проблема одного участника или носит общий характер. Если

приложение-отправитель приходит к выводу, что проблема характерна для

системы в целом, например, по причине отказа одного из каналов связи, то

оно может увеличить степень сжатия данных за счет снижения качества или

вообще отказаться от передачи видео — это позволяет передавать данные по

соединению низкой емкости.

Идентификация отправителя. Пакеты RTCP содержат стандартное текстовое

описание отправителя. Они предоставляют больше информации об отправителе

пакетов данных, чем случайным образом выбранный идентификатор источника

синхронизации. Кроме того, они помогают пользователю идентифицировать

потоки, относящиеся к различным сеансам.

Оценка размеров сеанса и масштабирование. Для обеспечения качества услуг

и обратной связи с целью управления загруженностью, а также с целью

идентификации отправителя, все участники периодически посылают пакеты

RTCP. Частота передачи этих пакетов снижается с ростом числа участников.

При небольшом числе участников один пакет RTCP посылается максимум

каждые 5 секунд. RFC-1889 описывает алгоритм, согласно которому

участники ограничивают частоту RTCP-пакетов в зависимости от общего

числа участников. Цель состоит в том, чтобы трафик RTCP не превышал 5%

от общего трафика сеанса.

Формат заголовка протокола RTP

RTP — потоко -ориентированный протокол. Заголовок RTP-пакета создавался с

учетом потребностей передачи в реальном времени. Он содержит информацию о

порядке следования пакетов, чтобы поток данных был правильно собран на

принимающем конце, и временную метку для правильного чередования кадров

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

например, видео и аудио.

Каждый пакет RTP имеет основной заголовок, а также, возможно,

дополнительные поля, специфичные для приложения.

Использование TCP в качестве транспортного протокола для этих приложений

невозможно по нескольким причинам:

  • Этот протокол позволяет установить соединение только между двумя конечными точками, следовательно, он не подходит для многоадресной передачи.
  • TCP предусматривает повторную передачу потерянных сегментов, прибывающих, когда приложение реального времени уже их не ждет.
  • TCP не имеет удобного механизма привязки информации о синхронизации к сегментам — дополнительное требование приложений реального времени.

Другой широко используемый протокол транспортного уровня — LJDP не имеет

части ограничений TCP, но и он не предоставляет критической информации о

синхронизации.

Несмотря на то, что каждое приложение реального времени может иметь свои

собственные механизмы для поддержки передачи в реальном времени, они имеют

много общих черт, а это делает определение единого протокола весьма

желательным.

Эту задачу и призван решить новый транспортный протокол реального времени

— RTP (Real-time Transport Protocol), который гарантирует доставку данных

одному или более адресатам с задержкой в заданных пределах, т. е. данные

могут быть воспроизведены в реальном времени.

3.4 Протокол управления передачей RTCP

Протокол управления передачей RTCP (Real-Time Transport Control Protocol)

работает с несколькими адресатами для обеспечения обратной связи с

отправителями данных RTP и другими участниками сеанса. RTCP использует тот

же самый базовый транспортный протокол, что и RTP (обычно, UDP), но другой

номер порта. Каждый участник сеанса периодически посылает RTCP-пакет всем

остальным участникам сеанса.

RTCP выполняет следующие функции:

  • обеспечение качества услуг и обратной связи в случае перегрузки;
  • идентификация отправителя;
  • оценка размеров сеанса и масштабирование.

Многоадресность RTCP-пакетов дает возможность участникам группы оценить

качество приема и сообщить о своих проблемах (например, утере пакетов,

избыточной неравномерности передачи). Обратная связь с получателями важна

также для диагностики ошибок при распространении пакетов.

RTCP-пакеты содержат стандартное текстовое описание отправителя,

обеспечивающее его идентификацию. Кроме того, они помогают пользователю

идентифицировать потоки, относящиеся к различным сеансам. Например, они

дают возможность определить, что одновременно открыты отдельные сеансы для