Полный курс лекций 2009-го года (1130357), страница 64
Текст из файла (страница 64)
таких маршрутов, которые не пересекаются с перегруженными участками,даже если такие маршруты далеко не оптимальны. Рисунок 5-27 иллюстрирует этот подход.Рисунок 5-27. (а) Участок сети с перегрузкой; (b) Измененный участок сети безперегрузки с виртуальным каналом АВТретий подход уже упоминался: хост и транспортная среда договариваются перед установкойвиртуального соединения о форме трафика, объеме передаваемых данных, качестве сервиса и т.п. Послеэтого транспортная среда резервирует необходимое количество ресурсов, необходимых ей для выполненияэтих соглашений. Это резервирование может происходить постоянно, а может быть сделано только привозникновении перегрузок. Плата за резервирование - неоптимальное использование пропускнойспособности каналов.5.3.6.
Подавляющие пакетыТеперь рассмотрим приемы, используемые как в средах с виртуальными каналами, так и в средах сдейтаграммами. Каждый маршрутизатор может контролировать степень загрузки своих выходных линий идругие ресурсы. Например, он может периодически вычислять степень загруженности своих выходныхлиний. Всякий раз, когда степень загруженности при очередном вычислении оказывается выше некоторогопорога, эта линия переводится в состояние предупреждения.
Каждый пакет, маршрутизируемый черезтакую линию, вызывает генерацию подавляющего пакета, направляемого отправителю маршрутизируемогопакета. При этом в пакете отправителя проставляется определенный разряд, предотвращающий генерациюподавляющих пакетов другими маршрутизаторами в дальнейшем.Когда отправитель получает подавляющий пакет, он сокращает интенсивность своего трафика наопределенную величину. Поскольку пакеты, направляемые одному и тому же получателю, могутмаршрутизироваться по-разному, то отправитель вправе ожидать несколько подавляющих пакетов. Втечение определенного времени отправитель будет игнорировать подавляющие пакеты, поступающие снаправления получателя. По истечении этого периода времени отправитель ожидает появленияподавляющих пакетов в течение следующего интервала. Если появился хоть один подавляющий пакет, толиния перегружена и отправитель ждет.
Если в течение очередного интервала не поступило ни одногоподавляющего пакета, то отправитель может увеличить интенсивность трафика.Существует много вариантов этого алгоритма. Так, например, можно использовать не толькозагруженность линии, но и длину очереди, заполненность буфера и параметры спецификации трафика.У методов на основе подавляющих пакетов есть один недостаток. Если есть несколько отправителей,работающих через одну и ту же выходную линию, то при определенных условиях маршрутизатор всем импошлет подавляющие пакеты.
Однако, так как отправители независимы, то один, например, сократиттрафик значительно, тогда как другие лишь незначительно. Это приведет к несправедливомуиспользованию пропускной способности канала между ними.Для предотвращения такой ситуации был предложен алгоритм справедливого чередования. Суть егосостоит в том, что для каждого отправителя у выходной линии строится своя очередь. Отправка пакетов изэтих очередей происходит по кругу.
Поэтому, если кто-то из отправителей незначительно сократит трафик,то это лишь увеличит скорость роста его очереди.И у этого алгоритма есть недостаток: если один отправитель использует длинные пакеты, а другой короткие, то последний получит меньшую долю пропускной способности линии. Для борьбы с этойнесправедливостью в алгоритм обслуживания очередей вносят модификацию: пакеты из очередейпередаются побайтно, а не весь пакет сразу. Этот подход иллюстрирует рисунок 5-28.Рисунок 5-28.
(а) Маршрутизатор с очередью из пяти пакетов для линии О; (b)Время передачи для каждого пакетаДругие модификации алгоритма чередования связаны с установкой приоритетов между очередями,что дает большую гибкость в обслуживании отправителей. Так, если есть очереди для сервера и дляклиента, то естественно обслуживать очередь сервера быстрее.Представленные здесь алгоритмы с подавляющими пакетами плохо работают в высокоскоростныхсетях и на больших расстояниях. Дело в том, что пока подавляющий пакет дойдет до отправителя, пройдетмного времени и отправитель успеет «напихать» в сеть много пакетов. Для исправления этой ситуациибыла предложена его модификация – алгоритм с подавлением по скачкам.
Суть его в том, что как толькообнаружится перегрузка на выходной линии и маршрутизатор отправит подавляющий пакет, то ближайшиймаршрутизатор, получивший этот подавляющий пакет, сократит трафик к маршрутизатору, пославшемуподавляющий пакет. И так скачок за скачком трафик будет быстро падать. Естественно, этот приемувеличит нагрузку на буфера маршрутизаторов, сокращающих трафик, но обеспечит быструю реакцию навозникающую перегрузку. На рисунке 5-29 дан пример алгоритма с подавлением скачками.
На этомрисунке хорошо видно, что, применяя технику подавляющих пакетов «в лоб», мы достигнем сокращениянагрузки за 7 скачков (а). Техника подавляющих пакетов по скачкам позволяет добиться того же самогоэффекта за пять скачков (b).Рисунок 5-29. Алгоритм с подавлением скачками5.3.7. Сброс нагрузкиКогда ни один из упомянутых выше приемов не срабатывает, маршрутизатор может применить«тяжелую артиллерию» – сброс нагрузки.
Было бы слишком примитивно предполагать, что маршрутизатор,при возникновении перегрузки просто начинает сбрасывать пакеты. Идея метода и его название пришлииз области передачи электроэнергии. Там при возникновении перегрузок в сети, начинают отключатьотдельные группы потребителей, чтобы сохранить работоспособность системы.Маршрутизатор может сбрасывать пакеты, исходя из информации о приложении, пославшем этипакеты. Если, например, передается файл, то старые пакеты, т.е.
расположенные ближе к концу файла,сбрасывать лучше, поскольку приложение может потребовать перепослать все пакеты, начиная спропущенного пакета. В этом случае, чем старее пакет, тем меньше придется перепосылать. Естьприложения, для которых все наоборот. Лучше сбрасывать новые пакеты, т.е. ближе к началу передачи,чем старые.В общем случае подход на основе сброса нагрузки предполагает определенное взаимодействиемежду приложением и маршрутизатором. Например, при передаче изображений в целях компрессиисначала посылают всю картинку, а потом лишь ее изменения.
Ясно, что потеря одного из изменений лишьухудшит изображение на некоторое время, в то время, как потеря картинки будет означать потерюизображения вовсе. Для обеспечения такого взаимодействия с приложением вводят приоритеты средипакетов. Это позволяет маршрутизатору минимизировать потери для приложения, когда маршрутизаторвынужден сбрасывать пакеты.Для того, чтобы приложение не злоупотребляло приоритетными пакетами, можно увязать приоритетпакетов с величиной оплаты за трафик.
Чем больше приоритетных пакетов, тем выше стоимость передачи.Приоритеты можно использовать также в целях формирования трафика. Например, при использованииалгоритма ведра с маркерами, если пакет пришел, а маркеров нет, можно применить прием, когда пакетвсе же будет передан, но низким приоритетом.Приоритеты используются, например, в протоколах Frame Relay. Пока величина трафика находится взаранее оговоренных пределах, все пакеты идут с определенным приоритетом. При пиковых нагрузках,превосходящих номинальную величину, приоритеты пакетов начинают падать в зависимости от времени.Если увеличение размера трафика продолжается недопустимо долго, то вскоре приоритеты пакетовдостигнут минимума, и при первых же признаках перегрузки их начнут сбрасывать.5.3.8.
Управление перегрузками при групповой передачеВсе алгоритмы управления перегрузками, которые мы до сих пор рассматривали, относились кслучаю, когда был один источник и один получатель. В этом разделе мы рассмотрим случай управлениянагрузкой при групповой передаче, т.е. когда есть несколько источников и несколько получателей.Примером могут служить системы кабельного телевидения.
Например, в системе может быть несколькоисточников телепередач (станций вещания), и зрители могут по желанию переключаться с одной станциина другую. Аналогичная ситуация может иметь место в системе видеоконференций, когда слушатели могутпереключаться с одной конференции на другую.Во многих подобных приложениях группы могут возникать и изменяться по составу динамически. Вэтих условиях прием, когда источник сообщений резервирует заранее необходимые для передачи ресурсы,не работает эффективно. Источнику сообщений придется при каждом изменении группы генерироватьдерево связей.
В случае кабельного телевидения, когда группы содержат миллионы зрителей, такойподход не годится.Одно из возможных решений для подобных случаев было предложено в 1993 году – это RSVPпротокол (Resource reSerVation Protocol – протокол резервирования ресурсов).
Он позволяет несколькимотправителям передавать сообщения группам получателей, отдельным получателям переходить из группыв группу, оптимизировать использование пропускной способности каналов, избегая перегрузок.В простейшей форме этот протокол для групповой маршрутизации использует дерево связей так, какмы уже рассматривали ранее. Каждой группе приписана группа адресов. При отправке пакетаотправитель помещает в него весь список адресов группы.