Очереди
Приоритетное обслуживание (
| Приоритет | Длина очереди |
|---|---|
| Высокий | 20 пакетов |
| Средний | 40 пакетов |
| Нормальный | 60 пакетов |
| Низкий | 80 пакетов |
Чтобы избежать жесткой регламентации системы обслуживания очередей
Стратегия справедливых (взвешенных) очередей
В сетях существует 8 уровней приоритета. Следует иметь в виду, что
Дальнейшим развитием технологии
В некоторых случаях, например в случае VoIP, более важно обеспечить малую задержку, а не полосу пропускания. Для таких задач разработан алгоритм
Когда в субсеть (или какое-то сетевое устройство) поступает слишком много пакетов, ее (его) рабочие характеристики деградируют. Такая ситуация называется .
(рис 11.1) Различные варианты нагрузочной характеристики сетиИдеальная (с точки зрения потребителя) нагрузочная характеристика сети сначала описывается прямой линией, то есть числа посланных и доставленных пакетов равны или почти равны. При достижении максимума пропускной способности сети число пакетов, доставляемых в единицу времени, становится постоянным, в то время как число посланных пакетов продолжает расти. К сожалению, такого в реальной жизни не происходит. Желательной нагрузочной характеристикой является такая, которая при малых и максимальных загрузках ведет себя как идеальная, а при переходных скоростях имеет плавный характер и доставляет несколько меньший процент пакетов, чем в идеале. Реальная нагрузочная характеристика (например, для Ethernet) много хуже даже желательного варианта. Сначала по мере роста загрузки начинает расти процент потери пакетов. Далее при входных потоках, превышающих некоторый порог, число доставляемых пакетов начинает падать при росте числа посланных пакетов, а при дальнейшем нарастании загрузки число доставляемых пакетов может стать равным нулю ("коллапс"). В версиях Ethernet, где столкновения исключены (в сети используются только переключатели и маршрутизаторы), ситуация более благоприятна.
Отчасти это может быть связано с недостатком памяти для входных буферов, по этой причине некоторое увеличение памяти может помочь. Но следует помнить, что всякое лекарство хорошо в меру. Еще в 1987 году Нагле (Nagle) обнаружил, что если маршрутизатор имеет даже беспредельную память, эффект перегрузки может оказаться еще более тяжелым. Это сопряжено со временем, в течение которого пакеты ожидают обработки. Если время ожидания в очереди превышает длительность тайм-аута, появятся дубликаты пакетов, что понижает эффективность системы. Причиной перегрузки может быть медленный процессор или недостаточная пропускная способность какого-то участка сети. Простая замена процессора или интерфейса на более быстродействующий не всегда решает проблему — чаще переносит "узкое место" в другую часть системы. Перегрузка, как правило, включает механизмы, усиливающие ее негативное воздействие. Так, переполнение буфера приводит к потере пакетов, которые позднее должны будут быть переданы повторно (возможно, даже несколько раз). Процессор передающей стороны получает дополнительную паразитную загрузку. Все это указывает на то, что контроль перегрузки является крайне важным процессом.
Перегрузка, в сущности, связана с временной или стационарной несогласованностью характеристик каких-то частей системы.
Следует делать различие между управлением потоком и контролем перегрузки. Под контролем потока подразумевается балансировка потока отправителя и возможностей приема и обработки получателя. Этот вид контроля предполагает наличие обратной связи между получателем и отправителем. В таком процессе участвуют, как правило, только два партнера. Перегрузка же — более общее явление, относящееся к сети в целом или к какой-то ее части. Например, 10 ЭВМ хотят передать одновременно какие-то файлы другим 10 ЭВМ. Конфликта потоков здесь нет, каждая из ЭВМ способна переработать поступающие данные, но сеть не может пропустить поток, генерируемый 10 сетевыми интерфейсами одновременно. Часто эти явления не так просто разделить. Отправитель может получить сообщение ICMP (quench – в случае стека протоколов TCP/IP) при перегрузке получателя или при перегрузке какого-то сетевого устройства.
Начинать надо с решения проблемы выявления перегрузок. Перегрузкой следует считать ситуацию, когда нагрузка в течение некоторого оговоренного времени превышает заданную величину. Параметрами, которые позволяют судить о наличии перегрузки, могут служить:
Когда перегрузка выявлена, нужно передать необходимую информацию из точки, где она обнаружена, туда, где можно что-то сделать для исправления ситуации.
Можно послать уведомление о перегрузке отправителю, загружая дополнительно и без того перегруженный участок сети. Альтернативой этому может быть применение специального поля в пакете, куда маршрутизатор может записать соответствующий код при перегрузке и послать его соседям. Можно также ввести специальный процессор или маршрутизатор, который рассылает периодически запросы о состоянии элементов сети. При получении оповещения о перегрузке информационный поток может быть послан в обход.
При использовании обратной связи путем посылки сообщения запроса понижения скорости передачи следует тщательно настраивать временные характеристики. В противном случае система либо попадает в незатухающий осциллятивный режим, либо корректирующее понижение потока будет осуществляться слишком поздно. Для корректного выбора режима обратной связи необходимо некоторое усреднение. Но применение слишком больших времен усреднения может породить осцилляцию длины очереди.
Преодоление перегрузки может быть осуществлено понижением нагрузки или добавлением ресурсов приемнику.
Положительный результат может быть достигнут изменением механизма подтверждения (например, уменьшением размера окна), вариацией значений таймаутов, изменением политики повторной передачи пакетов. В некоторых случаях позитивного результата можно достичь модификацией схемы буферизации. Иногда решить проблему может маршрутизатор, например, перераспределяющий трафик по нескольким путям.
Одной из причин перегрузки часто являются импульсные загрузки сегмента сети или сетевого устройства. По этой причине любые меры (например, pipelining — конвейер), которые могут выравнивать поток пакетов, безусловно, улучшат ситуацию (например, traffic shaping в сетях ATM). В TCP же с его окнами импульсные загрузки предопределены.
Для систем без обратной связи решение проблемы выравнивания скорости передачи данных может быть решено с помощью алгоритма leaky bucket ( "дырявое ведро" ). Суть этого алгоритма заключается в том, что на пути потока устанавливается буфер, выходной поток которого постоянен и согласован с возможностью приемника. Если буфер переполняется, пакеты теряются.
Потеря пакетов — вещь малоприятная, но это блокирует процессы, которые могут привести к коллапсу сегмента или всей сети.
Там, где потеря пакетов нежелательна, можно применить более гибкий алгоритм.
Алгоритм token bucket (маркерное ведро) предполагает наличие в буферном устройстве (или программе) некоторого количества маркеров. При поступлении на вход буфера пакетов маркеры используются для их транспортировки на выход. Дальнейшая передача данных на выход зависит от генерации новых маркеров. Поступающие извне пакеты тем временем накапливаются в буфере. Таким образом, полной гарантии отсутствия потерь мы не имеем и здесь. Но алгоритм token n -байт (где n — некоторое оговоренное заранее число).
Одним из возможных подходов при решении проблемы перегрузки является алгоритм
Алгоритм
Главной целью алгоритма
Интересное предложение относительно выборочного (приоритетного) отбрасывания пакетов содержится в работе [11.1] в отношении мультимедиа-потоков.
Алгоритм
Существует модификация алгоритма обработки очередей
Алгоритм
(рис 11.2) Ни АТМ-интерфейсы маршрутизаторов, ни АТМ-коммутаторы не предоставляют гарантий QoS для UBR виртуальных каналов. Маршрутизатор CISCO может специфицировать только пиковую скорость передачи ( PCR ) для UBR-канала.
Маршрутизатор автоматически задает параметры, которые нужно использовать в вычислениях
Среднее = (old_evarage * (1-2-n)) + (current_queue_size * 2-n),
где n — экспоненциальный весовой фактор, конфигурируемый пользователем.
Большое значение этого фактора сглаживает пики и провалы значения длины очереди.
(рис 11.3) Осцилляция длины очереди (результат моделирования с помощью NS-2)При этом возможно осциллирование длины очереди, что во многих случаях нежелательно, так как приводит к неэффективному использованию буфера и увеличению дисперсии времени доставки данных.
Когда n становится слишком большим,
Для малых значений n среднее значение длины очереди практически совпадает с текущей ее величиной, что вызывает значительные флуктуации среднего значения. В этом случае реакция n слишком мало,
Вероятность отбрасывания пакета зависит от минимального порога ( Т1 ), максимального порога ( Т2 ) и маркерного деноминатора вероятности PC. Когда T1, Т2 ).
Маркерный деноминатор вероятности ). Когда усредненная длина очереди превышает T2, отбрасываются все пакеты. Минимальный порог T1 следует выбрать достаточно высоким, чтобы максимизировать использование канала. Значение PC можно задать и больше 1, но в этом случае длина очереди никогда не достигнет T2.
В системах, где управление трафиком осуществляется с использованием обратной связи, можно достичь большей эффективности. Одним из механизмов преодоления перегрузок является ).
(рис 11.4) Выбор маршрута нового виртуального канала при наличии перегрузкиНа рис 11.4 (верх) показан пример сети с двумя узлами, характеризующимися перегрузкой (помечены черным цветом). Предположим, что необходимо проложить виртуальный канал из узла А в узел Б. Из графа маршрутов удаляются перегруженные узлы, после чего осуществляется прокладка пути. В нижней части рисунка жирными линиями показан новый виртуальный канал.
Еще более универсальным решением, пригодным для работы с установлением соединения и без, является посылка пакетов блокировки (choke Packets). Маршрутизатор обычно контролирует загруженность всех своих внешних каналов L, которая может принимать значения от 0 до 1. Когда L достигает некоторого порогового значения, отправителю посылается пакет блокировки. При вычислении L следует использовать какую-либо методику усреднения, чтобы избежать слишком частых блокировок.
Когда отправитель получает пакет блокировки, он должен уменьшить трафик, посылаемый получателю, на заданное число процентов. Так как на пути к месту назначения может быть много узлов, это вызовет серию пакетов блокировки. Отправитель должен игнорировать пакеты блокировки в течение некоторого времени после получения первого такого пакета. По истечении этого периода отправитель прослушивает канал на протяжении аналогичного времени, ожидая получения новых пакетов блокировки. Если такой пакет приходит, значит, канал все еще перегружен и отправитель снова должен понизить темп посылки пакетов. Если на протяжении периода прослушивания не приходит новых пакетов блокировки, отправитель может увеличить поток снова.
ЭВМ может понижать трафик, корректируя свои параметры, например ширину окна или темп передачи, на выходе устройства типа "дырявое ведро". Обычно первый блокирующий пакет уменьшает поток вдвое, следующий на — 0,25 и т.д. Увеличение потока также производится аналогичными шагами. Существует большое число вариантов алгоритма управления потоком с использованием пакетов блокировки. Параметром, который контролируется и определяет условие отправки пакета блокировки, может служить длина очереди или степень заполнения буфера.
Практически все описанные алгоритмы предотвращения или преодоления перегрузки предполагают, что отправителю неизвестна степень заполнения буферов по пути и он ищет оптимум методом проб и ошибок. Отсюда следует вывод: нужно стремиться к вариантам, где отправитель получает полную информацию о степени заполнения буферов и о темпе их заполнения вдоль всего маршрута транспортировки.
Ситуация перегрузки не всегда управляется однозначно. Например, при поступлении на вход пакетов от трех источников возможна ситуация, когда приемник посылает блокирующие пакеты всем отправителям, а откликнется сокращением потока только один. В результате этот узел, который "играет по правилам" (как это часто бывает и в жизни), оказывается в проигрыше. В 1987 году Нагле был предложен алгоритм fair queuing (справедливая очередь, см. соответствующий раздел n очередях по завершении такого цикла просмотров-посылок будет послано по одному пакету из каждой очереди. Этот алгоритм используется в некоторых ATM-переключателях. Следует заметить,
что этот алгоритм дает преимущества тем узлам, которые посылают более длинные пакеты. Демерс (Demers) и др. в 1990 году предложили усовершенствование алгоритма. В данном варианте организуется циклический просмотр очередей не попакетно, а побайтно. Система последовательно сканирует очереди и определяет положение концов пакетов. Первыми отправляются более короткие пакеты. Для иллюстрации предлагается рассмотреть рис 11.5.
(рис 11.5) Маршрутизатор с 4 входными каналами, в каждом из которых ждет очереди передачи по одному пакету. В правой части рисунка представлен порядок посылки этих пакетовПакеты на рисунке имеют от трех до девяти октетов. Порядок пересылки октетов показан в левой части рисунка. В отсутствие поступления новых пакетов кадры, записанные в буфер, будут переданы в порядке, представленном в правой части рисунка. Особенностью этого алгоритма является равенство приоритета всех каналов.
При передаче данных на большие расстояния с большими значениями RTT эффективность использования метода блокирующих пакетов снижается. Пока блокирующий пакет дойдет через ряд промежуточных узлов до отправителя, на вход получателя поступит большое число пакетов, которые не только усугубят ситуацию перегрузки, но и могут вызвать потерю какой-то их доли, что в свою очередь может потребовать повторной пересылки следовавших за ними кадров. Для повышения эффективности часто применяется схема, при которой блокирующие пакеты воздействуют на все маршрутизаторы по пути своего следования. В этом случае снижения потока можно ожидать уже через время, равное RTT до узла, ближайшего к получателю пакетов. Такая схема требует, чтобы все промежуточные узлы имели достаточно емкие буферы, в противном случае возможны потери.
В протоколе TCP используется алгоритм управления трафиком, называемый "скользящее окно". Здесь размер окна, которое определяет число сегментов, посылаемых без получения подтверждения, варьируется в зависимости от наличия потерь пакетов. При большой вероятности потери система переходит в режим, когда очередной пакет не посылается до тех пор, пока не будет подтверждено получение предшествующего.
При серьезных перегрузках, когда потери становятся значительными, нарушается механизм вычисления значений RTT и тайм-аутов, что может приводить к труднопредсказуемым последствиям.
Следует обратить внимание, что в протоколе UDP какого-либо механизма управления трафиком не предусмотрено. По этой причине для мультимедийных задач, следует предусматривать другие, например ICMP-способы подавления перегрузки (хотя это часто неприемлемо и решение следует искать в привлечении методов резервирования или DiffServ).
Если другие способы испробованы, а перегрузка не исчезла, маршрутизатор начинает отбрасывать приходящие пакеты, которые уже не может обработать. Самое простое — это предоставить случаю выбор отбрасываемых пакетов. Но это не лучшая тактика. В случае пересылки мультимедийных данных предпочтение следует отдавать последним полученным пакетам, а "старые" пакеты выбрасывать. При передаче файлов, наоборот, "старый" пакет имеет приоритет, ведь если его отбросить, придется повторно передавать не только его, но и все последующие пакеты. Некоторые методы передачи изображения требуют передачи время от времени всего кадра с последующей пересылкой только фрагментов, где произошли изменения. В таких условиях потеря пакета, составляющего базовый кадр, менее желательна. Сходные обстоятельства могут возникать и в других приложениях. Можно помечать пакеты, присваивая им определенные уровни приоритетов, что позволит осознанно принимать решение об отбрасывании того или иного пакета в условиях перегрузки. В перспективе проблема может быть решена на чисто коммерческой основе: компонента трафика, помеченная как высокоприоритетная, будет оплачиваться по более высокому тарифу. В некоторых сетях определенное количество пакетов объединяется в группы, образующие сообщение. Если одна ячейка такого сообщения выброшена, все сообщение будет повторно переслано (смотри, например, адаптационные уровни сетей ATM).
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.