Алгоритмы приоритетной обработки очередей (Priority Queuing) используются тогда, когда в смеси потоков пакетов, которые транспортируются через канал с данными разнородных приложений, необходимо обеспечить преимущество в обработке одних приложений над другими. В частности, эти алгоритмы используются для обеспечения преимущества в обработке одного класса трафика в сравнении с другими классами.

Механизм приоритетной обработки трафика основан на делении всего возможного в данных условиях сетевого трафика на небольшое количество классов и назначении каждому классу некоторого числового признака - приоритета. Деление на классы (классификация) может осуществляться разными способами. Способ классификации, как правило, не связан непосредственно с работой алгоритмов обслуживания, реализующих механизмы приоритезации, -главное, чтобы все пакеты, которые поступают в очередь, имели признак приоритетности. Пакеты могут разбиваться на классы по приоритетам в соответствии с типом сетевого протокола, по которым обрабатываются потоки пакетов, образующих трафик (например, DECnet, IPX или IP, такой способ классификации подходит только для устройств, работающих на канальном уровне согласно семиуровневой модели OSI ISO), или на основании адресов назначения и отправителя, или идентификаторов пользовательских приложений, или любых других комбинаций признаков, содержащихся в полях форматов задействованных сетевых протоколов.

Следует иметь в виду, что правила классификации потоков пакетов и выделения потоков приоритетных классов представляют собой существенную часть политики управления ресурсами сетевой инфраструктуры. При этом точки выполнения процедур классификации трафика могут размещаться как в узловых сетевых устройствах, так и вне них. Обычно классификацию трафика осуществляют в одном или в нескольких устройствах, которые расположены на интерфейсах «пользователь - поставщик услуг», например, в узловых маршрутизирующих устройствах абонентского доступа или в сетевом оборудовании, размещённом на стороне покупателей услуг (в частности, в коммутаторах корпоративной сети, к которым подключаются компьютеры пользователей). Подобный вариант классификации предполагает наличие в формате пакетов специального поля для помещения в него признака приоритетности пакетов, чтобы этим признаком могли воспользоваться другие сетевые устройства, которые обрабатывают трафик после устройства, осуществляющего функцию классификации. Такое поле существует в спецификациях заголовков многих сетевых протоколов. В тех же случаях, когда спецификация телекоммуникационного протокола не предусматривает существования специального поля приоритетности, в целях обеспечения возможности классификации трафика используется дополнительный протокол, позволяющий использовать новый заголовок с таким полем. Так, например, в форматах большинства вариантов протокола ЕМгегпеЛ поле приоритетности не существует. Поэтому в целях обеспечения возможности классификации трафика Ег/гетеЛ применяют специально разработанный протокол со спецификацией 1ЕЕЕ 802.10/р, формат которого имеет дополнительное трёх битовое поле приоритетности.

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

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

В общем случае, механизм, реализующий приоритетность обработки в разрезе классов трафика, функционирует следующим образом. По числу классов обрабатываемого трафика на выходе буферной памяти сетевого устройства создаётся несколько очередей. Пакеты, поступающие в сетевое устройство в моменты возникновения перегрузок, направляются в очереди, соответствующие их приоритетным классам. На рисунке 5.2 приведен пример использования четырех приоритетных очередей: с высоким, средним, нормальным и низким приоритетами. Приоритеты очередей определяют абсолютный характер преимуществ во время обработки пакетов, т.е., пока в более приоритетной очереди не будут обработаны все имеющиеся пакеты, устройство не должно переходить к обработке менее приоритетной очереди. Поэтому пакеты, имеющие средний приоритет, всегда обрабатываются только тогда, когда очередь пакетов с высоким приоритетом - пустая. Соответственно, пакеты с низким приоритетом обрабатываются только тогда, когда являются пустыми все более приоритетные очереди: с высоким, средним и нормальным приоритетами. Физически пакеты, ожидающие обслуживания в очередях, размещаются в буферной памяти портов сетевого устройства. Эта буферная память имеет конечный размер. Максимальная длина буфера определяет максимальное количество пакетов, которые могут сохраняться в очереди данного приоритета. Поэтому во время сетевого администрирования необходимо учитывать возможность переполнения очередей и принимать соответствующие действия. Чаще всего, на практике «по умолчанию» всем приоритетным очередям отводятся одинаковые по размеру буфера. Но дифференцированное обслуживание должно предусматривать использование механизма создания буферов с индивидуальным для каждой очереди размером памяти.

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

Рисунок 5.2 - Приоритетное обслуживание очередей в пакетных сетях

В общем случае, размер буферной памяти выбирают, исходя из таких субъективных соображений: чем выше «ценность» трафика в приложениях пользователей, а также чем больше его интенсивность и пульсации, тем больший размер буфера нужно выделять для этого трафика. В примере, приведенном на рисунке 5.2, для трафика высшего и нормального приоритетов выбраны большие размеры буферной памяти, а для других двух классов - меньшие размеры. Мотивы принятого решения относительно трафика с высшим приоритетом - очевидны. Что касается трафика с нормальным приоритетом, то относительно него в данном примере выдвинуто предположение, что он имеет высокую интенсивность и значительный коэффициент пульсаций.

Механизм приоритетного обслуживания очередей обеспечивает высокое качество обслуживания потоков пакетов из очереди с высоким приоритетом в случаях, когда средняя интенсивность поступления в устройство пакетов с высоким приоритетом не превосходит величину пропускной способности вводного интерфейса (и производительности внутренних блоков самого устройства, которое продвигает пакеты). В этих случаях высокоприоритетные пакеты всегда получают ту. часть пропускной способности, которая им нужна для обеспечения нормальной работы приложений. В результате, уровни задержек высокоприоритетных пакетов при их обработке в устройстве будут минимальными, однако не пренебрежимо малыми и зависящими, в основном, от характеристик потока этих пакетов - чем выше пульсации потока и его интенсивность, тем выше уровни задержек. Трафик всех других потоков, относящихся к более низким по приоритетности классам, будет почти прозрачным для пакетов высшего приоритета. Слово «почти» относится к ситуации, когда высокоприоритетный пакет должен всё же ждать завершения обслуживания низкоприоритетного пакета, так как иногда момент его поступления на вход устройства совпадает по времени с моментом начала продвижения низкоприоритетного пакета на выводной интерфейс.

Качество обслуживания пакетов с признаками более низких приоритетов по схеме приоритетного обслуживания всегда будет худшим в сравнении с качеством обслуживания пакетов наиболее высокого приоритета. В большинстве случаев уровень снижения качества заранее предусмотреть довольно тяжело. Это снижение может быть существенным, если, например, высокоприоритетный трафик начинает передавать данные с высокой интенсивностью. В частности, нужно иметь в виду, если коэффициент загрузки устройства, в основном, будет определяться трафиком высшего приоритетного класса и приближаться в какой-то период времени к единице, то в этот период трафик других классов будет практически замороженным. Т.е. возникнет проблема монополизации ресурсов обслуживания со стороны высокоприоритетного трафика. Поэтому на практике стараются создать ситуацию, когда в сети существует лишь один высокоприоритетный класс трафика, пусть и чувствительный к задержкам, но со сравнительно небольшой интенсивностью (в сравнении с производительностью сетевого оборудования). При таких условиях приоритетное обслуживание трафика с высоким приоритетом будет в допустимой мере ухудшать качество обслуживания трафика других классов приоритетности. Например, с высоким приоритетом, как правило, обслуживается голосовой трафик. Он, хотя и чувствительный к задержкам, но не является интенсивным - его интенсивность обычно не превышает 8-64 кбит/с.

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

Традиционный алгоритм fifo | Сети передачи пакетных данных | Взвешенное обслуживание