Автор работы: Пользователь скрыл имя, 16 Сентября 2009 в 18:41, Не определен
Маршрутизация в реальном времени: проблемы и возможные решения
Маршрутизатор с интеграцией услуг.
Маршрутизатор с
интеграцией услуг должен поддерживать
протокол резервирования ресурсов (Resource
Reservation Protocol, RSVP). Маршрутизаторы этого
типа добавляют протокол ресурсов,
контрольный модуль и интерфейс
к политике очередей уровня коммутации.
Определение топологии сети и политики очередности только вспомогательные задачи, основная же задача маршрутизации - переключение трафика. Переключение - это процесс приема сообщения, выбора подходящего маршрута дальнейшего следования и отправка его по этому маршруту. Данная операция обслуживается четырьмя различными процессами: входным драйвером, процессом выбора маршрута, очередью и выходным драйвером.( Входные и выходные драйверы – это программы и чипы для приема и отправки сообщений .)
После переключения
сообщения модулем выбора маршрута
распорядитель сообщений
Традиционный трафик локальных и глобальных сетей состоит из передачи файлов, электронной почты, запросов к базам данных и т.п. Пересылка подобной информации не требует применения специальной обработки для обеспечения получения ее в режиме реального времени.
Иначе обстоит дело с так называемыми приложениями реального времени.
К ним относят аудио- и видеоконференции, передача "живого" видео (не для хранения, а для немедленного воспроизведения), системы разделяемых рабочих мест, удаленная медицинская диагностика, телефония, командные и контрольные системы, распределенное интерактивное моделирование, некоторые игры.
В этих приложениях задержки и/или прибытие пакетов не по порядку становятся уже недопустимыми. Например, если при передачи изображения потеря пары кадров может еще остаться не замеченной, то уже при передачи телефонного разговора пропуск нескольких аудиопакетов может существенно повлиять на смысл передаваемой информации.
Т.о. современные
приложения не могут допустить, чтобы
их пакеты поступали с опозданием.
Два протокола позволяют
RTP гарантирует
доставку данных одному или
более адресатам с задержкой
в заданных пределах. RSVP позволяет
конечным системам
Почему нельзя использовать стандартные протоколы ?
Наиболее широко используемый протокол транспортного уровня - это TCP. Несмотря на то что TCP позволяет поддерживать множество разнообразных распределенных приложений, он не подходит для приложений реального времени.
Использование TCP в качестве транспортного протокола для этих приложений невозможно по нескольким причинам. Во-первых, этот протокол позволяет установить соединение только между двумя конечными точками, следовательно, он не подходит для многоадресной передачи, которая применяется в приложениях реального времени таких как, например, конференции.
Он предусматривает повторную передачу потерянных сегментов, прибывающих, когда приложение реального времени уже их не ждет. Кроме того, у TCP нет удобного механизма привязки информации о синхронизации к сегментам - другое требование приложений реального времени.
Другой широко используемый протокол транспортного уровня UDP не имеет первых двух ограничений (соединение точка-точка и передача потерянных сегментов), но и он не предоставляет критической информации о синхронизации. Таким образом, UDP не предоставляет сам по себе каких-либо инструментов общего назначения для приложений реального времени.
Транспортный протокол реального времени RTP.
Несмотря на то,
что каждое приложение реального
времени может иметь свои собственные
механизмы для поддержки
Реальность реального времени.
В типичной среде реального времени
отправитель генерирует пакеты с
постоянной скоростью. Они отправляются
им через одинаковые интервалы времени,
проходят через сеть и принимаются получателем,
воспроизводящим данные в реальном времени
по их получении.
Однако ввиду
вариации задержки при передаче пакетов
по сети они прибывают через
Многоадресная передача.
RTP поддерживает
передачу данных в реальном
времени между несколькими
Хотя RTP может использоваться и для одноадресной передачи в реальном времени, его сила в поддержке многоадресной передачи. Для этого каждый блок данных RTP содержит идентификатор отправителя, указывающий, кто из участников генерирует данные. Блоки данных RTP содержат также отметку о времени, чтобы данные могли быть воспроизведены с правильными интервалами принимающей стороной.
Кроме того, RTP определяет формат полезной нагрузки передаваемых данных. С этим напрямую связана концепция синхронизации, за которую частично отвечает микшер - механизм трансляции RTP. Принимая потоки пакетов RTP от одного или более источников, он комбинирует их и посылает новый поток пакетов RTP одному или более получателям. Микшер может просто комбинировать данные, а также изменять их формат.
Пример приложения для микшера - комбинирование нескольких источников звука. Например, пусть часть систем данного аудиосеанса генерирует каждая свой собственный поток RTP. Большую часть времени только один источник активен, хотя время от времени одновременно "говорят" несколько источников.
Если новая система
хочет принять участие в
Более простое устройство создает один исходящий пакет RTP для каждого поступающего пакета RTP. Этот механизм, называемый транслятором, может изменить формат данных в пакете или использовать иной комплект низкоуровневых протоколов для передачи данных из одного домена в другой. Например, потенциальный получатель может оказаться не в состоянии обрабатывать высокоскоростной видеосигнал, используемый другими участниками сеанса. Транслятор конвертирует видео в формат более низкого качества, требующий не такой высокой скорости передачи данных.
Заголовки RTP.
TCP – это общепринятый
в Internet’е протокол
Кадый пакет UDP получает,
как часть потока реального времени,
специальный заголовок с
Первые 12 октетов
заголовка состоят из следующих
полей:
• поле версии (2 бита): текущая версия вторая;
• поле заполнения (1 бит): это поле сигнализирует о наличии заполняющих октетов в конце полезной нагрузки. (Заполнение применяется, когда приложение требует, чтобы размер полезной нагрузки был кратен, например, 32 битам.) В этом случае последний октет указывает число заполняющих октетов;
• поле расширения
заголовка (1 бит): когда это поле
задано, то за основным заголовком следует
еще один дополнительный, используемый
в экспериментальных
• поле числа отправителей (4 бита): это поле содержит число идентификаторов отправителей, чьи данные находятся в пакете, причем сами идентификаторы следуют за основным заголовком;
• поле маркера (1 бит): смысл бита маркера зависит от типа полезной нагрузки. Бит маркера используется обычно для указания границ потока данных. В случае видео он задает конец кадра. В случае голоса он задает начало речи после периода молчания;
• поле типа полезной нагрузки (7 бит): это поле идентифицирует тип полезной нагрузки и формат данных, включая сжатие и шифрование. В стационарном состоянии отправитель использует только один тип полезной нагрузки в течение сеанса, но он может его изменить в ответ на изменение условий, если об этом сигнализирует протокол управления передачей в реальном времени (Real-Time Transport Control Protocol);
• поле порядкового номера (16 бит): каждый источник начинает нумеровать пакеты с произвольного номера, увеличиваемого затем на единицу с каждым посланным пакетом данных RTP. Это позволяет обнаружить потерю пакетов и определить порядок пакетов с одинаковой отметкой о времени. Несколько последовательных пакетов могут иметь одну и ту же отметку о времени, если логически они порождены в один и тот же момент (например, пакеты, принадлежащие к одному и тому же видеокадру);
• поле отметки о времени (32 бита): здесь записывается момент времени, в который первый октет данных полезной нагрузки был создан. Единицы, в которых время указывается в этом поле, зависят от типа полезной нагрузки. Значение определяется по локальным часам отправителя;
• поле идентификатора источника синхронизации: генерируемое случайным образом число, уникальным образом идентифицирующее источник в течение сеанса.
За основным заголовком
может следовать одно или более
полей идентификаторов
Недостатки RTP.
RTP далеко не совершенен. Например, протокол никак не способен повлиять на задержку в сети, но он помогает сократить дрожание изображения и звука при воспроизведении при наличии задержек. Кроме того, хотя пакеты UDP получают порядковые номера, так что принимающая станция может установить факт потери пакетов, RTP не предпринимает никаких мер для восстановления потерянных пакетов.
Проблемы перегрузки сети.
Назначение любой сети состоит в доставке данных получателем с гарантированным качеством услуг, включающих пропускную способность, задержку и допустимый предел вариации задержки. С ростом числа пользователей и приложений обеспечить качество услуг становится все труднее.
Просто реагировать на перегрузку уже недостаточно. Необходим инструмент, с помощью которого перегрузок можно было бы избежать вообще, т. е. сделать так, чтобы приложения могли резервировать сетевые ресурсы в соответствии с требуемым качеством услуг.
Превентивные меры
полезны как при одноадресной,
так и при многоадресной
При одноадресной передаче два приложения договариваются о конкретном уровне качества услуг для данного сеанса. Если сеть сильно загружена, то она может оказаться не в состоянии предоставить услуги необходимого качества. В этом случае приложениям придется отложить сеанс до лучших времен или попробовать снизить требования к качеству услуг, если это возможно. Тогда маршрутизаторы на предполагаемом пути выделяют ресурсы, например место в очереди и часть емкости исходящей линии. Если маршрутизатор не имеет возможности выделить ресурсы вследствие ранее взятых на себя обязательств, то он извещает об этом приложение. В этом случае приложение может попытаться инициировать другой сеанс с меньшими требованиями к качеству услуг или перенести его на более поздний срок.