Технология Differential Services (Diff-Serv, далее — DS) относится к средствам построения сети с интеграцией сервисов, т.е. позволяет эффективно осуществлять передачу данных и мультимедиа-информации по единой инфраструктуре (подробнее о концепции такой сети и одном из вариантов ее воплощения — технологии Integrated Services, или IS — см. «Сети», 1999, № 10, с. 102).

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

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

Первоначально метод IS создавался рабочей группой Internet Engineering Task Force (IETF) в качестве единственного способа реализации сети с интеграцией сервисов. Несколько позднее появилась технология DS как промежуточное решение проблемы масштабирования IS. Если IS была ориентирована на получателя трафика, то в DS главная роль отведена отправителю потока. В настоящее время DS оформилась в самостоятельное технологическое направление, развитие которого идет параллельно усовершенствованию IS.

Архитектурная модель DS

Такая модель является довольно простой. Попадающие в сеть пакеты классифицируются и при необходимости подвергаются на границе сети процессу так называемого кондиционирования. Там же осуществляется маркировка пакетов с учетом их принадлежности к одному из поддерживаемых в сети классов обслуживания, именуемых агрегаторами поведения (Behavior Aggrege, BA). Маркер, идентифицирующий агрегатор поведения, представляет собой кодовое слово (DS CodePoint, DSCP), которое помещается в заголовок каждого IP-пакета. Приоритет и тип обслуживания пакетов в сети DS определяются типом локального поведения (Per-Hop Behavior, PHB). Набор значений кодовых слов DSCP отображается на некоторый набор типов локального поведения. PHB локален в том смысле, что он задает метод локального обслуживания пакета (с тем или иным значением DSCP) маршрутизатором, в котором находится пакет, а точнее — способ обслуживания пакета при его отправке в канал, подключенный к выходному для данного пакета интерфейсу маршрутизатора.

Из этого небольшого числа строительных блоков — наборов маркеров, типов локального поведения и механизма кондиционирования/фильтрации потоков на границе сети — могут быть сконструированы системы поддержки различных видов сетевых сервисов. Основные элементы архитектуры DS описаны в нескольких спецификациях:

  • RFC 2474 задает способ маркировки пакетов;
  • RFC 2598 и 2597 определяют два основных вида сервиса;
  • RFC 2475 описывает взаимодействие компонентов в архитектурной модели DS.

Сравнение с другими подходами

Возможность указания приоритета, в соответствии с которым пакет должен обрабатываться сетевыми устройствами, была заложена в спецификации протокола IP (RFC 791). Чем выше приоритет, указанный в заголовке пакета, тем быстрее последний должен получить доступ к разделяемым ресурсам сети. Разработчики архитектуры DS расширили эту модель путем тщательного специфицирования роли граничных узлов и кондиционеров трафика. Кроме того, использование стандартизованных типов локального поведения позволяет реализовать более полный и качественный набор сервисов.

Этот подход несколько отличается от рекомендуемого документом RFC 1349. Согласно данной спецификации поле типа сервиса (Type of Service, TOS) в заголовке IP-пакета содержит характеристики требующихся для этого пакета услуг — значения максимальной задержки, минимальной пропускной способности и т.д. Маршрутизатор может выбирать пути передачи и методы обслуживания трафика для удовлетворения запросов приложений, чьи пакеты отмечены той или иной маркировкой сервиса. В DS же, во-первых, маркер не используется для выбора маршрута, а лишь определяет тип локального поведения узла по отношению к конкретному пакету. Во-вторых, пространство возможных значений поля TOS недостаточно велико для поддержки большого числа сервисов. В-третьих, из-за отсутствия стандартизованных типов локального поведения необходима индивидуальная настройка каждого узла сети на определенный способ обслуживания пакетов, содержащих различные значения поля TOS в своих заголовках.

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

Кодовое слово DS в заголовке

Согласно спецификациям DS, кодовое слово помещается в поле TOS заголовка IPv4 или в поле класса трафика заголовка IPv6. Для кодировки DSCP используются шесть младших бит, а два старших зарезервированы для дальнейшего развития технологии, и их значения должны игнорироваться DS-системами. Исторически, три младших бита поля типа IP-сервиса применялись для обозначения относительного приоритета данного пакета. В целях сохранения частичной обратной совместимости с более ранними системами в архитектуре DS предусмотрено резервирование восьми типов PHB для обслуживания пакетов с DSCP вида «ххх000», где «х» принимает значения «0» или «1». Такие кодовые слова называют селекторами класса.

Минимальным требованием к системе DS является поддержка селекторов класса, причем в наборе типов локального поведения, на которые отображаются эти DSCP, должна быть предусмотрена возможность выделения по меньшей мере двух отдельно обслуживаемых классов трафика. Если пакет имеет селектор класса с более высоким порядком, то ему должно быть гарантировано более качественное обслуживание. Кроме того, PHB, соответствующие кодовому слову DSCP=«11х000», обслуживают пакеты с большим приоритетом, чем PHB, соответствующие DSCP=«000000».

Все пространство кодовых слов разделено на три области (табл. 1). 32 кодовых слова первой из них отводятся под стандартные приложения, а значения DSCP второй и третьей областей могут быть использованы локально в пределах частной сети, причем третью область также допускается задействовать для стандартных приложений. Кодовое слово «000000» рекомендовано для обозначения трафика типа best effort. Восемь селекторов класса зарезервированы в общем пространстве кодовых слов и определяют до восьми типов PHB.

Типы локального поведения

Маршрутизаторы, поддерживающие DS, должны обеспечивать программируемое отображение множества кодовых слов на множество типов локального поведения. Последние описывают набор процедур, которые узел сети должен выполнять по отношению к агрегированному потоку пакетов, отмеченных соответствующим DSCP. Очевидно, что различия между типами PHB проявляются в том случае, когда потоки, относящиеся к различным агрегаторам поведения, конкурируют за ограниченные буферное пространство интерфейса и пропускную способность выходного канала. Тип PHB определяет способ выделения сетевым узлом ресурсов для пакетов потока соответствующего агрегатора поведения. Другими словами, PHB задает относительное или абсолютное значение приоритета данного потока, учитываемое при его доступе к локальным ресурсам. Несколько типов PHB, настроенных на заранее заданное распределение приоритетов или на конкретные характеристики трафика, образуют группу PHB, для которой обычно вводится общее ограничение на степень потребления ресурсов (что позволяет минимизировать взаимное влияние потоков, обслуживаемых разными группами PHB).

В узлах сети поддержка групп PHB обеспечивается при помощи различных методов управления очередями и буферным пространством. Например, для создания двух основных стандартных групп PHB (Assured Forwarding и Efficient Forwarding) можно воспользоваться алгоритмом WFQ. При задании групп PHB ключевую роль играют не механизмы их реализации (которых может быть несколько), а характеристики «подведомственного» им трафика, актуальные для обеспечения требуемого сервиса.

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

Тип PHB, для которого по умолчанию используется кодовое слово «000000», должен поддерживаться всеми устройствами DS. Данный тип локального поведения соответствует дисциплине обслуживания best effort, к которой пакет причисляется в том случае, когда не удается назначить более высокий приоритет (или в этом нет необходимости). Пакетам с DSCP = «000000» разрешено поступать в сеть безо всяких ограничений, но они доставляются адресату с такими надежностью и скоростью, которые возможны после обслуживания всех потоков других классов. Например, указанный тип PHB реализуется за счет отправки пакетов лишь в то время, когда ресурсы не требуются для иных потоков. При этом потоки с более высокими приоритетами не должны захватывать все ресурсы: некоторую часть буферного пространства и полосы пропускания необходимо резервировать для обслуживания трафика best effort.

Компоненты системы DS

Домен DS

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

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

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

Классификаторы

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

Задача классификатора трафика состоит в том, чтобы выделять пакеты из входного потока по значениям нескольких полей IP-заголовков и направлять их на тот или иной элемент кондиционера для дальнейшей обработки. Классификаторы, которые принимают решение на основе только значения DSCP (классификация по агрегатору поведения), относятся к типу BA, а те, которые анализируют содержимое нескольких полей заголовка, называются мультиполевыми.

Принцип функционирования алгоритма token bucket

Как и при использовании технологий IS и ATM, для работы в сети DS потребитель должен предоставить провайдеру количественное описание (спецификацию) своего потока, а затем самостоятельно поддерживать параметры потока в рамках данной спецификации или делегировать эту функцию сети DS. В простейшем случае спецификация потока ограничивает его среднюю скорость и максимальный размер так называемого всплеска (объема данных, передаваемых со скоростью, которая превышает указанную в спецификации среднюю скорость). Для сопоставления временных показателей реального потока с указанными в его спецификации в DS-сети применяется универсальный алгоритм token bucket.

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

Формирование трафика

Суть алгоритма token bucket (рис. 1) заключается в следующем. Максимальная средняя скорость отсылки потока пакетов из управляющего узла зависит от скорости прибытия в него разрешений на передачу N единиц данных (с точки зрения рассматриваемого алгоритма, передача отдельного пакета является всплеском длиной в один пакет, поэтому число разрешений должно соответствовать размеру пакета). Очередной пакет может быть отправлен при получении числа разрешений, достаточного для передачи данных, объем которых больше или равен размеру пакета. Если пакет поступит в управляющее устройство, не располагающее необходимым количеством разрешений, он будет попросту отброшен. С точки зрения алгоритма, передача одного пакета с канальной скоростью является всплеском, равным размеру пакета, поэтому максимально возможное количество накапливаемых разрешений должно допускать передачу как минимум одного полноразмерного пакета. Заметим, что во избежание отбрасывания пакета можно заменить его маркировку, присвоив ему тот класс сервиса, который обеспечивает менее приоритетное обслуживание.

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

Кондиционеры трафика

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

Компоненты классификатора и кондиционера

1. Потоки разделяются по классам сервиса.

2. Не соответствующие спецификации сегменты данных маркируются как относящиеся к менее приоритетному классу.

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

Измерители. Поток данных, выделенный классификатором из входящего трафика, направляется на вход измерителя. Измеритель сравнивает временные характеристики потока с заявленными в спецификации, используя, например, алгоритм token bucket. Эта информация подается на входы маркировщика и фильтра/формирователя.

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

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

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

Тип локального поведения характеризует обработку узлом DS трафика, относящегося к определенному агрегатору поведения. Сервис домена DS организуется таким образом, чтобы применение соответствующих типов PHB к потокам, допущенным внутрь домена, гарантировало передачу всего трафика без нарушения заявленной сервисной спецификации.

Окончание следует

ОБ АВТОРЕ

Игорь Алексеев — эксперт по информационным системам Центра Internet Ярославского государственного университета. С ним можно связаться по адресу aiv@yars.free.net.


Глоссарий

BA (Behavior Aggregatе) — агрегатор поведения; класс обслуживания в сети DS.

Best effort — тип трафика, в отношении доставки которого не дается каких-либо гарантий и который передается при наличии свободных ресурсов.

CBQ (Class-Based Queuing) — механизм управления очередями и распределением буферного пространства.

DS (Differentiated Services, diffserv) — технология построения сети с интеграцией сервисов, основанная на дифференциации трафика по типам агрегированных потоков и ориентированная на отправителя потока.

IS (Integrated Services, intserv) — технология построения сети с интеграцией сервисов, основанная на распределении ресурсов для индивидуальных микропотоков и ориентированная на получателя.

PHB (Per-Hop Behavior) — тип локального поведения. Определяет приоритет пакетов, соответствующих конкретному агрегатору поведения, при их доступе к ресурсам.

QoS (Quality of Service) — общее обозначение качества обслуживания трафика в сети, отличающегося от качества обслуживания трафика best effort.

RED (Random Early Detection) — вероятностный алгоритм отбрасывания пакетов в маршрутизаторе, взаимодействующий с адаптивным транспортным протоколом.

SIN (Service Integration Network) — сеть с интеграцией сервисов, обеспечивающая передачу данных и мультимедиа-трафика по единой сетевой инфраструктуре и на базе общей технологии.

SLS (Service Level Specification) — спецификация сервиса; предмет договора между клиентом и провайдером

TCS (Traffic Conditioning Specification) — спецификация кондиционирования; набор параметров потока пользователя и описание действий провайдера в случае превышения их значений.

Token bucket, Leaky bucket — разновидности алгоритма измерения скорости потока и управления ею в IP- и ATM-сетях.

TOS (Type of Service) — поле заголовка пакета IPv4 (описано в спецификации RFC 791).

WFQ (Weighted Fair Queuing) — механизм управления очередями и распределением буферного пространства в межсетевых устройствах.


Таблица 1. Распределение пространства кодовых слов DS
ОбластьПространство КСЧисло КСПрименение
1ХХХХХ032Стандартные типы сервиса
2ХХХХ1116Экспериментальное или локальное
3ХХХХ0116Экспериментальное или локальное, в дальнейшем - для стандартных типов сервиса

Спецификация сервиса

Компонентами спецификации сервиса являются:

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

Входящая в состав спецификации сервиса спецификация кондиционирования трафика содержит:

  • детализацию параметров сервиса (скорость, значение задержки, вероятность потери пакетов);
  • описание топологических границ предоставления сервиса;
  • спецификации трафика (ограничения на потребляемые ресурсы в виде параметров алгоритма token bucket);
  • описание способа обработки трафика, значения характеристик которого превышают заявленные в спецификации;
  • описание услуг по маркировке трафика;
  • описание услуг по формированию трафика.

Варианты расположения классификаторов и кондиционеров трафика

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

На границе домена DS. Оптимальный вариант размещения классификаторов и кондиционеров трафика.

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

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