Технология DiffServ в сетях Ethernet
Технология DiffServ в сетях Ethernet
Основная идея технологии DiffServ (Differential Services) заключается в разделении трафика в сети на несколько крупных классов, для каждого из которых будет обеспечиваться определенный QoS в рамках некоторой области, называемой доменом DiffServ. На границах домена происходит кондиционирование трафика, то есть его классификация, подразумевающая анализ входящих пакетов, сопоставление полученной информации с таблицей потоков, а также маркировка пакетов специальным кодовым словом DSCP (DiffServ Code Point). Данные функции выполняет так называемый порт доступа в домен (port-access).
Далее обработка трафика на промежуточных узлах, принятие решения о направлении пакета в ту или иную очередь осуществляется исключительно по кодовому слову DSCP, расположенному в заголовке пакета IP (поле TOS). Обработка классифицированного трафика внутри домена осуществляется со скоростью коммутации – достаточно считать 6 бит кодового слова и отправить пакет в соответствующую очередь, после чего вступает в действие алгоритм «взвешенного справедливого обслуживания», рис. 2.
Рис. 2. Механизм взвешенного справедливого обслуживания
Возможны различные реализации данного алгоритма в оборудовании разных производителей. Например, в маршрутизаторах Cisco компании Cisco Systems для классификации используется два младших бита из трехразрядного подполя IP Precedence поля TOS. По умолчанию, классу 0 выделяется 10% полосы пропускания, классу 1, 2 и 3 – 20%, 30% и 40% соответственно. Для очередей, основанных на классах QoS, пакеты, не назначенные ни в одну группу, принадлежат группе 0 и автоматически имеют 1% от общей пропускной способности на всю группу. Общий вес остальных групп не может превышать 99%, а если после назначения всех весов остается свободная полоса пропускания в канале, она автоматически отводится под группу 0.
Другой пример реализации - коммутаторы OptiSwitch компании Optical Access, которые предлагают администратору при настройке параметров QoS выбрать один из режимов работы с 4-мя очередями:
- взвешенное круговое обслуживание (Weighted Round Robin, WRR)
- смешанное обслуживание 1/3
- смешанное обслуживание 2/2
- обслуживание с прямым приоритетом (Strict Priority, SP)
В первом случае, каждой очереди назначаются весовые коэффициенты, задаваемые в количестве пакетов или байтов (по умолчанию 1, 2, 3 и 4), в соответствии с которыми происходит продвижение пакетов из очередей. Так, по умолчанию, из высокоприоритетной очереди в выходной буфер будет перенаправляться четыре пакета, а из низкоприоритетной - один. В случае использования механизма прямого приоритета (пункт 4) будет действовать довольно грубое, но эффективное правило – очереди с более низким приоритетом не обслуживаются, если есть хотя бы один необработанный пакет в высокоприоритетной очереди. Этот механизм аналогичен механизму, реализованному в стандарте 802.1Q/p. Во втором и третьем случае имеет место смешанное обслуживание, когда часть очередей работает по WRR-алгоритму, а часть – по SP.
Другим важным средством обеспечения QoS в технологии DiffServ является механизм формирования трафика. Данный механизм предназначен для сглаживания пульсаций «взрывного» трафика, уменьшения неравномерности продвижения пакетов. В аппаратной реализации стандарта DiffServ используется механизм, работающий по алгоритму «token bucket» или «маркерное ведро», рис. 3.
Рис. 3. Алгоритм "token bucket"
Суть алгоритма «token bucket» заключается в следующем. Максимальная средняя скорость отправки потока пакетов из управляющего узла зависит от скорости прибытия в него разрешений на передачу N единиц данных. Очередной пакет может быть отправлен только при получении числа разрешений, достаточного для передачи данных, объем которых больше или равен размеру пакета. Если пакет поступит в управляющее устройство, не располагающее необходимым количеством разрешений, он будет отброшен также как и пакет, поступивший в переполненный буфер-формирователь.
На рис. 4 графически показано, как происходит формирование и сглаживание пульсаций взрывного трафика по алгоритму "token bucket". Пусть имеется некий буфер с конечным объемом. Поступающий со скоростью интерфейса или, для коммутаторов Ethernet, со «скоростью провода» трафик постепенно заполняет буфер-формирователь (коричневая область). Генератор разрешений выдает токены с постоянной скоростью, создавая прообраз идеального трафика, к форме которого стремятся привести входной трафик (скорость генерации показана красной линией). Воздействие механизма, работающего по алгоритму "token bucket", придает трафику на выходе нужную "временную форму" (светло-зеленая область).
Рис. 4. Формирование трафика
Основные понятия технологии DiffServ
Соглашение об уровне сервиса (Service Level Agreement, SLA
) – договор на предоставление услуг между клиентом и провайдером с подробным перечнем предоставляемых услуг. Провайдер услуг должен гарантировать, что трафик клиента будет обслуживаться в соответствии с оговоренными в SLA параметрами QoS.
Поток (flow)
– последовательность пакетов, движущихся от источника А в пункт назначения B (С), каждый из которых может быть однозначно идентифицирован по 16-байтной комбинации из первых 64 байт IP-заголовка и/или заголовка TCP/UDP (номер порта приложения).
Порт доступа (port access) - порт коммутатора для подключения пользователя. Точка классификации/ кондиционирования трафика. Функции порта:
- анализ входящего трафика (чтение заголовков L3 и L4)
- проверка на соответствие в таблице потоков коммутатора и распределение пакетов по очередям в соответствии с описанием потоков
- фильтрация неклассифицированного трафика (пакетов, не принадлежащих ни одному логическому потоку)
- установленное ограничение скорости для каждого потока (алгоритм "token bucket")
- маркировка IP-заголовка пакетов в поле TOS кодовым словом DSCP (DS Code Point)
- анализ входящего трафика (чтение DSCP)
- распределение пакетов по очередям в соответствии с DCSP
- переназначение кодового слова в случае, если порт является выходным из домена DiffServ, для обеспечения соответствия уровней QoS между коммутаторами различных производителей
Внешний порт (exterior port) – соединяет домен DiffServ с внешним миром (вершина домена). Функции порта аналогичны функциям порта доступа. Внешний порт обрабатывает трафик, входящий в домен.