Тип услуги
Поле типа услуги ( ToS ) — это второй байт IPv4 заголовка . На протяжении многих лет он преследовал различные цели и по-разному определялся в пяти RFC . [1]
До переопределения поле ToS могло указывать приоритет дейтаграммы и запрашивать маршрут для обслуживания с малой задержкой, высокой пропускной способностью или высокой надежностью. На основании этих значений ToS пакет будет помещен в исходящую очередь с приоритетом. [2] или выберите маршрут с соответствующей задержкой, пропускной способностью или надежностью. На практике поле ToS никогда не получало широкого распространения за пределами сетей Министерства обороны США. Однако большая часть экспериментальных, исследовательских и развертывающих работ была сосредоточена на том, как использовать эти восемь битов, что привело к нынешнему определению поля DS .
Современное переопределение поля ToS (а также поля класса трафика в пакетах IPv6 ) разбивает этот байт на 6-битное поле дифференцированных услуг (DS). [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 следующим образом:
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
Приоритет | Тип услуги | Неиспользованный (0) |
Приоритет представлял собой 3-битное поле, которое считало пакеты с высоким приоритетом более важными, чем другие пакеты. Если маршрутизатор перегружен и ему необходимо отбросить некоторые пакеты, он сначала отбросит пакеты с наименьшим приоритетом. Хотя поле приоритета было частью IP версии 4, оно никогда не использовалось.
RFC 1349 ввел дополнительное поле «lowcost». Четыре доступных бита ToS теперь выглядят так:
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
(приоритет IP) | Низкая задержка | пропускная способность | надежность | низкая стоимость (RFC 1349) | (Должно быть равно нулю) |
Именование здесь соответствует соглашению операционных систем Unix. [5] В RFC 1349 и RFC 1060 показаны только примеры одного бита, используемого одновременно для значений по умолчанию приложения, хотя в RFC 791 упоминается, что не более двух из трех имеющихся индикаторов должны быть установлены номинально. Одно такое использование известно из mod_iptos. [6]
Поскольку последние три бита прошли множество определений до RFC 2474 (см. ниже), документация и реализации могут быть запутанными и противоречивыми.
ДСКП и ЕСН
[ редактировать ]RFC 2474 (выпущенный в декабре 1998 года) зарезервировал первые шесть битов поля DS (или IPv4 ToS) для точки кода дифференцированных услуг (DSCP), а RFC 3168 зарезервировал последние два бита для явного уведомления о перегрузке .
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
ДСКП | ECN |
DSCP определяет имя селектора класса (CS) для каждого определяемого им значения, отражая то, что было бы интерпретировано как приоритет IP, если следовать более старой спецификации:
Имя ДСКП | Значение поля DS (декабрь) | Приоритет IP-адресов (описание) |
---|---|---|
CS0 | 0 | 0: Лучшее усилие |
ТО | 1 | н/д |
CS1, AF11-13 | 8,10,12,14 | 1: Приоритет |
CS2, AF21-23 | 16,18,20,22 | 2: Немедленно |
CS3, AF31-33 | 24,26,28,30 | 3: Вспышка — в основном используется для голосовой сигнализации. |
CS4, AF41-43 | 32,34,36,38 | 4: Отмена вспышки |
CS5, ЭФ | 40,46 | 5: Критический — в основном используется для голосового RTP. |
CS6 | 48 | 6: Межсетевое управление |
CS7 | 56 | 7: Сетевое управление |
Номенклатура ДСКП:
- 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.h
Unix -подобных или Unix- операционных систем, как IPTOS_FIELDNAME
макросы. [5] Поле «lowcost» закомментировано в OpenBSD из-за его нового использования для указания поддержки ECN. [5] Остатки старой терминологии RFC 1349 можно найти в Transmission 2.93. [7] а также другие инструменты, поддерживающие настройку этого поля.
Старый модуль Apache «mod_iptos», когда-то упакованный в Ubuntu, отмечает, что в какой-то момент появился способ совместного использования нескольких битов опций RFC 1349. [6]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ РФК 791 , РФК 1122 , РФК 349 , RFC 2474 и РФК 3168 . Полную историю поля ToS см. в разделе 22 RFC 3168.
- ^ http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.qdisc.classless.html Расширенная маршрутизация и управление трафиком Linux.
- ^ RFC 3260, раздел 4
- ^ RFC 3168, раздел 5
- ^ Jump up to: а б с "openbsd/src:sys/netinet/ip.h" . Гитхаб . Проверено 10 октября 2018 г.
- ^ Jump up to: а б Годе, Дин. «mod_iptos.c (mod_iptos 1.0)» . Архивировано из оригинала 10 октября 2018 года . Проверено 10 октября 2018 г.
- ^ «передача 2.93:libtransmission/session.c» . Гитхаб . Проверено 10 октября 2018 г.
Дальнейшее чтение
[ редактировать ]- Джон Эванс, Кларенс Филсфилс (2007). Развертывание QoS IP и MPLS для мультисервисных сетей: теория и практика . Морган Кауфманн. ISBN 978-0123705495 .