stringtranslate.com

Тип обслуживания

Поле типа услуги ( ToS ) — это второй байт заголовка IPv4 . На протяжении многих лет он преследовал различные цели и по-разному определялся в пяти RFC . [1]

До переопределения поле ToS могло указывать приоритет дейтаграммы и запрашивать маршрут для обслуживания с малой задержкой, высокой пропускной способностью или высокой надежностью. На основании этих значений ToS пакет будет помещен в исходящую очередь с приоритетом [2] или будет выбран маршрут с соответствующей задержкой, пропускной способностью или надежностью. На практике поле ToS никогда не получало широкого распространения за пределами сетей Министерства обороны США. Однако большая часть экспериментальных, исследовательских и развертывающих работ была сосредоточена на том, как использовать эти восемь битов, что привело к нынешнему определению поля DS .

Современное переопределение поля ToS, которое также используется для поля класса трафика в пакетах IPv6 , представляет собой 8-битное поле дифференцированных услуг (поле DS), которое состоит из 6-битного поля кода дифференцированных услуг (DSCP) [3] и 2-битное поле явного уведомления о перегрузке (ECN). [4] Хотя дифференцированные услуги в некоторой степени обратно совместимы с ToS, ECN — нет.

История

Поле Type of Service в заголовке IP было первоначально определено в RFC 791 и с тех пор интерпретируется как приоритет IP и ToS . Это определение во многом было заимствовано из спецификации Министерства обороны США JANAP-128, которая определяет приоритет сообщений. Он определил механизм назначения приоритета каждому IP-пакету, а также механизм запроса особого режима, такого как высокая пропускная способность, высокая надежность или низкая задержка и т. д. В обновлении RFC 1349 введен бит денежной стоимости (этот бит ранее был помечен как «Зарезервировано для использования в будущем»). В разделе 2.4 RFC 1583 (OSPFv2) представлен метод маршрутизации с учетом ToS.

На практике за пределами сетей Министерства обороны США когда-либо использовалась только часть поля «Приоритет IP»: чем выше значение поля «Приоритет IP», тем выше приоритет IP-пакета. Некоторые сети Министерства обороны США использовали бит задержки для выбора маршрута между океаническими кабельными путями и путями спутниковой связи (SATCOM), когда существовали оба пути. В IPv6 никогда не было «традиционного» поля ToS, подобного IPv4, отчасти потому, что авторы знали об усилиях DiffServ по его разработке (RFC 2460, раздел 7).

В RFC 2474 определение всего этого поля было изменено. Теперь оно называется полем «DS» (дифференцированные услуги, «DiffServ»), а старшие 6 бит содержат значение, называемое «DSCP» (кодовая точка дифференцированных услуг). Старшие 3 бита DS поддерживают совместимость с приоритетом IP. Начиная с RFC 3168, оставшиеся два бита (два младших бита) используются для явного уведомления о перегрузке.

В RFC 8622 добавлен DS с меньшими усилиями (LE) для трафика, который может быть вытеснен другим трафиком (трафик с максимальными усилиями). Он предназначен для фонового трафика с низким приоритетом, такого как массовая передача данных с низким приоритетом по времени.

Распределение

Приоритет и условия обслуживания

До прекращения поддержки поле «Тип службы» определялось в RFC 791 следующим образом:

Приоритет представлял собой 3-битное поле, которое считало пакеты с высоким приоритетом более важными, чем другие пакеты. Если маршрутизатор перегружен и ему необходимо отбросить некоторые пакеты, он сначала отбросит пакеты с наименьшим приоритетом. Хотя поле приоритета было частью IP версии 4, оно никогда не использовалось.

RFC 1349 ввел дополнительное поле «lowcost». Четыре доступных бита ToS теперь выглядят так:

Именование здесь соответствует соглашению операционных систем Unix. [5] RFC 1349 и RFC 1060 показывают только примеры одного бита, используемого одновременно для значений по умолчанию приложения, хотя в RFC 791 упоминается, что не более двух из трех имеющихся индикаторов должны быть установлены номинально. Одно такое использование известно из mod_iptos. [6]

Поскольку последние три бита прошли множество определений до RFC 2474 (см. ниже), документация и реализации могут быть запутанными и противоречивыми.

ДСКП и ЕСН

RFC 2474 (выпущенный в декабре 1998 года) зарезервировал первые шесть битов поля DS (или IPv4 ToS) для точки кода дифференцированных услуг (DSCP), а RFC 3168 зарезервировал последние два бита для явного уведомления о перегрузке .

DSCP определяет имя селектора класса (CS) для каждого определяемого им значения, отражая то, что было бы интерпретировано как приоритет IP, если следовать более старой спецификации:

Номенклатура ДСКП:

CS
Селектор класса (RFC 2474)
AFxy
Гарантированная пересылка (x=класс, y=приоритет удаления) (RFC 2597)
ЭФ
Ускоренная пересылка (RFC 3246)
ЛЕ
Меньше усилий (RFC 8622)

Приведенная выше таблица с выписанными отдельными значениями для значений всего поля ToS (не путать с малоиспользуемой 5-битной частью):

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

Пример: смешанная интерпретация

Начнем с приоритета IP, равного 1 или 001в двоичном формате. Тогда все поле ToS будет равно 001 00000, если предположить, что неиспользуемые 5 бит равны нулю. DSCP можно интерпретировать путем повторной сегментации на 001000 00, где 001000= 8 — значение DSCP, соответствующее CS1.

Поддержка программного обеспечения

Хотя определения IP ToS используются нечасто, они широко встречаются в netinet/ip.hUnix -подобных или Unix- операционных системах в виде IPTOS_FIELDNAMEмакросов. [5] Поле «lowcost» закомментировано в OpenBSD из-за его нового использования для указания поддержки ECN. [5] Остатки старой терминологии RFC 1349 можно найти в Transmission 2.93 [7] , а также в других инструментах, поддерживающих настройку этого поля.

Старый модуль Apache «mod_iptos», когда-то упакованный в Ubuntu, отмечает, что в какой-то момент появился способ совместного использования нескольких битов опций RFC 1349. [6]

Смотрите также

Рекомендации

  1. ^ RFC  791, RFC  1122, RFC  349, RFC  2474 и RFC  3168. Полную историю поля ToS см. в разделе 22 RFC 3168.
  2. ^ http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.qdisc.classless.html Расширенная маршрутизация и управление трафиком Linux.
  3. ^ RFC  3260, раздел 4.
  4. ^ RFC  3168, раздел 5.
  5. ^ abc "openbsd/src:sys/netinet/ip.h". Гитхаб . Проверено 10 октября 2018 г.
  6. ^ Аб Годе, Дин. «mod_iptos.c (mod_iptos 1.0)». Архивировано из оригинала 10 октября 2018 года . Проверено 10 октября 2018 г.
  7. ^ "передача 2.93: libtransmission/session.c". Гитхаб . Проверено 10 октября 2018 г.

дальнейшее чтение

Внешние ссылки