Рассмотрим, что такое приоритет IP и значения DSCP в QoS (Quality of Service). Одним из полей IP-пакета является поле «Тип обслуживания» (Type of Service field), также известное как байт TOS. Первоначальная идея байта TOS заключалась в возможности указать приоритет и запросить маршрут для обеспечения высокой пропускной способности, низкой задержки и высокой надежности обслуживания. Байт TOS был определен в 1981 году в RFC 791, но за эти годы способ его использования значительно изменился. В этой статье рассмотрим, что нужно знать о байте TOS, приоритете IP и значениях DSCP.
Для примера будет использоваться IP-заголовок со всеми его полями, включая байт TOS:
Примечание: Не стоит путать Type of Service (Тип обслуживания) и Class of Service (Класс обслуживания). TOS находится в заголовке IP-пакета (уровень 3), а COS — в заголовке 802.1Q (уровень 2) и используется для обеспечения качества обслуживания (QoS) по магистральным каналам.
Содержание:
Приоритет IP
Первоначально 8 битов байта TOS были определены следующим образом:
Первые 3 бита используются для определения приоритета (Precedence). Чем выше значение, тем важнее IP-пакет. В случае переполнения маршрутизатор прежде отбросит пакеты с меньшим приоритетом. Тип служебных битов TOS используется для определения того, какую задержку (delay), пропускную способность (bandwidth) и надежность (reliability) рассчитываем получить.
Ниже представлен список битов и возможных комбинаций:
Приоритет (Precedence):
000 | Routine |
001 | Priority |
010 | Immediate |
011 | Flash |
100 | Flash Override |
101 | Critic/Critical |
110 | Internetwork Control |
111 | Network Control |
Тип обслуживания (Type of Service):
Bit 3: | 0 = normal delay | 1 = low delay |
Bit 4: | 0 = normal throughput | 1 = high throughput |
Bit 5: | 0 = normal reliability | 1 = high reliability |
Bit 6-7: | Reserved for future use |
Минус первоначальной версии в том, что биты TOS, которые определяют задержку, пропускную способность и надежность, никогда не использовались. Только биты приоритета используются для назначения приоритета IP-пакетам.
Спустя 11 лет в 1992 году был создан RFC 1349, который поменял определение байта TOS, до следующего вида:
Первые 3 старших бита остались неизменными, но тип служебных битов изменился. Вместо 5 бит теперь используются только 4 бита для назначения TOS, а последний бит называется MBZ (Must Be Zero) — «должен быть нулем». Обычно этот бит не используется и маршрутизаторы игнорируют его, поскольку бит использовался только для экспериментов.
Тип служебных битов TOS выглядит следующим образом:
1000 | minimize delay |
0100 | maximize throughput |
0010 | maximize reliability |
0001 | minimize monetary cost |
0000 | normal service |
Дифференцированные услуги
Прошло ещё 6 лет с момента последних изменений в TOS. И в 1998 году был создан RFC 2474 , который описывает, что байт TOS получил новое название и теперь называется полем DS (Differentiated Services) — «дифференцированные услуги». Также изменению подверглись 8 битов:
Первые 6 битов поля DS используются для установки кодовой точки (codepoint), которая будет влиять на PHB (Per Hop Behavior) — политику пошагового обслуживания на каждом узле.
Кодовая точка — аналогична приоритету (precedence), используется для установки определенного приоритета.
Для понимания набора PHB представим сеть, состоящую из трёх расположенных подряд маршрутизаторов и двух телефонов в противоположных концах топологии:
Настройку QoS для определения приоритетности пакетов VoIP нужно выполнить на всех устройствах топологии. В то время, как R1 и R3 настроены на обработку приоритетов VoIP-пакетов, R2 продолжает рассматривать оставшиеся IP-пакеты. Не исключено, что R2 столкнётся с перегруженностью. И в связи с этим можно испытать проблемы с качеством телефонной связи.
Для исправной работы QoS необходимо настроить его как end-to-end (сквозное шифрование). Есть два способа это реализовать:
- использовать резервирование (каждое устройство в сети будет резервировать пропускную способность для телефонного звонка);
- настроить отдельно каждое устройство для определения приоритетов пакетов VoIP.
Резервирование — хороший вариант, поскольку есть гарантия, что сможем совершить телефонный звонок. Однако это не очень масштабируемое решение, потому как необходимо резервировать номера для каждого телефонного звонка. Что если один из маршрутизаторов потеряет информацию о резервировании? Идея использования резервирования для обеспечения сквозного QoS называется IntServ (Integrated Services) — «интегрированные услуги».
Противоположностью IntServ является DiffServ (дифференцированные услуги), где каждое устройство настраивается отдельно для определения приоритетов конкретного трафика. Это масштабируемое решение, поскольку сетевым устройствам не нужно обмениваться и запоминать какую-либо информацию о резервировании.
С 6 битами для кодовых точек (codepoints) можно создать множество разных приоритетов. Теоретически есть 64 возможных значения.
Идея, лежащая в основе PHB (Per Hop Behavior), заключается в том, что пакеты, помеченные конкретной кодовой точкой, получат определенную обработку QoS — например, организация очередей (queuing), контроль (policing) или формирование (shaping).
Базовый PHB (Default PHB)
Существуют сетевые узлы, которые не маркируют трафик. Чтобы они могли передавать данные по сети, используется значение пакета DSCP 000000. Этот пакет следует рассматривать как best effort — «негарантированная доставка».
Класс-селектор PHB (Class-selector PHB)
Ранее некоторые старые сетевые устройства поддерживали только IP-приоритет, а современные сетевые устройства использовали дифференцированные услуги (DiffServ). Чтобы убедиться, что они совместимы, можно применить кодовые точки выбора класса (class-selector codepoints):
В таком случае используются только первые 3 бита, как в поле с приоритетом IP. Ниже представлен список возможных кодовых точек выбора класса:
Class selector name | DSCP value |
IP Precedence value | IP Precedence name |
Default / CS0 | 000000 | 000 | Routine |
CS1 | 001000 | 001 | Priority |
CS2 | 010000 | 010 | Immediate |
CS3 | 011000 | 011 | Flash |
CS4 | 100000 | 100 | Flash Override |
CS5 | 101000 | 101 | Critic/Critical |
CS6 | 110000 | 110 | Internetwork Control |
CS7 | 111000 | 111 | Network Control |
Обратите внимание, что CS1 — то же самое, что и «приоритет», а CS4 — Flash Override. Данную информацию можно использовать для совместимости между «старым» байтом TOS и «новым» полем DS.
Гарантированная пересылка PHB (Assured Forwarding PHB)
Приблизительно через год вышел RFC 2597, который описывает гарантированную пересылку (Assured Forwarding). Гарантированная пересылка AF PHB имеет две основные функции:
- организация очередей;
- предотвращение перегрузки.
Существует 4 класса (class), и каждый из них будет помещён в свою очередь. Также в каждом классе существует вероятность сброса (drop probability) — когда очередь заполнена, пакеты с высокой вероятностью отбрасывания будут удалены из очереди раньше других пакетов. Всего есть 3 уровня для приоритета отбрасывания:
Первые 3 бита используются для определения класса (class), а следующие 3 бита используются для определения вероятности сброса (drop probability). Class 4 имеет самый высокий приоритет. Например, любой пакет из class 4 будет обработан лучше, чем пакет из class 3. Ниже приведены возможные значения:
Drop | Class 1 | Class 2 | Class 3 | Class 4 |
Low | 001010 (AF11) | 010010 (AF21) | 011010 (AF31) | 100010 (AF41) |
Medium | 001100 (AF12) | 010100 (AF22) | 011100 (AF32) | 100100 (AF42) |
High | 001110 (AF13) | 010110 (AF23) | 011110 (AF33) | 100110 (AF43) |
Примечание: Некоторые поставщики предпочитают использовать десятичные значения вместо AF11, AF32 и т.д. Быстрый способ преобразования значения AF в десятичное значение заключается в использовании формулы 8x + 2y, где X = класс и Y = вероятность отбрасывания. Например, AF31 в десятичном виде — 8 x 3 + 2 x 1 = 26.
Ускоренная пересылка (Expedited Forwarding)
PHB EF (Expedited Forwarding) — «ускоренная пересылка», которая также имеет две функции:
- организация очередей (Queuering);
- контроль (Policing).
Цель ускоренной пересылки EF — поместить пакеты в очередь, где они охватывают минимальную задержку и потерю пакетов. Для обеспечения этого используется приоритетная очередь (priority queue). Если в очереди с приоритетом есть пакеты, они будут отправлены раньше всех остальных очередей. Но есть вероятность того, что другие очереди не получат возможность отправлять свои пакеты, поэтому необходимо установить «ограничение скорости» для этой очереди. Делается это с помощью контроля (policing).
Значение DSCP обычно называется EF: в двоичном виде это 101110, десятичное значение 46.
Практическое применение
Много было рассказано о PHB (Per Hop Behavior), и слово Behavior («поведение») звучит так, будто при использовании определенного значения DSCP маршрутизатор автоматически ставит в очередь пакеты, отслеживает или отбрасывает их. Но это не так, поскольку необходимо настроить эти действия самостоятельно.
Есть много различных значений, которые можно использовать для байта TOS: приоритет IP, CS, AF и EF. Так что же действительно используется в сетях? Ответ прост — это действительно зависит от поставщика сетевых услуг. Значение приоритета IP 5 или DSCP EF обычно используется для голосового трафика. В то время как значение приоритета IP 3 или DSCP CS3 или AF31 применяется для сигнализации вызова.
Выводы
Спасибо за уделенное время на прочтение статьи. Теперь Вы знаете, что такое приоритет IP и значения DSCP в QoS.
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.