FIFO и приоритетные очереди

 

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

Простейшим механизмом управления потоком пакетов является очередь с дисциплиной «Первый пришел – первый вышел» (First-In, First-Out, FIFO). В этом случае все прибывающие пакеты помещаются в одну общую очередь и обрабатываются последовательно в порядке прибытия (Слайд 2, рисунок внизу, а).

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

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

 

Другим вариантом решения задачи дифференциорования классов обслуживания пакетов является организация нескольких входных очередей (по одной для каждого класса обслуживания), конкурирующих за доступ к ресурсам (CPU и выходная линия) маршрутизатора. Как показано на слайде, выходная линия в любой момент является доступной для пакетов из буфера, соответствующего самому высокому классу обслуживания (например, пакетам потока, чувствительного к величине задержек) и лишь когда он пуст – обслуживается буфер низшего приоритета. Размер буферов в такой архитектуре также может быть различным, что позволяет удовлетворить разные требования к уровню вероятности потери пакетов.

Ресурсы коммутатора всегда ограниченны и ситуация, когда разные информационные потоки вынуждены конкурировать за доступ к ним, является типичной. При этом, рассмотренные выше варианты обеспечения разных классов обслуживания не решают проблему «справедливого» распределения ресурсов маршрутизатора. Действительно, при достаточно высоком трафике высшего приоритета потоки низшего приоритета могут вообще не получить доступа к ресурсам маршрутизатора; не решается также проблема распределения ресурсов между потоками одного класса сервиса, что приводит к монополизации их (ресурсов) более «жадными» приложениями.