tanenbaum_seti_all.pages (525408), страница 119
Текст из файла (страница 119)
Предотвращение перегрузки гарантирует, что подсеть справится с предлагаемым ей трафиком. Это глобальный вопрос, включаюпзнй поведение всех хостов и маршрутизаторов, процессов хранения и пересылки на маршрутизаторах, а также множество других факторов, снижающих пропускную способность подсети. Управление потоком, напротив, относится к графику между двумя конкретными станциями — отправителем и получателем. Задача управления потоком состоит в согласовании скорости передачи отправителя со скоростью, с которой получатель способен принимать поток пакетов. Управление потоком обычно реализуется при помощи обратной связи между получателем и отправителем. Чтобы разница между этими двумя проблемами стала яснее, представьте себе оптоволоконную сеть с пропускной способностью 1000 Гбит/с, по которой суперкомпьютер пытается передать персональному компьютеру файл со скоростью 1 Гбит/с.
Хотя перегрузки сети в данной ситуации не наблюдается, алгоРитм управления потоком довольно часто заставляет суперкомпьютер приоста"авливать передачу, чтобы персональный компьютер мог успевать принимать файл, А вот другой пример. Рассмотрим сеть с промежуточным хранением, состоящую из 1000 больших компьютеров, соединенных линиями с пропускной способностью 1 Мбит/с. Одна половина компьютеров пытается передавать файлы другой половине со скоростью 100 Кбит/с. Здесь проблема заключается уже не в том, что медленные получатели не успевают принимать данные, посылаемые им 446 Глава 5. Сетевой уровень быстрыми отправителями, а просто в неспособности сети пропустить весь предлагаемый график. Причина, по которой управление потоком и борьбу с перегрузкой часто путают, заключается в том, что алгоритмы борьбы с перегрузкой также используют обратную связь в виде специальных сообщений, посылаемых различным отправителям, с просьбой передавать данные помедленнее, когда в сети появляются заторы.
Таким образом, хост может получить просьбу замедлить передачу в двух случаях: когда с передаваемым потоком не справляется получатель или когда с ним не справляется вся сеть, В дальнейшем мы еще будем рассматривать этот вопрос. Мы начнем изучение алгоритмов борьбы с перегрузкой с рассмотрения обшей модели. Затем мы познакомимся с общим подходом к предотвращению перегрузки, а также с различными динамическими алгоритмами борьбы с перегрузкой, которую не удалось предотвратить. Общие принципы борьбы с перегрузкой Многие проблемы, возникающие в сложных системах, таких как компьютерные сети, следует рассматривать с точки зрения теории управления, При таком подходе все решения делятся на две группы: без обратной связи и с обратной связью. Решения без обратной связи заключаются в попытках решить проблему с помощью улучшения дизайна системы, пытаясь, таким образом, в первую очередь предотвратить возникновение самой ситуации перегрузки.
Никаких корректирующих действий во время работы системы не предпринимается. К методам управления без обратной связи относятся решения о том, когда разрешать новый трафик, когда отвергать пакеты и какие именно, а также составление расписаний для различных участков сети. Общее в этих решениях то, что они не учитывают текущего состояния сети. Решения с обратной связью, напротив, основываются на учете текущего состояния системы. Этот подход состоит из трех следующих частей: 1. Наблюдения за системой с целью определить, где и когда произойдет перегрузка.
2. Передачи информации о перегрузке в те места, где могут быть предприняты соответствующие действия. 3. Принятия необходимых мер при работе системы для устранения перегрузки. При наблюдении за состоянием подсети с целью обнаружения перегрузки могут измеряться различные параметры. Среди них следует выделить следующие: процент пакетов, отвергаемых из-за отсутствия свободного места в буфере; средняя длина очереди; процент пакетов, переданных повторно по причине истекшего времени ожидания подтверждения; среднее время задержки пакетов н среднеквадратичное отклонение задержки пакетов. Во всех случаях увеличивающиеся значения параметров являются сигналами о растущей перегрузке.
Второй этап борьбы с перегрузкой состоит в передаче информации о перегрузке от места ее обнаружения туда, где могут быть приняты какие-то меры по Алгоритмы борьбы с перегрузкой 447 ее устранению. Очевидное решение заключается в том, чтобы маршрутизатор, обнаруживший перегрузку, пересылал источнику или источникам трафика пакет с извешением о наличии проблемы, Такие пакеты, конечно, окажут дополнительную нагрузку на сеть как раз в тот момент, когда нагрузку необходимо снизить Существуют, однако, и другие решения. Например, можно зарезервировать в каждом пакете бит или поле, которые будут заполняться маршрутизаторами при достижении перегрузкой порогового уровня.
Таким образом, соседи этого маршрутизатора будут предупреждены о том, что на данном участке сети наблюдаетея перегрузка, Еще один метод состоит в том, что хосты или маршрутизаторы периодически посылаот пробные пакеты, явно спрашивая друг друга о перегрузке. Собранная таким образом информация может затем использоваться для выбора маршрутов в обход участков сети, в которых возникла проблема с перегрузкой. Так, некотоРые Радиостанции обзавелись вертолетами, летающими над городами и сообщающими слушателям о заторах на дорогах в надежде, что слушающие их водители )гыберут маршруты для своих пакетов (то есть машин) в обход пробок. Все системы с обратной связью предполагают, что получившие информацию о перегрузке в сети хосты и маршрутизаторы предпримут какие-нибудь действия для устранения перегрузки. Чтобы данная схема работала, необходимо тщательно настроить временные параметры. Если каждый рзз, когда два пакета приходят одновременно, какой-нибудь нервный маршрутизатор будет кричать «Стоп Ь, «' простояв без работы 20 мкс, он же будет давать команду «Давай!», система бу'дет находиться в состоянии постоянных незатухающих колебаний.
С другой стороны, если маршрутизатор будет спокоен, как слон, и для большей надежности станет ждать 30 минут, прежде чем что-либо сообщить, то механизм борьбы с пеРегрузкой будет реагировать слишком медленно, чтобы приносить вообще какую-либо пользу. Для правильной работы необходимо некоторое усреднение, однако правильный выбор значения постоянной времени является нетривиальпой задачей, Известны различные алгоритмы борьбы с перегрузкой. Янг (Уапй) и Редди (Веббу) (1995) даже разработзли специальный метод классификации этих алгоРитмов.
Они начали с того, что разделили все методы на алгоритмы с обратной связью и без нее, как уже описывалось ранее. Затем они разделили алгоритмы без обратной связи на работающие у отправителя и у получателя, Алгоритмы с обратной связью также были разделены на две подкатегории: с явной н неявной обратной связью. В алгоритмах с явной обратной связью от точки возникновения перегрузки в обратном направлении посылаются пакеты, предупреждающие о заторе. В алгоритмах с неявной обратной связью источник приходит к выводу о наличии перегрузки, основываясь на локальных наблюдениях, — например, по значению интервала времени, требующегося для получения подтверждения. Наличие перегрузки означает, что нагрузка временно превысила возможности Ресурсов данной части системы, Есть два решения данной проблемы: увеличить Ресурсы системы или снизить нагрузку. Например, подсеть может использовать телефонные линии с модемами, чтобы увеличить пропускную способность между определенными точками.
В спутниковых системах большую пропускную спо- 448 Глаэаб, Сетевой уровень Стратегии предотвращения перегрузки Начнем изучение методов борьбы с перегрузкой с систем без обратной связи. Эти системы разработаны в первую очередь для предотвращения перегрузки, а не для борьбы с уже имеющей место перегрузкой.
Они пытаются достичь своей цели, используя соответствующие стратегии на разных уровнях. В табл. 5.2 показаны рззличные стратегии уровней передачи данных, сетевого и транспортного, способные влиять на перегрузку 1162]. Таблица 5.2. Стратегии предотвращения перегрузки Уровень Стратегии транспортный Политика повторной передачи Политика кэширования пакетов, приходящих в неверном порядке Политика подтверждений Политика управления потоком Определение тайм-аутов Виртуальные каналы против дейтаграмм в составе подсети Политика очередей пакетов и обслуживания Политика игнорирования пакетов Алгоритм маршрутизации Управление временем жиэни пакетов Политика повторной передачи Политика кэширования пакетов, приходящих в неверном порядке Политика подтверждений Политика управления потоком Сетевой Передачи данных собность часто дает увеличение мошностн передатчика, Распределение трафика по нескольким маршрутам вместо постоянного использования одного и того же, пусть даже оптимального пути также может позволить ликвидировать местную перегрузку.
Наконец, для увеличения пропускной способности сети в случае серьезных заторов могут быть задействованы запасные маршрутизаторы, которые обычно применяются для повышения устойчивости системы в случае сбоя. Однако иногда увеличить пропускную способность бывает невозможно либо она уже увеличена до предела. В таком случае единственный способ борьбы с перегрузкой состоит в уменьшении нагрузки.
Для этого существует несколько способов, включая отказ в обслуживании или снижение уровня обслуживания некоторых или всех пользователей, а также составление более четкого расписания потребностей пользователей в обслуживании, Некоторые из этих методов, которые будут кратко рассмотрены далее, лучше всего применимы к виртуальным каналам. В подсетях, основанных на использовании виртуальных каналов, эти методы могут применяться на сетевом уровне. В дейтаграммных подсетях опи иногда также могут применяться в соединениях транспортного уровня.