Дифференцированные услуги или DiffServ — это архитектура компьютерных сетей , которая определяет механизм классификации и управления сетевым трафиком и предоставления качества обслуживания (QoS) в современных IP -сетях. DiffServ может, например, использоваться для обеспечения низкой задержки для критического сетевого трафика, такого как голос или потоковое мультимедиа, при одновременном предоставлении наилучшего обслуживания для некритических услуг, таких как веб-трафик или передача файлов .
DiffServ использует 6-битную точку кода дифференцированных услуг ( DSCP ) в 6-битном поле дифференцированных услуг ( поле DS ) в заголовке IP для целей классификации пакетов. Поле DS вместе с полем ECN заменяет устаревшее поле TOS IPv4 . [1]
Современные сети передачи данных предоставляют множество различных типов услуг, включая голос, видео, потоковую музыку, веб-страницы и электронную почту. Многие из предложенных механизмов QoS, которые позволяли этим услугам сосуществовать, были одновременно сложными и не могли масштабироваться для удовлетворения потребностей публичного Интернета . В декабре 1998 года IETF заменил поля приоритета TOS и IP в заголовке IPv4 на поле DS , которое позже было разделено для ссылки только на верхние 6 бит с полем ECN в нижних двух битах. [2] [3] В заголовке IPv6 поле DS является частью поля класса трафика , где оно занимает 6 самых значимых бит. [2]
В поле DS диапазон из восьми значений (селекторов классов) используется для обратной совместимости с бывшим полем IP-приоритета IPv4 . Сегодня DiffServ в значительной степени вытеснил TOS и другие механизмы QoS уровня 3 , такие как интегрированные службы (IntServ), как основные маршрутизаторы архитектуры, используемые для обеспечения QoS.
DiffServ — это крупнозернистый механизм управления трафиком на основе классов . IntServ, напротив, — это мелкозернистый механизм на основе потоков . DiffServ опирается на механизм классификации и маркировки пакетов как принадлежащих определенному классу. Маршрутизаторы, поддерживающие DiffServ, реализуют поведение на каждом переходе (PHB), которое определяет свойства пересылки пакетов, связанные с классом трафика. Различные PHB могут быть определены для предоставления, например, услуг с малыми потерями или малыми задержками .
Вместо того, чтобы дифференцировать сетевой трафик на основе требований отдельного потока, DiffServ работает по принципу классификации трафика , помещая каждый пакет данных в один из ограниченного числа классов трафика. Затем каждый маршрутизатор в сети настраивается для дифференциации трафика на основе его класса. Каждый класс трафика может управляться по-разному, обеспечивая приоритетную обработку для трафика с более высоким приоритетом в сети. Предпосылка Diffserv заключается в том, что сложные функции, такие как классификация пакетов и политика, могут выполняться на границе сети пограничными маршрутизаторами. Поскольку в основных маршрутизаторах классификация и политика не требуются, функциональность там может быть простой. Основные маршрутизаторы просто применяют обработку PHB к пакетам на основе их маркировки. Обработка PHB достигается основными маршрутизаторами с помощью комбинации политики планирования и политики управления очередями.
Группа маршрутизаторов, реализующих общие, административно определенные политики DiffServ, называется доменом DiffServ . [4]
Хотя DiffServ рекомендует стандартизированный набор классов трафика, [5] архитектура DiffServ не включает предопределенные суждения о том, каким типам трафика следует уделять приоритетное внимание. DiffServ просто предоставляет структуру, позволяющую классификацию и дифференцированную обработку. Стандартные классы трафика (обсуждаемые ниже) служат для упрощения взаимодействия между различными сетями и оборудованием различных поставщиков.
Сетевой трафик, входящий в домен DiffServ, подвергается классификации и кондиционированию. Классификатор трафика может проверять множество различных параметров во входящих пакетах, таких как исходный адрес, адрес назначения или тип трафика, и назначать отдельные пакеты определенному классу трафика. Классификаторы трафика могут учитывать любые маркировки DiffServ в полученных пакетах или могут игнорировать или переопределять эти маркировки. Для жесткого контроля над объемами и типом трафика в данном классе оператор сети может решить не учитывать маркировки на входе в домен DiffServ. Трафик в каждом классе может быть дополнительно обусловлен путем подвергания трафика ограничителям скорости , ограничителям трафика или формирователям трафика . [6] : §3
Поведение на каждом переходе определяется полями DS и ECN в заголовке IP. Поле DS содержит 6-битное значение DSCP. [2] Явное уведомление о перегрузке (ECN) занимает наименее значимые 2 бита поля TOS IPv4 и поля класса трафика IPv6 (TC). [7] [8] [9]
Теоретически сеть может иметь до 64 различных классов трафика, используя 64 доступных значения DSCP. DiffServ RFC рекомендуют, но не требуют, определенные кодировки. Это дает оператору сети большую гибкость в определении классов трафика. Однако на практике большинство сетей используют следующие обычно определяемые поведения per-hop:
Пересылка по умолчанию (DF) PHB — единственное необходимое поведение. По сути, любой трафик, который не соответствует требованиям ни одного из других определенных классов, использует DF. Обычно DF имеет характеристики пересылки best-effort. Рекомендуемый DSCP для DF — 0. [5]
IETF определяет поведение ускоренной пересылки (EF) в RFC 3246. EF PHB обладает характеристиками малой задержки, малых потерь и малого джиттера. Эти характеристики подходят для голосовых, видео и других служб реального времени. Трафику EF часто дается строгий приоритет в очереди над всеми другими классами трафика. Поскольку перегрузка трафика EF вызовет задержки в очереди и повлияет на допуски джиттера и задержки в пределах класса, к трафику EF могут применяться контроль допуска , политика трафика и другие механизмы. Рекомендуемый DSCP для EF — 101110 B (46 или 2E H ).
IETF определяет поведение Voice Admit в RFC 5865. Voice Admit PHB имеет идентичные характеристики с Expedited Forwarding PHB. Однако трафик Voice Admit также принимается сетью с использованием процедуры Call Admission Control (CAC). Рекомендуемый DSCP для voice admit — 101100 B (44 или 2C H ).
IETF определяет поведение Assured Forwarding (AF) в RFC 2597 и RFC 3260. Гарантированная пересылка позволяет оператору гарантировать доставку, пока трафик не превышает некоторую абонентскую скорость. Трафик, превышающий абонентскую скорость, имеет большую вероятность быть отброшенным в случае перегрузки.
Группа поведения AF определяет четыре отдельных класса AF, при этом весь трафик в пределах одного класса имеет одинаковый приоритет. В пределах каждого класса пакетам присваивается приоритет отбрасывания (высокий, средний или низкий, где более высокий приоритет означает большее отбрасывание). Сочетание классов и приоритета отбрасывания дает двенадцать отдельных кодировок DSCP от AF11 до AF43 (см. таблицу).
Вероятность падения | Класс 1 | Класс 2 | Класс 3 | Класс 4 |
---|---|---|---|---|
Низкий | AF11 (DSCP 10) 001010 | АФ21 (DSCP 18) 010010 | AF31 (DSCP 26) 011010 | AF41 (DSCP 34) 100010 |
Середина | АФ12 (DSCP 12) 001100 | АФ22 (DSCP 20) 010100 | AF32 (DSCP 28) 011100 | AF42 (DSCP 36) 100100 |
Высокий | AF13 (DSCP 14) 001110 | AF23 (DSCP 22) 010110 | AF33 (DSCP 30) 011110 | AF43 (DSCP 38) 100110 |
Определена некоторая мера приоритета и пропорциональной справедливости между трафиком в разных классах. Если между классами возникает перегрузка, трафик в более высоком классе получает приоритет. Вместо использования строгой приоритетной очереди, скорее всего, будут использоваться более сбалансированные алгоритмы обслуживания очередей, такие как справедливая очередь или взвешенная справедливая очередь . Если перегрузка происходит внутри класса, пакеты с более высоким приоритетом отбрасывания отбрасываются первыми. Чтобы предотвратить проблемы, связанные с отбрасыванием хвоста , часто используются более сложные алгоритмы выбора отбрасывания, такие как случайное раннее обнаружение .
Класс обслуживания | Имя DSCP | Значение DSCP | IP-приоритет | Примеры применения |
---|---|---|---|---|
Стандарт | CS0 (ДФ) | 0 | 0 (000) | |
Данные с низким приоритетом | CS1 | 8 | 1 (001) | Передача файлов ( FTP , SMB ) |
Сетевые операции, администрирование и управление (OAM) | CS2 | 16 | 2 (010) | SNMP , SSH , Ping , Telnet , системный журнал |
Трансляция видео | CS3 | 24 | 3 (011) |
|
Интерактив в реальном времени | CS4 | 32 | 4 (100) | Игры, видеоконференции с низким приоритетом |
Сигнализация | CS5 | 40 | 5 (101) | Одноранговые сети ( SIP , H.323 , H.248 ), NTP |
Сетевой контроль | CS6 | 48 | 6 (110) | Протоколы маршрутизации (OSPF, BGP, ISIS, RIP) |
Зарезервировано для будущего использования | CS7 | 56 | 7 (111) |
DF= Пересылка по умолчанию
До DiffServ сети IPv4 могли использовать поле приоритета IP в байте TOS заголовка IPv4 для маркировки приоритетного трафика. Октет TOS и приоритет IP не использовались широко. IETF согласилась повторно использовать октет TOS в качестве поля DS для сетей DiffServ, позже разделив его на поле DS и поле ECN. Для поддержания обратной совместимости с сетевыми устройствами, которые все еще используют поле Precedence, DiffServ определяет селектор класса PHB.
Кодовые точки селектора класса имеют двоичную форму «xxx000». Первые три бита — это биты приоритета IP. Каждое значение приоритета IP может быть сопоставлено с классом DiffServ. Приоритет IP 0 сопоставлен с CS0, приоритет IP 1 — с CS1 и т. д. Если пакет получен от маршрутизатора, не поддерживающего DiffServ, который использовал маркировку приоритета IP, маршрутизатор DiffServ все равно может распознать кодировку как кодовую точку селектора класса.
Конкретные рекомендации по использованию кодовых точек селектора классов приведены в RFC 4594.
RFC 4594 предлагает подробные и конкретные рекомендации по использованию и настройке кодовых точек. Другие RFC, такие как RFC 8622, обновили эти рекомендации.
Класс обслуживания | Имя DSCP | Значение DSCP | Кондиционирование на краю DS | ПГБ | Очередь | АКМ |
---|---|---|---|---|---|---|
Данные с малой задержкой | АФ21, АФ22, АФ23 | 18, 20, 22 | Использование односкоростного трехцветного маркера (например, RFC 2697) | Запрос на изменение 2597 | Ставка | Да согласно DSCP |
Сетевой контроль | CS6 | 48 | См. раздел 3.1. | Запрос на изменение 2474 | Ставка | Да |
Телефония | ЭФ | 46 | Полиция использует sr+bs | RFC3246 | Приоритет | Нет |
Сигнализация | CS5 | 40 | Полиция использует sr+bs | Запрос на изменение 2474 | Ставка | Нет |
Мультимедийные конференции | АФ41, АФ42, АФ43 | 34, 36, 38 | Использование двухскоростного трехцветного маркера (например, RFC 2698) | Запрос на изменение 2597 | Ставка | Да согласно DSCP |
Интерактив в реальном времени | CS4 | 32 | Полиция использует sr+bs | Запрос на изменение 2474 | Ставка | Нет |
Потоковое мультимедиа | АФ31, АФ32, АФ33 | 26, 28, 30 | Использование двухскоростного трехцветного маркера (например, RFC 2698) | Запрос на изменение 2597 | Ставка | Да согласно DSCP |
Трансляция видео | CS3 | 24 | Полиция использует sr+bs | Запрос на изменение 2474 | Ставка | Нет |
ОАМ | CS2 | 16 | Полиция использует sr+bs | Запрос на изменение 2474 | Ставка | Да |
Высокопроизводительные данные | АФ11, АФ12, АФ13 | 10, 12, 14 | Использование двухскоростного трехцветного маркера (например, RFC 2698) | Запрос на изменение 2597 | Ставка | Да согласно DSCP |
Стандарт | ДФ | 0 | Непригодный | Запрос на изменение 2474 | Ставка | Да |
Меньше усилий | ЛЕ | 1 | Непригодный | RFC 8622 | Приоритет | Да |
sr+bs = одиночная скорость с контролем размера пакета.
В DiffServ все полицейские функции и классификация выполняются на границах между доменами DiffServ. Это означает, что в ядре Интернета маршрутизаторы не стеснены сложностями сбора платежей или обеспечения соблюдения соглашений. То есть, в отличие от IntServ , DiffServ не требует предварительной настройки, резервирования и трудоемких сквозных переговоров для каждого потока.
Детали того, как отдельные маршрутизаторы обрабатывают поле DS, зависят от конфигурации, поэтому сложно предсказать сквозное поведение. Это еще больше усложняется, если пакет пересекает два или более доменов DiffServ, прежде чем достичь пункта назначения. С коммерческой точки зрения это означает, что невозможно продавать различные классы сквозного подключения конечным пользователям, поскольку пакет Gold одного провайдера может быть пакетом Bronze другого. DiffServ или любая другая маркировка QoS на основе IP не гарантирует качество обслуживания или указанное соглашение об уровне обслуживания (SLA). Маркируя пакеты, отправитель указывает, что он хочет, чтобы пакеты обрабатывались как определенная услуга, но нет никакой гарантии, что это произойдет. Все поставщики услуг и их маршрутизаторы на пути должны гарантировать, что их политики будут обрабатывать пакеты соответствующим образом.
Посредник пропускной способности в рамках DiffServ — это агент, который обладает некоторыми знаниями о приоритетах и политиках организации и распределяет пропускную способность в соответствии с этими политиками. [10] Для того чтобы добиться сквозного распределения ресурсов по отдельным доменам, Посредник пропускной способности, управляющий доменом, должен будет взаимодействовать со своими соседними узлами, что позволяет строить сквозные услуги на основе чисто двусторонних соглашений.
Домен DiffServ состоит из группы взаимосвязанных узлов DiffServ, которые используют одну и ту же политику обслуживания и PHB.