Алгоритмы управления очередями








































Алгоритмы управления очередями
План лекции 1. Задачи управления очередями. 2. Общая схема и функции маршрутизатора. 3. Планировщики обслуживания. 1. FIFO. 2. Очереди с приоритетами. 3. Пользовательские очереди. 4. Справедливые очереди. 5. Взвешенные справедливые очереди. 6. Очереди на основе класса. 7. Комбинированные очереди. 4. Алгоритмы управления очередями 8. Пассивные алгоритмы управления очередями. 9. Активные алгоритмы управления очередями 1. RED. 2. WRED.
1. ЗАДАЧИ УПРАВЛЕНИЯ ОЧЕРЕДЯМИ
Задачи управления очередями • обеспечение требований качества обслуживания (Qo. S) для разных типов трафика; • обеспечение справедливого распределения ресурсов между конкурирующими потоками данных; • обнаружение, предотвращение и борьба с перегрузками.
Обеспечение требований Qo. S для разных типов трафика Основные параметры Qo. S: • полоса пропускания (Bandwidth); • задержка при передаче пакета (Delay); математическое ожидание где ti – зедержка i-го пакета, N – количество пакетов. • колебания (Jitter); коэффициент вариации • вероятность потери пакета (PER – Packet Error Rate, ); где BER (Bit Error Rate) – вероятность битовой ошибки, n – длина пакета.
Обеспечение требований Qo. S для разных типов трафика Типы трафика: • потоковые мультимедиа-приложения требуют гарантированную пропускную способность канала; • Vo. IP и видеоконференция требуют небольших значений джиттера и задержки; • ряд приложений, например, удалённое управление, требуют гарантированного уровня надёжности.
Типы нагрузки Основными протоколами транспортного уровня для IP- сетей являются UDP (User Datagram Protocol) и TCP (Transmission Control Protocol). Протокол TCP для передачи данных по сети создаёт виртуальное соединение. Механизмы протокола позволяют изменять скорость передачи информации и реагировать на перегрузки сети. Информацию о перегрузке или состоянии близком к перегрузке протокол получает либо с помощью механизма ECN, либо при обнаружении потерянных пакетов. В зависимости от параметров устанавливаемого соединения (RTT – round trip time ) протокол TCP может реагировать на перегрузки с разной скоростью. Протокол UDP для передачи данных не создаёт виртуальных соединений и не содержит механизмов гарантированной доставки, поэтому он не позволяет обнаруживать перегрузки и бороться с ними.
Типы нагрузки В IP-сетях выделяют три типа нагрузки: • Неадаптивная нагрузка: нагрузка этого типа забирает столько сетевых ресурсов, сколько для неё требуется, при наступлении перегрузок источник не снижает скорость. Это нагрузка, создаваемая протоколом UDP. Например: некоторые приложения передачи аудио и видео потоков; • Устойчивая нагрузка: соединения TCP с малым значением RTT. Эти соединения достаточно быстро реагируют на возникающие перегрузки, снижая скорость источника. Например: HTTP-трафик; • Неустойчивая нагрузка: медленные TCP- соединения с высоким значением RTT. Время реакции таких соединений на перегрузку сравнительно велико. Например: трафик Telnet.
Обеспечение справедливого распределения ресурсов Справедливое распределение ресурсов ( fair share или fairness ) является одним из основных принципов функционирования сетей на базе потокола IP. Основная идея заключается в равнозначном распределении полосы пропускания между конкурирующими пакетами/потоками вне зависимости от нагрузки. В общем случае, когда нагрузка в сети невысока, то требования по обслуживанию всех пакетов/потоков выполняются. Если же нагрузка на сетевом узле становится высокой, возрастает вероятность того, что пакеты одного или нескольких потоков займут все сетевые ресурсы, при этом пакеты других потоков будут блокированы. Разработан ряд методов и механизмов, позволяющих избежать такой ситуации.
Обнаружение, предотвращение и борьба с перегрузками Под перегрузкой понимается такое состояние сети, при котором основные показатели качества обслуживания существенно ухудшаются. Перегрузки могут возникать как на отдельных участках сети (локальные перегрузки), так и распространяться на всю сеть (глобальные перегрузки). Перегрузка наступает, когда суммарная скорость входящего потока маршрутизатора превышает скорость исходящего, либо имеется несогласованность скоростей на интерфейсах.
2. ОБЩАЯ СХЕМА И ФУНКЦИИ МАРШРУТИЗАТОРА
Функциональная схема маршрутизатора
Функции маршрутизатора Классификация трафика – распределение пакетов входящего трафика по соответствующим очередям для обслуживания. Классификация проводится по заголовку протокола сетевого уровня модели OSI ( IP, IPX ). В протоколе IP параметрами для классификации могут служить адрес источника, адрес получателя, значение поля DSCP (Differentiated Services Code Point), информацию о протоколах высокого уровня, которые содержит пакет. Сглаживание трафика (shaping) — ограничение пропускной способности канала для отдельного узла сети ниже технических возможностей канала до узла. Шейпинг обычно используется как средство ограничения максимального потребления трафика со стороны узла сети. Управление трафиком (policing) – комплекс функций по сопоставлению трафика с заданным профилем и формирование трафика с требуемым профилем.
Функции маршрутизатора Алгоритмы управления очередями решают вопрос, когда и какой пакет необходимо сбрасывать для предотвращения возникновения или увеличения степени перегрузки. Функционирование алгоритма управления очередями оценивается как его способность эффективно контролировать трафик во время периодов перегрузки. Сети передачи данных используют принцип разделения ресурсов. Конкуренция между потоками за право обладания ресурсами должна быть справедливой. Алгоритмы планирования обслуживания предназначены для обеспечения справедливого распределения ресурсов. Базовым критерием обеспечения принципа « спаведливого распределения ресурсов» в сетевом мире считается критерий max-min.
Критерий max-min был введён и сформулирован Jaffe J. M. в статье « Bottleneck flow control » в 1981 году: «Пропускная способность для каждого потока должна быть как минимум равна пропускной способности каждого другого потока, проходящего через тот же критический ресурс» . Правила по справедливому выделению ресурсов конкурирующим потокам: • Ресурсы выделяются в соответствии с очередностью поступления запросов; • Пользователю никогда не выделяется ресурсов больше, чем им запрошено: • Всем пользователям с неудовлетворенными запросами выделяется одинаковое количество ресурсов.
Критерий max-min Количество ресурсов, которое получает каждый новый пользователь в соответствии с критерием max-min , равно количеству ресурсов, занимаемых пользователем с минимальными запросами, остальные ресурсы распределяются равномерно среди пользователей с неудовлетворенными запросами. Такой принцип обеспечения справедливого распределения ресурсов использует простой факт: для нового потока в нагруженном узле ресурсы могут быть выделены только путём отбора от существующих потоков. Поэтому считается, что безопаснее забрать ресурсы у потока с неудовлетворенными запросами, чем у потока, который и так занимает минимальное количество ресурсов. Критерий max-min даёт приоритет потокам с маленькими запросами.
3. АЛГОРИТМЫ ПЛАНИРОВАНИЯ ОБСЛУЖИВАНИЯ
First-In-First-Out (FIFO) «Первым пришёл — первым ушёл» В очереди FIFO пакеты помещаются в одну общую очередь и выбираются из неё в том порядке, в котором они поступили. Во всех устройствах с коммутацией пакетов алгоритм FIFO используется по умолчанию. Достоинства: простота в реализации, отсутствие необходимости в настройке. Недостатки: невозможность дифференцированной обработки пакетов разных потоков, невозможность реализации справедливого распределения ресурсов, возможность «глобальной синхронизации» адаптивных источников нагрузки. 3 2 1 С С – сервер.
Priority Queue (PQ) Алгоритм очередей с приоритетами подразумевает наличие нескольких очередей – по одной для каждого класса приоритета. Поступающий пакет помещается в очередь, соответствующую его приоритетному классу. До тех пор пока из более приоритетной очереди не будут выбраны все пакеты, устройство не переходит к обслуживанию менее приоритетных очередей. Достоинства: обеспечивает высокое качество обслуживания для пакетов из самой приоритетной очереди. Недостатки: качество обслуживания более низких приоритетных классов сильно зависит от интенсивности трафика высших приоритетов. Приоритетное обслуживание обычно применяется для чувствительного к задержкам трафика, имеющего небольшую интенсивность. Например, голосовой трафик.
Priority Queue (PQ) Обычно в IP- сетях используются 4 класса приоритетов: низкий, нормальный, средний и высокий приоритет. высокий приоритет 2 1 средний приоритет 3 К С нормальный приоритет 5 4 низкий приоритет 6 К – классификатор, C – сервер.
Custom Queue (CQ) Алгоритм пользовательских очередей оборудования CISCO позволяет обеспечить необходимую часть пропускной способности канала для каждого типа трафика. В алгоритме применяются 17 очередей, пронумерованных от 0 до 16. Очередь с номером 0 зарезервирована для системных нужд и поэтому не доступна пользователю. Очереди от 1 до 16 – доступные для настройки пользователю. Для каждой очереди задаются правила классификации трафика (признаками для классификации могут быть любые поля заголовков протокола IP ) и процент пропускной способности, необходимый для обслуживания. Достоинства: гибкая система классификации и управления трафиком. Недостатки: сложность настройки. Алгоритм может применятся в случаях предсказуемых соотношений разных типов трафика в поступающей нагрузке.
Custom Queue (CQ)
Алгоритм GPS Для справедливой приоретизации доступа планировщика к очередям маршрутизатора был разработан алгоритм GPS (Generalized Processor Sharing) – обобщенный алгоритм распределения процессорного времени. В соответствии с алгоритмом GPS каждый поток трафика помещается в собственную логическую очередь, после чего бесконечно малый объём данных из каждой непустой очереди обслуживается по круговому принципу. Необходимость обработки бесконечно малого объёма данных на каждом круге обусловлена требованием обслуживания всех непустых очередей на любом конечном интервале времени. GPS является идеальной моделью, обеспечивающей в непрерывном времени принцип «справедливого распределения ресурсов» в соответствии с критерием max-min.
Fair Queue (FQ) Алгоритм справедливой очереди (FQ) является упрощенной реализацией алгоритма GPS. Порядок обслуживания пакетов определяется путём вычисления порядкового номера каждого полученного пакета. Первыми обслуживаются пакеты с минимальным порядковым номером. Достоинства: реализация принципа справедливого распределения ресурсов. Недостатки: невозможность учёта приоритетов разных классов трафика.
Fair Queue (FQ) Порядковый номер пакета = счетчик циклов + длина пакета.
Fair Queue (FQ)
Weighted Fair Queue (WFQ) Алгоритм взвешенной справедливой очереди (WFQ) является модификацией алгоритма FQ , в которой добавлен параметр вес. Вес соответствует приоритету класса пакетов и определяется на основании значения поля IP-приоритета в заголовке пакета. вес = 4096 / (IP-приоритет +1); порядковый номер пакета = счетчик цикла + (размер пакета * вес).
Weighted Fair Queue (WFQ) Достоинства: более точная аппроксимация алгоритма GPS, возможность учета приоритетов. Недостатки: вычислительная сложность.
Class-Based Queue (CBQ) Алгоритм очередей на основе на класса выделяет подочередь для обработки класса трафика, а не его отдельного потока, как предусматривается алгоритмом WFQ. Класс трафика может быть определен на основе различных параметров, таких, как IP-приоритет, код DSCP (Differentiated Serviced Code Point – код дифференцированной услуги), входной интерфейс и Qo. S-группа.
Class-Based Weighted Fair Queue (CBWFQ) Взвешенный алгоритм равномерного обслуживания очередей на основе на класса – это комбинированный алгоритм. Он позволяет явно указать требуемую минимальную полосу пропускания для каждого класса трафика. Это выгодно отличает данный алгоритм от алгоритма WFQ на основе потока, в соответствии с которым минимальная полоса пропускания потока определялась неявно на основании весов всех активных потоков. В оборудовании CISCO так же применяется алгоритм очередь с малыми задержками ( LLQ – Low Latency Queue ). LLQ является расширением алгоритма CBWFQ , в который добавляется одна дополнительная очередь с приоритетом, трафику которой обеспечивается минимальная задержка при любой нагрузке на маршрутизатор.
4. АЛГОРИТМЫ УПРАВЛЕНИЯ ОЧЕРЕДЯМИ
Алгоритмы пассивного управления очередью • Tail Drop (Сброс хвоста) Сброс поступающего пакета осуществляется только тогда, когда в очереди нет свободных мест. • Random drop on full (Случайный сброс) При переполнении очереди осуществляется вычисление вероятности, с которой некоторый пакет сбрасывается. • Drop front on full (Сброс первого в очереди) При переполнении очереди осуществляется вычисление вероятности, с которой первый стоящий в очереди на обслуживание пакет сбрасывается. Достоинства: простота в реализации. Недостатки: невозможность обеспечения справедливого распределения ресурсов, невозможность заблаговременного определения перегрузок.
Алгоритмы активного управления очередью Алгоритмы активного управления очередями при разработке были ориентированы на соединения TCP в связи с тем, что именно в протоколе TCP реализованы механизмы регулирования нагрузки в зависимости от состояния сети. Реализация алгоритмов активного управления очередями позволяет добиться ряда положительных моментов: • Возможность избежать проблемы захвата очереди пакетами одного или нескольких источников; • Решить проблему отсутствия возможности заблаговременного обнаружения перегрузки; • Увеличить коэффициент использования сетевых ресурсов.
Алгоритм RED Алгоритм управления очередями «вероятностное заблаговременное определение перегрузки» (Random Early Detection) позволяет контролировать нагрузку в рамках очереди маршрутизатора и при обнаружении перегрузки или состояния близкого к перегрузке осуществлять вероятностный сброс пакетов. Сброс пакетов осуществляется на базе вычисления вероятности, поэтому: • Можно соблюдать принцип «справедливого распределения ресурсов» ; • Можно осуществлять последовательный сброс пакетов, принадлежащих различным соединениям, т. е. избегать «глобальной синхронизации» . Алгоритм RED ориентирован на работу с протоколом TCP , поэтому сброс пакетов позволит источнику нагрузки понизить поступающую нагрузку.
Алгоритм RED
Алгоритм RED
Алгоритм RED Среднее значение размера очереди avg вычисляется следующим образом: где w – весовой коэффициент, q – текущий размер очереди. Вероятность маркировки/сброса пакета вычисляется согласно выражению:
Алгоритм RED Вероятность, на основе которой осуществляется маркировка/сброс поступающего пакета вычисляется с использованием счетчика count количества пакетов, пришедших в очередь с момента последнего сброса: Дополнительной возможной опцией алгоритма RED является измерение среднего размера очереди не пакетах, а в байтах. В этом случае вероятность маркировки/сброса: Таким образом, пакеты большего размера будут маркироваться или сбрасываться с большей вероятностью, нежели пакеты малой длины.
Алгоритм WRED Алгоритм взвешенного вероятностного заблаговременного определения перегрузки
Литература • Кучерявый Е. А. - Управление трафиком и качество обслуживания в сети Интернет. - СПб. Наука и Техника, 2004. - 336 с. • Вагешна Ш. - Качество обслуживания в сетях IP. – Пер. с англ. – М. : Издательский дом «Вильямс» , 2003. – 368 с. • Олифер В. Г. , Олифер Н. А. - Компьютерные сети. Принципы, технологии, протоколы (4 -ое изд. ) – СПб. : Питер, 2010. – 944 с.

