Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619), страница 39
Текст из файла (страница 39)
Принцип работы этого алгоритмаиллюстрирует рис. 2.31. Основная идея состоит в том, что элементарные пакетыгенерируются с постоянной скоростью. Элементарный пакет содержит фиксированное число байтов, которые приложение намерено передать по сети. Элементарные пакеты собираются в корзину, емкость которой ограничена. После переполнения корзины элементарные пакеты просто пропадают. Каждый раз, когдаприложение хочет передать в сеть элемент данных размером N, оно должно извлечь из корзины столько элементарных пакетов, чтобы их суммарный размербыл не менее N байт. То есть, например, если каждый элементарный пакет Ихмеетдлину k байт, приложение должно удалить из корзины как минимум N/k элементарных пакетов.ПриложениеР^,-^^Нерегулярныйпоток элементовданныхЧерез каждыйинтервал ДТв корзину добавляетсяодин элементарныйпакетРегулярный потокРис.
2 . 3 1 . Принцип работы алгоритма корзины элементарных пакетов2.5. Связь на основе потоков данных153Эффект алгоритма корзины элементарных пакетов состоит в том, что данныепередаются в сеть с относительно постоянной скоростью, определяемой скоростью генерации элементарных пакетов. Однако он допускает некоторые всплески, например, приложению разрешено передавать полную корзину элементарныхпакетов в сеть одной операцией. Чтобы предотвратить особо сильные выплески,скорость потоков данных может быть ограничена некоторым максимумом. В спецификации передачи приложение обещает, что будет поставлять элементы данных коммуникационной системе в соответствии с алгоритмом корзины элементарных пакетов.Вдобавок к описанию временных отношений между элементами данных, спецификация передачи также содержит требования к обслуживанию.
Чувствительность к потерям в комбинации с интервалом потерь определяет максимальнодопустимый темп потерь (например, один байт в минуту). Чувствительность кгрупповым потерям определяет, какое количество последовательных элементовданных можно потерять.Минимальная фиксируемая задерэ/ска определяет, на сколько сеть должна задержать доставку данных, чтобы приемник обнаружил задержку. Связанное с этойвеличиной максимальное отклонение задержки определяет максимальный предел дрожания. Величина вилки особенно важна для видео- и аудиопотоков.И наконец, показатель соблюдения — число, показывающее, насколько точнодолжны соблюдаться требования к качеству обслуживания.
Обычно небольшоечисло говорит, что если коммуникационная система не сможет обеспечить требуемое качество обслуживания, реально ничего страшного не случится. И наоборот, большое число указывает на то, что если невозможно получить надежныегарантии качества обслуживанрш, система не сможет работать с потоком данных,поскольку клиент не допускает отклонений от спецификации.Описанная проблема со спецификацией передачи состоит в том, что приложение может попросту не знать, что ему нужно на самом деле. Так, заставляяпользователей описывать качество в понятиях параметров корзины элементарных пакетов, чувствительности к потерям и т.
п., поставщик услуг вполне можетвскоре растерять всех своих клиентов. Поэтому правильнее будет классифицировать потоки данных и задать разумные значения по умолчанию для параметров, включаемых в спецификации передачи. Так, например, максимум, что можно требовать от пользователя, — это выбрать требуемый поток данных (аудиоили видео). При выборе аудиоданных можно предложить еще выбор между высоким, средним и низким качеством. Схожая классификация может быть предложена и для видеоданных.Как утверждается в [344], классификация не слишком отличается от спецификаций передачи.
Отличие состоит только в числе определяемых параметрови числе индивидуальных значений, которые могут принимать эти параметры.Создание потокаПосле того как поток данных описан, например, в виде спецификации передачи,распределенная система должна захватить ресурсы для создания потока, удовлетворяющего требованиям QoS. В контексте управления потоками ресурсами154Глава 2. Связьобычно являются пропускная способность, буферы и вычислительная мощность.Выделение пропускной способности производится для того, чтобы гарантировать соблюдение графика передачи элементов данных, например, путем заданияприоритетов передачи.
Выделение буферов в маршрутизаторах и операционныхсистемах позволяет сохранять элементы данных для дальнейшей обработки.И наконец, необходимо, чтобы обработка элементов данных выполнялась за время, отводимое на это соответствующими задачам — планировщикам, кодерами декодерам, фильтрам и др. Для этого следует правильно распределить процессорное время.Одна из тех проблем, которые следует решить, состоит в том, что параметры,характеризующие требованрш QoS к потоку данных, не соотносятся напрямуюс параметрами соответствующих ресурсов.
Так, например, определив, что сетьдолжна гарантировать возможность одновременной потери не более чем k последовательных элементов данных, мы должны преобразовать это определение в размер статически выделяемых буферов во всех маршрутизаторах от источника доприемника. Этот размер может быть на самом деле подсчитан на основе другиххарактеристик потока и привести к абсолютной или статистической гарантииобслуживания в сети.К сожалению, в настоящее время не существует единственно лучшей моделидля, во-первых, выбора параметров QoS, во-вторых, обобщенного описания ресурсов в любой коммуникационной системе и, в-третьих, преобразования параметров QoS в значения используемых ресурсов.
Отсутствие подобной моделиявляется причиной того, что описание и организация качественного обслуживания часто нелегка и что разные системы используют разные и несовместимыеметоды.Чтобы дополнительно прояснить вопрос и описать, как QoS в распределенных системах зависит от служб, предоставляемых базовой сетью, взглянем наспециальный протокол резервирования ресурсов для QoS в непрерывных потоках данных.
Протокол резервирования ресурсов {Resource reSerVation Protocol,RSVP) — это управляющий протокол транспортного уровня для резервированияресурсов сетевых маршрутизаторов [72, 503].Передатчики в RSVP предоставляют спецификацию передачи, характеризующую потоки данных в понятиях пропускной способности, задержек, дрожанияи т. п., очень напоминающую спецификацию передачи, представленную в табл. 2.6.Это описание передается процессу RSVP, который работает на той же машине,что и отправитель, как показано на рис. 2.32.
Процесс RSVP не занимаетсяинтерпретацией спецификацией передачи. Фактически единственное, что он делает, — это принимает спецификацию передачи от отправителя и локальносохраняет ее. RSVP — это инициируемый получателем протокол QoS. Другимисловами, получатель должен запросить у отправителя запрос на резервирование.Сохраняя спецификацию передачи, RSVP предотвращает резервирование большего, чем это необходимо, объема ресурсов.Отправитель в RSVP определяет путь к потенциальным получателям и предоставляет спецификацию передачи для потока данных всем промежуточным узлам. Когда получатель готов принимать входящие элементы данных, он сначала2.5.
Связь на основе потоков данных155посылает запрос на резервирование по обратному маршруту своему отправителю. Формат этого запроса в сущности такой же, как у исходной спецификациипередачи, но установленные значения параметров могут отражать минимальныетребования QoS, которые должен определить отправитель, чтобы полностьюудовлетворить запросы получателя.Процессотправителя хост, поддерживающий протокол RSVPПриложениеПотокданных приложенияКонтроль|соблюдения|правил- Процесс RSVPtПрограммаRSVPЛокальная ОСЗапрос на резервированиек другим хостам RSVPПоток данныхканального уровняИнформация для настройкидругих хостов RSVPРис. 2.32.
Основы организации процесса RSVP для резервирования ресурсовв распределенных системахКогда процесс RSVP обрабатывает запрос на резервирование, он передает запрос модулю проверки допустимости, который проверяет, имеются ли в наличиизапрашиваемые ресурсы. Запрос передается также и модулю проверки правил,который проверяет, имеет ли получатель право на резервирование. Если ответобеих проверок — «да», ресурсы могут быть зарезервированы.Резервирование ресурсов сильно зависит от канального уровня. Фактически,чтобы протокол RSVP работал, процесс RSVP должен преобразовать параметрыQoS из спецификации передачи в нечто, понятное канальному уровню.
Простойпример: запрос на высокую пропускную способность транслируется в установкумаксимального приоритета каждого кадра, несущего данные потока. Основываясь на первоначальной спецификации передачи (которая указывает на максимальную скорость передачи данных, генерируемых отправителем) и доступнойпропускной способности канального уровня, такое преобразование вполне может удовлетворить требования QoS получателя.Другой подход применяется, если канальный уровень имеет собственный набор параметров QoS, как, например, в сетях ATM.
В сетях ATM данные передаются элементами (которые называются ячейками), состоящими из 48-байтногоинформационного поля и заголовка длиной 5 байт. ATM позволяет процессу156Глава 2. СвязьRSVP задать максимальную скорость ячеек, среднюю скорость ячеек, минимальноприемлемую скорость ячеек и максимально допустимое дрожание между ячейками. Существуют и другие параметры QoS. В этом случае задачей процессаRSVP будет трансляция спецификаций передачи, ориентированных на потокиданных, в значения параметров, приемлемые для сетей ATM.
Соблюдение этихтребований QoS будет проверяться на уровне ATM.2.5.3. Синхронизация потоков данныхВ мультимедийных системах важное значение имеет взаимная синхронизацияразных потоков данных, возможно, собранных в комплексный поток. Синхронизация потоков данных подразумевает поддержание временных соотношений между ними. Существует два типа синхронизации.Простейшая форма синхронизации имеет место между дискретными и непрерывными потоками данных. Рассмотрим, например, показ слайдов через Web,дополненный звуковым рядом.
Каждый слайд передается с сервера на клиентв виде дискретного потока данных. В то же самое время клиент воспроизводит некий аудиопоток (или его часть), который соответствует текущему слайду и также поступает с сервера. В данном случае аудиопоток синхронизируется с показом слайдов.Более сложный тип синхронизации наблюдается между непрерывными потоками данных. Дежурный пример воспроизведения фильма, при котором видеопоток должен быть синхронизирован со звуком, известен как синхронизация артикуляции.