Приоритетное обслуживание

Алгоритмы приоритетного обслуживания очень популярны во многих областях вычислительной техники, в частности в операционных системах, когда одним приложениям нужно отдать предпочтение перед другими при обработке их в муль­типрограммной смеси. Применяются эти алгоритмы и для преимущественной по сравнению с другими обработки одного класса трафика.

Механизм приоритетного обслуживания основан на разделении всего сетевого трафика на небольшое количество классов и последующего назначения каждому классу некоторого числового признака — приоритета.

Классификация трафика представляет собой отдельную задачу. Пакеты могут разбиваться на приоритетные классы на основании различных признаков: адреса назначения, адреса источника, идентификатора приложения, генерирующего этот трафик, любых других комбинаций признаков, которые содержатся в заголовках пакетов. Правила классификации пакетов представляют собой часть политики администрирования сети.

Точка классификации трафика может размещаться в каждом коммуникационном устройстве. Более масштабируемое решение — размещение функций классифи­кации трафика в одном или нескольких устройствах, расположенных на границе сети (например, в коммутаторах корпоративной сети, к которым подключаются компьютеры пользователей, или во входных маршрутизаторах сети поставщика услуг). В этом случае необходимо специальное поле в пакете, в котором можно запомнить назначенное значение приоритета, чтобы им могли воспользоваться остальные сетевые устройства, обрабатывающие трафик после классифицирую­щего устройства. Такое поле имеется в заголовке многих протоколов. В тех же случаях, когда специального поля приоритета в заголовке нет, разрабатывается
дополнительный протокол, который вводит новый заголовок с таким полем (так произошло, например, с протоколом Ethernet).

Приоритеты могут назначаться не только коммутатором или маршрутизатором, но и приложением на узле-отправителе. Необходимо также учитывать, что если в сети отсутствует централизованная политика назначения приоритетов, каждое сетевое устройство может не согласиться с приоритетом, назначенным данному пакету в другой точке сети. В этом случае оно перепишет значение приоритета в соответствии с локальной политикой, принятой непосредственно на данном устройстве.

Входной трафик
Средний
Нормальный
Классификатор (протокол, адреса) Низкий

В сетевом устройстве, поддерживающем приоритетное обслуживание, имеется несколько очередей (буферов), по одной для каждого приоритетного класса. Па­кет, поступивший в период перегрузок, помещается в очередь, соответствующую его приоритетному классу[18]. На рис. 7.9 приведен пример использования четырех приоритетных очередей с высоким, средним, нормальным и низким приори­тетом. До тех пор пока из более приоритетной очереди не будут выбраны все имеющиеся в ней пакеты, устройство не переходит к обработке следующей, ме­нее приоритетной очереди. Поэтому пакеты с низким приоритетом обрабатыва­ются только тогда, когда пусты все вышестоящие очереди: с высоким, средним и нормальным приоритетами.


Очереди разных приоритетов

Высокий
Выбор из очереди, если все более приоритетные очереди пусты

Планировщик (абсолютные приоритеты)

Выходной трафик

Выходная очередь

Буферы различной длины Рис. 7.9. Приоритетные очереди

Размер буфера сетевого устройства определяет максимальную длину очереди ожидающих обслуживания пакетов, если пакет поступает при заполненном бу­фере, то он просто отбрасывается. Обычно по умолчанию всем приоритетным очередям отводятся одинаковые буферы, но многие устройства разрешают адми­нистратору назначать каждой очереди буфер индивидуального размера. Размер буфера определяется в идеальном случае таким образом, чтобы его хватало с неко­торым запасом для хранения очереди среднестатистической длины. Однако ус­тановить это значение достаточно сложно, так как оно изменяется в зависимости
от нагрузки сети, поэтому требуется постоянное и длительное наблюдение за ра­ботой сети. В общем случае, чем выше значимость трафика для предприятия, чем больше его интенсивность и пульсации, тем больший размер буфера требу­ется этому трафику. В примере, приведенном на рис. 7.9, для трафика высшего и нормального приоритета выбраны большие размеры буферов, а для остальных двух классов — меньшие. Мотивы принятого решения для высшего приоритета очевидны, а трафик нормального приоритета имеет, очевидно, высокую интен­сивность и значительный коэффициент пульсаций.

Приоритетное обслуживание очередей обеспечивает высокое качество обслужи­вания для пакетов из самой приоритетной очереди. Если средняя интенсивность их поступления в устройство не превосходит пропускной способности выходно­го интерфейса (и производительности внутренних продвигающих блоков самого устройства), то пакеты высшего приоритета всегда получают ту пропускную способность, которая им нужна. Уровень задержек высокоприоритетных пакетов также минимален. Однако он не нулевой и зависит в основном от характеристик потока этих пакетов — чем выше пульсации потока и его интенсивность, тем ве­роятнее возникновение очереди, образованной пакетами данного высокоприори­тетного потока. Трафик всех остальных приоритетных классов почти прозрачен для пакетов высшего приоритета. Слово «почти» относится к ситуации, когда высокоприоритетный пакет вынужден ждать завершения обслуживания низко­приоритетного пакета, если его приход совпадает по времени с началом продви­жения низкоприоритетного пакета на выходной интерфейс.

Что же касается остальных приоритетных классов, то качество их обслуживания будет ниже, чем у пакетов самого высокого приоритета, причем уровень сниже­ния может быть очень существенным. Если коэффициент нагрузки выходного интерфейса, определяемый только трафиком высшего приоритетного класса, приближается в какой-то период времени к единице, то трафик остальных клас­сов просто на это время замораживается. Поэтому приоритетное обслуживание обычно применяется для класса трафика, чувствительного к задержкам, имею­щего небольшую интенсивность. При таких условиях обслуживание этого класса не слишком ущемляет обслуживание остального трафика. Например, голосовой трафик чувствителен к задержкам, но его интенсивность обычно не превышает 8-16 Кбит/с, так что при назначении ему высшего приоритета ущерб остальным классам трафика будет не очень значительным.

Однако в сети могут наблюдаться и другие ситуации. Например, видеотрафик также требует приоритетного обслуживания, но имеет гораздо более высокую интенсивность. Для таких случаев разработаны алгоритмы обслуживания очере­дей, дающие низкоприоритетному трафику некоторые гарантии даже в периоды повышения интенсивности высокоприоритетного трафика.

Внимательный читатель, очевидно, уже обратил внимание на то, что при описа­нии работы приоритетных очередей фигурировали не отдельные потоки, а клас­сы трафика. Это важная особенность, которая относится не только к приоритет­ным алгоритмам, но и ко многим другим механизмам поддержания качества обслуживания.

Сеть может обслуживать трафик с различной степенью гранулярности. Отдель­ный поток представляет собой минимальную единицу обслуживания, которую принимают во внимание механизмы обеспечения заданных параметров QoS. Если мы обеспечиваем каждому потоку собственные параметры QoS, то это поддержа­ние качества обслуживания на уровне потоков. Если мы объединяем несколько потоков в единый поток и перестаем различать отдельные потоки при обеспе­чении параметров QoS, то это поддержание качества обслуживания на уровне классов трафика. Такие классы также называют агрегатами трафика.

ВНИМАНИЕ --------------------------------------------------------------------------------------------------------

Для того чтобы потоки можно было объединить в агрегат, нужно, чтобы они предъявляли одинаковые требования к качеству обслуживания и имели общие точки входа в сеть и вы­хода из сети.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: