RFC 3443 Time To Live (TTL) Processing in Multi-Protocol Label Switching (MPLS) Networks

Network Working Group                                         P. Agarwal
Request for Comments: 3443                                       Brocade
Updates: 3032                                                   B. Akyol
Category: Standards Track                                  Cisco Systems
                                                            January 2003

Обработка TTL в сетях MPLS

Time To Live (TTL) Processing in Multi-Protocol Label Switching (MPLS) Networks

PDF

Статус документа

В этом документе содержится спецификация протокола, предложенного сообществу Internet. Документ служит приглашением к дискуссии в целях развития и совершенствования протокола. Текущее состояние стандартизации протокола вы можете узнать из документа Internet Official Protocol Standards (STD 1). Документ может распространяться без ограничений.

Авторские права

Copyright (C) The Internet Society (2003). All Rights Reserved.

Аннотация

Этот документ описывает обработку полей TTL1 в иерархических сетях MPLS2. Основным мотивом послужила потребность формализовать прозрачных для TTL режим работы путей с коммутацией по меткам MPLS. Документ обновляет RFC 3032 «MPLS Label Stack Encoding». Описана обработка TTL в иерархических туннелях с режимами Pipe и Uniform с примерами для случаев push и pop. Документ также служит дополнением к RFC 3270 «MPLS Support of Differentiated Services» и объединяет введенную в этом документе терминологию с обработкой TTL в иерархических сетях MPLS.

Используемые соглашения

Ключевые слова необходимо (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не нужно (SHALL NOT), следует (SHOULD), не следует (SHOULD NOT), рекомендуется (RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе должны интерпретироваться в соответствии с [RFC-2119].

1. Введение и мотивы

Этот документ описывает обработку полей TTL в иерархических сетях MPLS. Мы надеемся, что этот документ детализирует вопросы, рассмотренные в [MPLS-ARCH, MPLS-ENCAPS], а представленные здесь методы дополнят [MPLS-DS].

В частности, вводится новый режим обработки (его называют Pipe Model) для поддержки практики настройки MPLS LSP так, что проходящие через LSP пакеты видят туннель, как один интервал пересылки (hop), независимо от числа промежуточных маршрутизаторов LSR3. Модель Pipe (труба) для TTL в настоящее время применяется во многих сетях и реализуется операторами сетей в форме настраиваемой опции для оборудования нескольких производителей.

Этот документ формализует обработку TTL в сетях MPLS и связывает ее с терминологией, введенной в [MPLS-DS].

2. Обработка TTL в сетях MPLS

2.1. Отличия от RFC 3032 [MPLS-ENCAPS]

  1. [MPLS-ENCAPS] охватывает только однородную модель (Uniform Model), не затрагивая модели Pipe и Short Pipe. Данный документ рассматривает обе эти модели и для полноты включает также модель Uniform.

  2. [MPLS-ENCAPS] не охватывает иерархические LSP, которые рассмотрены здесь.

  3. [MPLS-ENCAPS] не определяет обработку TTL в присутствии PHP4, что рассмотрено здесь.

2.2. Терминология и основы

Как определено в [MPLS-ENCAPS], пакеты MPLS используют заголовок-прокладку (shim) MPLS, который содержит перечисленную ниже информацию о пакете..

  1. Метка MPLS (20 битов).

  2. TTL (8 битов).

  3. Дно (Bottom) стека (1 бит).

  4. Экспериментальные биты (3 бита).

Экспериментальные биты были переопределены в [MPLS-DS] для индикации поведения в плане планирования и формовки (shaping), связанных с пакетом MPLS.

В [MPLS-DS] определены две модели (режима) для туннелей MPLS — Pipe и Uniform. В режиме Pipe сеть MPLS действует подобно устройству (каналу) при прохождении пакетов MPLS через сеть и для узлов, расположенных вне туннеля видны только вход и выход LSP. Сокращенная вариация этого режима (Short Pipe) также определена в [MPLS-DS] с целью различения вариантов пересылки на выходе и трактовок качества обслуживания (QoS). С другой стороны, модель Uniform делает видимыми все узлы, через которые проходит LSP, для расположенных вне туннеля узлов. Здесь модели Pipe и Uniform расширяются за счет включения обработки TTL. Кроме того, в документе описана обработка TTL при выполнении PHP. Подробное описание моделей Pipe и Uniform приведено в [MPLS-DS].

Обработку TTL в сетях MPLS можно разбит на два логических блока: (i) определение TTL на входе для учета любого выхода из туннеля в результате операций MPLS Pop и (ii) обработка (возможно) раскрываемых пакетов и TTL на выходе.

Отметим также, что сигнализация типа LSP (Pipe, Short Pipe или Uniform) выходит за рамки документа и не рассматривается в текущих версиях протоколов распространения меток (например, LDP [MPLS-LDP] и RSVP-TE [MPLS-RSVP]). В настоящее время LSP настраиваются операторами вручную с помощью команд или интерфейса управления сетью.

2.3. Новые термины

iTTL

Значение TTL для использования в качестве TTL на входе. Проверки iTTL не выполняется.

oTTL

Это значение служит в качестве TTL на выходе TTL (исключения указаны в параграфе 3.5). Если явно не указано иное, это значение всегда составляет (iTTL — 1).

oTTL Check

Проверка того, что oTTL > 0. Если эта проверка не проходит, пакет не будет пересылаться. Отметим, что проверка oTTL выполняется лишь в тем случаях, когда в качестве TTL на выходе (IP или MPLS) установлено значения oTTL (исключения указаны в параграфе 3.5).

3. Обработка TTL в разных моделях

В этом разделе описана обработка TTL для LSP, соответствующих каждой из 3 моделей (Uniform, Short Pipe, Pipe) при наличии и отсутствии PHP (когда это применимо).

3.1. Обработка TTL в Uniform LSP (с PHP и без него)

(согласуется с [MPLS-ENCAPS]):

             ========== LSP =============================>
                 +--Swap--(n-2)-...-swap--(n-i)---+
                /      (внешний заголовок)         \
              (n-1)                                (n-i)
              /                                      \
   >--(n)--Push...............(x).....................Pop--(n-i-1)->
            (I)         (внутренний заголовок)        (E или P)

   (n) представляет значение TTL в соответствующем заголовке
   (x) представляет не имеющую значения информацию TTL
   (I) представляет входной узел LSP
   (P) представляет предпоследний узел LSP
   (E) представляет выходной узел LSP

Рисунок показывает обработку TTL для MPLS LSP в режиме Uniform. Отметим, что внутреннее и внешнее значения TTL в пакетах синхронизируются на входе и выходе туннеля.

3.2. Обработка TTL в Short Pipe LSP

3.2.1. Обработка TTL для Short Pipe LSP без PHP

             ========== LSP =============================>
                 +--Swap--(N-1)-...-swap--(N-i)-----+
                /       (внешний заголовок)          \
              (N)                                  (N-i)
              /                                        \
   >--(n)--Push...............(n-1).....................Pop--(n-2)->
            (I)       (внутренний заголовок)            (E)

   (N) представляет значение TTL (может быть не связано с n)
   (n) представляет туннелированное значение TTL в инкапсулированном заголовке
   (I) представляет входной узел LSP
   (E) представляет выходной узел LSP

Модель Short Pipe была введена в [MPLS-DS]. В модели Short Pipe трактовка пересылки на выходном LSR базируется на туннелированном (а не инкапсулирующем) пакете.

3.2.2. Обработка TTL для Short Pipe LSP с PHP

             ========== LSP =====================================>
                 +-Swap-(N-1)-...-swap-(N-i)-+
                /    (внешний заголовок)      \
              (N)                            (N-i)
              /                                \
   >--(n)--Push.............(n-1)............Pop-(n-1)-Decr.-(n-2)->
            (I)    (внутренний заголовок)    (P)      (E)

   (N) представляет значение TTL (может быть не связано с n)
   (n) представляет туннелированное значение TTL в инкапсулированном заголовке
   (I) представляет входной узел LSP
   (P) представляет предпоследний узел LSP
   (E) представляет выходной узел LSP

Поскольку метка уже была вытолкнута (popped) предпоследним узлом LSP, выходной узел LSP просто уменьшает TTL в заголовке.

Отметим также, что в конце LSP в режиме Short Pipe значение TTL в туннелируемом пакете уменьшается на 2 (независимо от PHP).

3.3. Обработка TTL для Pipe LSP (только без PHP)

             ========== LSP =============================>
                 +--Swap--(N-1)-...-swap--(N-i)-----+
                /       (внешний заголовок)          \
              (N)                                  (N-i)
              /                                        \
   >--(n)--Push...............(n-1)....................Pop--(n-2)->
            (I)       (внутренний заголовок)           (E)

   (N) представляет значение TTL (может быть не связано с n)
   (n) представляет туннелированное значение TTL в инкапсулированном заголовке
   (I) представляет входной узел LSP
   (E) представляет выходной узел LSP

В части TTL трактовка Pipe LSP идентична Short Pipe без PHP.

3.4. Определение TTL на входе (iTTL)

Если входящий пакет относится к протоколу IP, iTTL будет совпадать со значением TTL во входящем пакете IP.

Если входящий пакет относится к MPLS и выполняется процедура Push/Swap/PHP, iTTL будет совпадать со значением TTL верхней входящей метки.

Если входящий пакет относится к MPLS и выполняется процедура Pop (выход из туннеля), значение iTTL основывается на типе туннеля (Pipe или Uniform) в LSP, где происходит выталкивание. Если выталкиваемая метка относится к Pipe LSP, iTTL будет совпадать со значением поля TTL в заголовке, показываемом после выталкивания метки (отметим, что в контексте данного документа может показываться заголовок IP или метка MPLS). Если выталкиваемая метка относится к Uniform LSP, iTTL будет совпадать с TTL вытолкнутой метки. Если последовательно выполняется множество операций выталкивания (Pop), указанная выше процедура будет повторяться с одним исключением — значение iTTL, рассчитанное для предыдущего выталкивания, служит в качестве TTL последующей выталкиваемой метки (т. е. значение TTL, содержащееся в последующей метке, игнорируется и заменяется значением iTTL, полученным для предыдущего выталкивания).

3.5. Определение TTL на выходе и обработка пакетов

После завершения расчета iTTL выполняется проверка oTTL. При успешном завершении проверки oTTL рассчитывается выходное значение TTL пакетов (с метками и без меток) и заголовки пакетов обновляются, как описано ниже.

Если пакет маршрутизировался, как пакет IP, в качестве значение TTL в заголовке пакета IP устанавливается oTTL (iTTL — 1). Значения TTL для всех втолкнутых (pushed) меток определяются в соответствии с параграфом 3.6.

Для пакетов, маршрутизируемых как MPLS, имеется 4 варианта, перечисленных ниже.

  1. Только обмен (Swap-only) — маршрутизируемая метка меняется местами (swapped) с другой меткой, а в поле TTL выходной метки устанавливается значение oTTL.

  2. Обмен с последующим вталкиванием (Swap followed by a Push) — выполняется обмен метками как в п. 1). Значения TTL всех вталкиваемых меток определяются в соответствии с параграфом 3.6.

  3. Выталкивание на предпоследнем этапе (PHP) — маршрутизируемая метка выталкивается (popped). Проверку oTTL следует проводить независимо от использования oTTL для обновления поля TTL в выходном заголовке. Если вытолкнутая (PHPed) метка относилась к Short Pipe LSP, поле TTL показанного PHP заголовка не проверяется и не обновляется. Если вытолкнутая метка относилась к Uniform LSP, в поле TTL показанного PHP заголовка устанавливается значение oTTL. Значения TTL дополнительных меток определяются в соответствии с параграфом 3.6

  4. Выталкивание (Pop) — операция выталкивания происходит до маршрутизации и поэтому здесь не рассматривается.

3.6. Обработка на входе в туннель (Push)

Для каждой вталкиваемой (pushed) метки в режиме Uniform значение TTL копируется из метки/IP-пакета, расположенного непосредственно ниже.

Для каждой вталкиваемой метки в режиме Pipe или Short Pipe в поле TTL устанавливается значение, заданное оператором. Во многих реализациях по умолчанию установлено значение 255.

3.7. Замечания по реализации

  1. Хотя iTTL при обновлении или определении oTTL может инкрементироваться больше, чем на 1, эту возможность следует использовать лишь для «компенсации» узлов, не способных уменьшать значения TTL.

  2. При уменьшении iTTL должны быть приняты меры предотвращение отрицательных значений.

  3. В режиме Short Pipe с включенным PHP значение TTL в туннелированных пакетах не изменяется после операции PHP.

4. Заключение

В этом документе описана возможная обработка полей TTL в сетях MPLS. Разъяснены разные методы, которые могут применяться при наличии иерархических туннелей, а также завершено объединение моделей Pipe и Uniform с обработкой TTL.

5. Вопросы безопасности

Этот документ не добавляет вопросов безопасности к отмеченным в [MPLS-ENCAPS, MPLS-DS]. В частности, документ не определяет новых протоколов или расширений существующих и не создает проблем безопасности для имеющихся протоколов. Авторы надеются, что прояснение обработки TTL в сетях MPLS обеспечит преимущества для сетевых операторов и их пользователей за счет упрощения поиска неполадок.

6. Литература

6.1. Нормативные документы

[RFC-2119] Bradner, S. «Key words for use in RFC’s to Indicate Requirement Levels», BCP 14, RFC 2119, March 1997.

[MPLS-ARCH] Rosen, E., Viswanathan, A. and R. Callon, «Multiprotocol Label Switching Architecture», RFC 3031, January 2001.

[MPLS-ENCAPS] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D., Li, T. and A. Conta, «MPLS Label Stack Encoding», RFC 3032, January 2001.

[MPLS-DS] Le Faucheur, F., Wu, L., Davie, B., Davari, S., Vaananen, P., Krishnan, R., Cheval, P. and J. Heinanen, «Multi-Protocol Label Switching (MPLS) Support of Differentiated Services», RFC 3270, May 2002.

6.2. Дополнительная литература

[MPLS-LDP] Andersson, L., Doolan, P., Feldman, N., Fredette, A. and B. Thomas, «LDP Specification», RFC 3036, January 2001.

[MPLS-RSVP] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V. and G. Swallow, «RSVP-TE: Extensions to RSVP for LSP Tunnels», RFC 3209, December 2001.

7. Благодарности

Авторы благодарят членов рабочей группы MPLS за их отзывы. Отдельная благодарность Shahram Davari и Loa Andersson за внимательное рецензирование документа и комментарии.

8. Адреса авторов

Puneet Agarwal

Brocade Communications Systems, Inc.

1745 Technology Drive

San Jose, CA 95110

EMail: puneet@acm.org

Bora Akyol

Cisco Systems

170 W. Tasman Drive

San Jose, CA 95134

EMail: bora@cisco.com


Перевод на русский язык

Николай Малых

nmalykh@gmail.com

9. Полное заявление авторских прав

Copyright (C) The Internet Society (2003). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


1Time To Live — время жизни.

2Multi-Protocol Label Switching — многопротокольная коммутация по меткам.

3Label switch router — маршрутизатор с коммутацией по меткам.

4Penultimate Hop Popping — «всплывание» (выталкивание) на предпоследнем этапе.

Рубрика: RFC | Комментарии к записи RFC 3443 Time To Live (TTL) Processing in Multi-Protocol Label Switching (MPLS) Networks отключены

RFC 3471 Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description

Network Working Group                                  L. Berger, Editor
Request for Comments: 3471                                Movaz Networks
Category: Standards Track                                   January 2003

 

Описание сигнальных функций GMPLS

Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description

PDF

Статус документа

В этом документе содержится проект стандарта для протокола Internet, предложенного сообществу Internet. Документ служит приглашением к дискуссии в целях развития и совершенствования протокола. Текущее состояние стандартизации протокола вы можете узнать из документа «Internet Official Protocol Standards» (STD 1). Документ может распространяться без ограничений.

Авторские права

Copyright (C) The Internet Society (2003). All Rights Reserved.

Аннотация

Этот документ описывает расширение сигнализации MPLS1 для поддержки GMPLS2. Обобщенная MPLS расширяет средства управления MPLS для поддержки систем с временным (например, SONET/SDH3), частотным (длины оптических волн) и пространственным (например, разделение направлений передачи по волокнам) мультиплексированием. Документ представляет функциональные описания расширений. Специфические для протоколов форматы и механизмы, а также технологические детали рассматриваются в отдельных документах.

Оглавление

Исключено в версии HTML.

1. Введение

Архитектура MPLS [RFC3031] была определена для поддержки пересылки данных на основе меток. В этой архитектуре предполагается, что маршрутизаторы LSR4 поддерживают средства коммутации, способные (a) распознавать границы пакетов и ячеек, а также (b) обрабатывать заголовки пакетов (LSR, распознающие границы пакетов) или ячеек (LSR, распознающие границы ячеек).

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

С учетом сказанного выше, LSR или, более точно, интерфейсы LSR можно разделить на несколько классов.

  1. Интерфейсы, способные распознавать границы пакетов или ячеек и пересылать данные на основе содержимого их заголовков. Примерами могут служить интерфейсы маршрутизаторов, пересылающие данные на основе содержимого shim-заголовков или интерфейсы ATM-LSR, пересылающие данные на основе ATM VPI/VCI. Такие интерфейсы называют PSC5.

  2. Интерфейсы, пересылающие данные на основе информации из специального временного интервала, периодически повторяющегося в потоке данных. Примерами таких интерфейсов могут служить интерфейсы кросс-коннекторов SONET/SDH. Этот тип интерфейсов обозначают аббревиатурой TDM6.

  3. Интерфейсы, пересылающие данные на основе длины волны, на которой были приняты эти данные. Примером могут служить интерфейсы оптических кросс-коннекторов, которые могут работать на уровне отдельных длин волн. Для интерфейсов этого типа используется аббревиатура LSC7.

  4. Интерфейсы, пересылающие данные на основе их реального размещения в пространстве. Примером могут служить интерфейсы оптических кросс-коннекторов, работающие на уровне отдельных волокон или групп волокон. Для обозначения таких интерфейсов служит аббревиатура FSC8.

Использование вложенных LSP9 обеспечивает масштабирование систем за счет построения иерархии пересылки. На верхнем уровне этой иерархии размещаются интерфейсы FSC, ниже следуют LSC, затем — TDM и далее — PSC. В этом случае LSP, начинающийся и завершающийся на интерфейсе PSC, может быть вложен (вместе с другими LSP) в LSP, который начинается и завершается интерфейсами TDM. Этот LSP, в свою очередь, может быть вложен (вместе с другими LSP) в LSP, начинающийся и завершающийся на интерфейсах LSC, который, в своею очередь, может быть вложен (вместе с другими LSP) в LSP, началом и завершением которого являются интерфейсы FSC. Иерархии LSP подробно описаны в [MPLS-HIERARCHY].

Организация LSP, проходящих только через интерфейсы первого класса, определена в [RFC3036, RFC3212, RFC3209]. Данный документ представляет функциональное описание расширений, требуемых для обобщения средств управления MPLS с целью поддержки всех четырех классов интерфейсов. В документе приводятся только определения и форматы, независимые от протоколов сигнализации. Специфичные для протоколов форматы определены в [RFC3473] и [RFC3472]. Технологические детали также выходят за рамки настоящего документа и рассматриваются в отдельных документах типа [GMPLS-SONET].

Ключевые слова необходимо (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не следует (SHALL NOT), следует (SHOULD), не нужно (SHOULD NOT), рекомендуется (RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе интерпретируются в соответствии с [RFC2119].

2. Обзор

Обобщенная коммутация GMPLS отличается от традиционной MPLS поддержкой множества типов коммутации (TDM, диапазон длин волн, волокно/порт). Поддержка множества типов коммутации в GMPLS привела к расширению некоторых базовых функций традиционной коммутации MPLS, а в некоторых случаях — к добавлению новых функций. Эти изменения и дополнения влияют на базовые свойства LSP — выделение меток и обмен ими, однонаправленность LSP, распространение ошибок, данные для синхронизации между входом и выходом.

В традиционной организации трафика MPLS каналы, через которые проходят LSP, могут быть разнотипными с разным представлением меток. Например, LSP может включать каналы между множеством маршрутизаторов, каналы между маршрутизаторами и ATM-LSR, а также каналы между ATM-LSR. GMPLS расширяет это, добавляя представление меток в форме временных интервалов, длин волн, положения в реальном физическом пространстве. Как и в традиционной MPLS TE, где не все LSR способны распознавать границы пакетов (IP) (например, ATM-LSR) на уровне пересылки, обобщенная MPLS включает поддержку LSR, которые не способны распознавать границы пакетов (IP) на своих уровнях пересылки. В традиционной MPLS TE передающий трафик IP путь LSP начинается и завершается на маршрутизаторах. GMPLS расширяет эту трактовку, требуя лишь, чтобы LSP начинались и завершались на похожих типах LSR. Кроме того в обобщенной MPLS набор типов передаваемых через LSP данных расширяется за счет добавления SONET/SDH, 1Gb или 10Gb Ethernet и т. п. Эти отличия от традиционной MPLS отразились на способах запроса меток и обмена ими в GMPLS (см. параграфы 3.1 и 3.2). Специальные случаи коммутации длин волн (Lambda) и диапазонов (Waveband) описаны в параграфе 3.3.

Другим фундаментальным различием между традиционными LSP и неспособными коммутировать пакеты (non-PSC) GMPLS LSP является то, что полоса для LSP может выделяться только дискретными блоками (см. параграф 3.1.3). Число меток на каналах без PSC будет (значительно) меньше числа меток на каналах PSC. Отметим, что использование FA10 (см. [MPLS-HIERARCHY]) обеспечивает механизм, способный повысить эффективность использования полосы каналов в тех случаях, когда полоса может выделяться только дискретными блоками, а также механизм агрегирования состояний пересылки, позволяющий снизить число требуемых меток.

GMPLS обеспечивает вышестоящим (upstream) узлам предлагать метки (см. параграф 3.4). Такое предложение может быть переопределено нижестоящим (downstream) узлом, но в некоторых случаях за это придется расплачиваться временем на организацию LSP. Предложенные метки ценны при организации LSP через некоторые типы оптического оборудования, где возможны существенные (по сравнению с электрическими средами) временные издержки на настройку коммутации. Например, может потребоваться настройка положения микрозеркал, связанная с их перемещением и последующей юстировкой. Если метки и, следовательно, машина коммутации настроены для обратного направления (норма), может потребоваться задержка сообщения в десятки миллисекунд на интервал пересылки для организации применимого пути пересылки. Предложенные метки ценны также для случаев восстановления после отказов узлов.

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

В то время, как традиционная организация трафика MPLS (и даже LDP) работает в одном направлении, GMPLS поддерживает организацию двухсторонних LSP (см. раздел 4). Потребность в двухсторонних LSP обусловлена приложениями, не поддерживающими PSC. Существует много причин, по которым могут требоваться такие LSP, в частности, возможная борьба за ресурсы при создании встречных односторонних LSP с помощью раздельных сигнальных сессий или упрощение процедур восстановления для случаев отсутствия поддержки PSC. Двухсторонние LSP также сокращают временные издержки на организацию пути и требуемого для этого число сообщений.

GMPLS поддерживает использование конкретной метки на конкретном интерфейсе (см. раздел 6). [RFC3473] также поддерживает механизмы RSVP для быстрого уведомления об отказах.

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

GMPLS также разрешает включать в сигнализацию специфические параметры технологии. Цель этого заключается в передаче специфических параметров технологии в SENDER_TSPEC и других связанных объектах при использовании RSVP, а также в Traffic Parameters TLV при использовании CR-LDP. Форматы специфических для технологий параметров будут определяться по мере необходимости. Пример таких определений имеется в [GMPLS-SONET].

3. Связанные с метками форматы

Для расширения MPLS на оптические и TDM-устройства требуется несколько новых форм «меток». Совокупность этих новых форм называют обобщенными метками (generalized label). Обобщенные метки содержат информацию, которая позволяет принимающему узлу запрограммировать кросс-соединение, независимо от типа такого соединения, чтобы корректно соединиться с входным сегментом пути. В этом разделе описаны запрос обобщенной метки, собственно метка, поддержка коммутации диапазонов, предложенные метки и наборы меток.

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

3.1. Запрос обобщенной метки

Сообщения Generalized Label Request поддерживают обмен характеристиками, которые требуются для поддержки запрашиваемого LSP. Эти характеристики включают представление и содержимое LSP. Отметим, что эти характеристики могут использоваться промежуточными узлами (например, для поддержки определения предпоследнего интервала).

В Generalized Label Request передается параметр представления LSP, называемый LSP Encoding Type. Этот параметр указывает тип представления (например, SONET/SDH/GigE и т. п.), который будет использоваться для данных, связанных с этим LSP. LSP Encoding Type показывает природу LSP, а не природу каналов, через которые этот LSP проходит. Канал может поддерживать множество форматов представления в том смысле, что канал может передавать и коммутировать сигнал с одним или множеством из этих форматов в зависимости от доступности ресурсов и емкости данного канала. В качестве примера рассмотрим LSP для которого указано lambda-представление. Предполагается, что такой LSP будет поддерживаться без электрических преобразований, но не делается каких-либо предположений о типах модуляции и скоростях на промежуточных устройствах. Другие форматы обычно требуют информации о кадрировании и поля параметров разбиты на тип кадрирования и скорость, как показано ниже.

Generalized Label Request также указывает тип коммутации, запрашиваемый для канала. Это поле обычно совпадает для всех каналов в составе LSP.

3.1.1. Требуемая информация

Формат сообщения Generalized Label Request показан на рисунке.

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LSP Enc. Type |Switching Type |             G-PID             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

LSP Encoding Type — 8 битов

Указывает представление запрашиваемого LSP. Возможные значения поля и их смысл указаны в таблице.

Значение

Тип

1

Пакеты

2

Ethernet

3

ANSI/ETSI PDH

4

Резерв

5

SDH ITU-T G.707 / SONET ANSI T1.105

6

Резерв

7

Digital Wrapper

8

Lambda (оптика)

9

Fiber (волокна)

10

Резерв

11

FiberChannel

Типы ANSI PDH и ETSI PDH обозначают соответствующие сетевые технологии — DS1 и DS3 являются примерами ANSI PDH LSP, а E1 LSP — ETSI PDH. Тип Lambda указывает LSP для всего диапазона длин волн, тип Fiber относится к LSP, которые включают оптические порты целиком.

Switching Type — 8 битов

Показывает тип коммутации, который следует использовать на конкретном канале. Это поле требуется для каналов, поддерживающих более одного типа коммутации. Поле следует отображать на одно из значений, анонсируемых для соответствующего канала в Switching Capability Descriptor [GMPLS-RTG]. Определенные к настоящему моменту значения приведены в таблице.

Значение

Тип

1

Packet-Switch Capable-1 (PSC-1)

2

Packet-Switch Capable-2 (PSC-2)

3

Packet-Switch Capable-3 (PSC-3)

4

Packet-Switch Capable-4 (PSC-4)

51

Layer-2 Switch Capable (L2SC)

100

Time-Division-Multiplex Capable (TDM)

150

Lambda-Switch Capable (LSC)

200

Fiber-Switch Capable (FSC)

Generalized PID (G-PID) — 16 битов

Идентификатор данных, передаваемых через этот LSP (например, идентификатор клиентского уровня данного LSP). Идентификатор используется конечными точками и узлами LSP, а в некоторых случаях — предпоследним интервалом. Для пакетных и Ethernet LSP используются стандартные значения Ethertype, прочие указаны в таблице.

Значение

Тип

Технология

0

Неизвестен

Все

1

Резерв

2

Резерв

3

Резерв

4

Резерв

5

Асинхронное отображение E4

SDH

6

Асинхронное отображение DS3/T3

SDH

7

Асинхронное отображение E3

SDH

8

Синхронное битовое отображение E3

SDH

9

Синхронное байтовое отображение E3

SDH

10

Асинхронное отображение DS2/T2

SDH

11

Синхронное битовое отображение DS2/T2

SDH

12

Резерв

13

Асинхронное отображение E1

SDH

14

Синхронное байтовое отображение E1

SDH

15

Синхронное байтовое отображение 31 * DS0

SDH

16

Асинхронное отображение DS1/T1

SDH

17

Синхронное битовое отображение DS1/T1

SDH

18

Синхронное байтовое отображение DS1/T1

SDH

19

VC-11 в VC-12

SDH

20

Резерв

21

Резерв

22

Асинхронный DS1 SF

SONET

23

Асинхронный DS1 ESF

SONET

24

Асинхронный DS3 M23

SONET

25

Асинхронный DS3 с четностью C-Bit

SONET

26

VT/LOVC

SDH

27

STS SPE/HOVC

SDH

28

POS — без скрэмблирования, CRC 16 битов

SDH

29

POS — без скрэмблирования, CRC 32 бита

SDH

30

POS — со скрэмблированием, CRC 16 битов

SDH

31

POS — со скрэмблированием, CRC 32 бита

SDH

32

Отображение ATM

SDH

33

Ethernet

SDH, лямбда, волокно

34

SONET/SDH

Лямбда, волокно

35

Резерв (запрещено для SONET)

Лямбда, волокно

36

Digital Wrapper

Лямбда, волокно

37

Лямбда

Волокно

38

ANSI/ETSI PDH

SDH

39

Резерв

SDH

40

Протокол доступа к каналу (LAP) SDH (X.85 и X.86)

SDH

41

FDDI

SDH, лямбда, волокно

42

DQDB (ETSI ETS 300 216)

SDH

43

FiberChannel-3 (службы)

FiberChannel

44

HDLC

SDH, лямбда, волокно

45

Только Ethernet V2/DIX

SDH, лямбда, волокно

46

Только Ethernet 802.3

SDH, лямбда, волокно

3.1.2. Представление полосы

Пропускная способность представляется 32-битовым числом с плавающей запятой в формате IEEE (в байтах за секунду). Для непакетных LSP полезно определять дискретные значения, указывающие пропускную способность LSP. Некоторые типовые значения для запрашиваемой полосы представлены в таблице (значения являются рекомендуемыми). По мере необходимости будут определяться новые значения. Представление полосы передается в зависимости от протокола (см. [RFC3473] и [RFC3472]).

Тип сигнала

Битовая скорость (Мбит/с)

Значение (байт/с) (IEEE Floating point)

DS0

0,064

0x45FA0000

DS1

1,544

0x483C7A00

E1

2,048

0x487A0000

DS2

6,312

0x4940A080

E2

8,448

0x4980E800

Ethernet

10,00

0x49989680

E3

34,368

0x4A831A80

DS3

44,736

0x4AAAA780

STS-1

51,84

0x4AC5C100

Fast Ethernet

100,00

0x4B3EBC20

E4

139,264

0x4B84D000

FC-0 133M

0x4B7DAD68

OC-3/STM-1

155,52

0x4B9450C0

FC-0 266M

0x4BFDAD68

FC-0 531M

0x4C7D3356

OC-12/STM-4

622,08

0x4C9450C0

GigE

1000,00

0x4CEE6B28

FC-0 1062M

0x4CFD3356

OC-48/STM-16

2488,32

0x4D9450C0

OC-192/STM-64

9953,28

0x4E9450C0

10GigE-LAN

10000,00

0x4E9502F9

OC-768/STM-256

39813,12

0x4F9450C0

3.2. Обобщенная метка

Обобщенные метки (Generalized Label) являются расширением традиционных меток, которое позволяет представлять не только метки, перемещающиеся вместе с пакетами данных, но и метки, идентифицирующие временные интервалы, длины волн или позиции при пространственном мультиплексировании. Например, Generalized Label может переносить метку, которая представляет (a) отдельное волокно в кабеле, (b) одну длину волны в волокне, (c) одну длину волны в диапазоне (или волокне), (d) группу временных интервалов для одной длины волны (или волокна). Она может также передавать метку, представляющую обычную метку MPLS, Frame Relay или ATM (VCI/VPI).

Обобщенная метка не только идентифицирует «класс», к которому относится метка, но и неявно обеспечивает возможности мультиплексирования на канале, где эта метка используется.

Generalized Label переносит только метку одного уровня (иерархия не поддерживается). Если требуется множество уровней (LSP внутри LSP) пути LSP должны организовываться независимо (см. [MPLS-HIERARCHY]).

Каждый объект/TLV Generalized Label имеет параметр Label переменного размера.

3.2.1. Требуемая информация

Передаваемая в Generalized Label имеет вид:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             Label                             |
|                              ...                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Label — переменный размер

Данные метки, интерпретация которых зависит от типа канала, на котором используется метка.

3.2.1.1. Метки порта и длины волны

Некоторые конфигурации коммутации волокон (FSC) и длин волн (LSC) используют множество каналов данных/соединений, находящихся под контролем одного канала управления. В таких случаях для LSP используются метки, идентифицирующие канал данных/соединение. Отметим, что этот случай не совпадает с использованием [MPLS-BUNDLE].

Информация передается в метке (Port and Wavelength), формат которой показан ниже:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             Label                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Label — 32 бита

Указывает используемый порт/волокно или длину волны с точки зрения отправителя объекта/TLV. Значения этого поля значимы только в контексте соседей и получателю может потребоваться преобразование полученного значения в локально значимое. Значения могут задаваться в конфигурации или определяться динамически с помощью протоколов типа [LMP].

3.2.1.2. Прочие метки

Метки GMPLS и Frame Relay представляются 32-битовыми (4 октета) значениями с выравниванием по правому краю. Метки ATM представляются выравниваемыми по правому краю значениями VPI (биты 0 — 15) и VCI (биты 16 — 31).

3.3. Коммутация диапазонов

Специальным случаем коммутации длин волн (lambda) является коммутация диапазонов. Диапазон представляет собой набор длин вол, который может быть целиком переключен в другой диапазон длин волн. Такая коммутация может быть удобна для оптических кроссов, поскольку позволяет переключить множество длин волн разом. Это может обеспечить снижение уровня дисторсии для отдельных длин волн, а также позволяет сделать более точным разделение по отдельным длинам волн. Для поддержки этого специального случая определена метка Waveband.

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

С точки зрения протокола MPLS метки длин волн и диапазонов отличаются лишь тем, что диапазон может быть разделен на несколько длин волн, а длина волны может быть «поделена» только с помощью меток статистического или временного мультиплексирования.

3.3.1. Требуемая информация

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

В контексте коммутации диапазонов длин волн формат обобщенной метки имеет вид, показанный ниже.

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Waveband Id                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Start Label                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           End Label                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Waveband Id — 32 бита

Идентификатор диапазона длин волн. Значение выбирается отправителем и используется во всех последующих сообщениях, связанных с данной меткой.

Start Label — 32 бита

Указывает идентификатор канала наименьшей длины волны диапазона с точки зрения объекта/TLV отправителя.

End Label — 32 бита

Указывает идентификатор канала наибольшей длины волны диапазона с точки зрения объекта/TLV отправителя.

Идентификаторы каналов задаются в конфигурации или с помощью протоколов типа LMP [LMP]. Эти идентификаторы обычно применяются в параметре Label обобщенных меток одного PSC и LSC.

3.4. Предложенные метки

Предложенные метки (Suggested Label) служат для передачи нижележащим узлам меток, предпочитаемых вышестоящими. Это позволяет узлу восходящего направления начинать настройку своего оборудования с выбором метки, которая будет предлагаться, до передачи этой метки узлу нисходящего направления. Такая предварительная настройка весьма желательна для систем, в которых организация метки в устройствах может занимать достаточно много времени. Предварительная настройка позволяет ускорить процесс, что может быть важно при восстановлении работоспособности, когда может потребоваться срочная организация дополнительных LSP в результате отказа в сети.

Использование Suggested Label обеспечивает лишь оптимизацию. Если нижележащий узел передает наверх другую метку, LSR восходящего направления перестраивается с учетом этой метки, сохраняя управление метками за узлом нисходящего направления. Отметим, что передача передача предлагаемой метки не предполагает доступности этой метки для использования. В частности, входному узлу не следует передавать трафик с использованием предложенной метки, пока нижележащий узел не передаст эту метку наверх.

Информация в предлагаемых метках идентична информации в обобщенных метках. Отметим, что значения поля Label в предлагаемых метках даются с точки зрения объекта /TLV отправителя.

3.5. Набор меток

Наборы меток (Label Set) применяются для ограничения числа меток, выбираемых нижележащим узлом, неким множеством приемлемых меток. Это ограничение используется на уровне интервала пересылки (hop).

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

Label Set используется для ограничения наборов меток, которые могут применяться на конкретном пути LSP между двумя партнерами. Получатель Label Set должен ограничить свой выбор меток в соответствии с полученным набором. Как м отдельные метки, Label Set может применяться на множестве интервалов. В этом случае каждый узел генерирует свой исходящий Label Set, возможно на основе Label Set и с учетом возможностей оборудования. Предполагается, что этот случай будет нормой для устройств с интерфейсами без поддержки преобразования длин волн (CI-incapable).

Использование Label Set не является обязательным. При отсутствии такого набора могут применяться из числа приемлемых. Концептуально, отсутствие Label Set эквивалентно получения набора {U}, содержащего все приемлемые метки.

3.5.1. Требуемая информация

Набор меток состоит из одного или множества объектов/TLV Label_Set, содержащих по одному или более элементов Label Set. Элемент называется идентификатором субканала и его формат совпадает с форматом обобщенной метки.

Label_Set включает:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Action     |      Reserved     |        Label Type         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Subchannel 1                         |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                               :                               :
   :                               :                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Subchannel N                         |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Action (действие) — 8 битов

0 — Inclusive List — список включения

Показывает, что объект/TLV содержит один или множество элементов субканалов, включенных в Label Set.

1 — Exclusive List — список исключения

Показывает, что объект/TLV содержит один или множество элементов субканалов, исключенных из Label Set.

2 — Inclusive Range — диапазон включения

Показывает, что объект/TLV содержит диапазон меток. Объект/TLV включает два элемента субканалов — первый задает начало, второй — конец диапазона. Нулевое значение элемента указывает на отсутствие привязки для соответствующей границы.

3 — Exclusive Range — диапазон исключения

Показывает, что объект/TLV содержит диапазон меток, исключенных из Label Set. Объект/TLV включает два элемента субканалов — первый задает начало, второй — конец диапазона. Нулевое значение элемента указывает на отсутствие привязки для соответствующей границы.

Reserved — 10 битов

Резервное поле, которое должно устанавливаться в 0 при передаче и игнорироваться на приеме.

Label Type (тип метки) — 14 битов

Указывает тип и формат меток, передаваемых в объекте /TLV. Значения зависят от сигнального протокола.

Subchannel (субканал) — субканал

Два субканала представляют метку (длину волны, волокно, …), которая может быть выделена. Это поле имеет такой же формат, как указано для меток в параграфе 3.2.

Отметим, что отображение субканала на идентификатор локального канала (например, длину волны) имеет локальную значимость.

4. Двухсторонние LSP

В этом разделе определяется прямая поддержка двухсторонних LSP. Поддержка определяется для LSP, имеющих для обоих направлений одинаковые требования по организации трафика, включая совместное использование для данных и сигнализации (fate sharing), защиту и восстановление, маршрутизаторы LSR и требования к ресурсам (например, задержка и ее вариации). Далее в этом разделе термином «инициатор» (initiator) будет обозначаться узел, который начал организацию LSP, а термином «завершение» (terminator) — узел, являющийся целью данного LSP. Отметим, что для двухсторонних имеется лишь один инициатор и одно завершение.

Обычно для организации двухстороннего LSP при использовании [RFC3209] или [RFC3212] сначала должны независимо создаваться два односторонних пути. Такая модель имеет ряд недостатков.

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

  • Издержки, связанные с управлением, возрастают вдвое по сравнению с односторонним LSP. Это обусловлено тем, что управляющие соединения (например, Path и Resv) должны независимо генерироваться для обоих сегментов двухстороннего LSP.

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

  • Сложнее обеспечить «чистый» интерфейс для оборудования SONET/SDH, на котором может быть основана поинтервальная защита пути с помощью коммутации.

  • Двухсторонние оптические LSP (lightpath) становятся требованием для многих операторов оптических сетей.

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

4.1. Требуемая информация

Для двухсторонних LSP должны выделяться две метки. Организация двухстороннего LSP указывается присутствием объекта/TLV Upstream Label в соответствующем сигнальном сообщении. Формат Upstream Label совпадает с форматом обобщенной метки (параграф 3.2).

4.2. Устранение конфликтов

Могут возникать конфликты из-за выделения меток между двумя двухсторонними LSP, организуемыми в противоположных направлениях. Это происходит в тех случаях, когда обе стороны выделяют одни и те же ресурсы (метки) фактически в одно время. Если нет каких-либо ограничений на использование меток для двухсторонних LSP и имеются дополнительные ресурсы, оба узла будут передавать в восходящем направлении разные метки и конфликта не произойдет. Однако при наличии ограничений на использование меток для двухсторонних LSP (например, они должны быть физически связаны с одной платой ввода-вывода) или отсутствии дополнительных ресурсов требуется разрешение конфликтной ситуации иными средствами. Для устранения конфликта преимущество отдается узлу с большим значением идентификатора (node ID) и этот узел должен передать сообщение PathErr/NOTIFICATION с индикацией ошибки Routing problem/Label allocation failure (проблема маршрутизации или отказ при выделении метки). Получившему такое сообщение узлу следует попытаться выделить другую метку Upstream (и другую Suggested Label, при использовании предлагаемых меток) для двухстороннего пути. Однако при отсутствии доступных ресурсов узел должен выполнить стандартную обработку ошибок.

Для снижения вероятности конфликта можно ввести правило, в соответствии с которым узел с меньшим значением ID никогда не будет предлагать метку в нисходящем направлении и всегда воспринимать Suggested Label от узла восходящего направления с большим ID. Кроме того, поскольку обмен метками может происходить с использованием LMP, можно дополнительно ввести локальное правило (по отношению к меткам с большими номерами из набора меток узла), по которому узел с большим номером может выбирать метки со старшего края диапазона меток, а узел с меньшим номером — с младшего. Этот механизм позволяет усилить алгоритмы плотной упаковки, которые могут применяться для оптимизации диапазонов или длин волн. Следует отметить особый случай использования RSVP с поддержкой этого решения — идентификатор соседнего узла может быть не известен при отправке первоначального сообщения Path. В такой ситуации узлу следует предлагать случайно выбранную метку из числа доступных.

Пример конфликта между двумя узлами (PXC 1 и PXC 2) показан на рисунке 1. В этом примере PXC 1 выделяет метку Upstream Label для канала, соответствующего локальному идентификатору BCId=2 (локальный BCId=7 на PXC 2) и отправляет Suggested Label для канала, соответствующего локальному BCId=1 (локальный BCId=6 на PXC 2). Одновременно PXC 2 выделяет метку Upstream Label для канала, соответствующего его локальному BCId=6 (локальный BCId=1 на PXC 1) и передает Suggested Label для канала, соответствующего его локальному BCId=7 (локальный BCId=2 на PXC 1). Если нет ограничений на метки, которые могут использоваться для двухсторонних LSP и имеются дополнительные ресурсы оба узла PXC 1 и PXC 2 будут передавать в восходящем направлении разные метки и конфликт будет устранен (рисунок 2). Однако при наличии ограничений на метки, которые могут применяться для двухсторонних LSP (например, если они должны быть физически привязаны к одной плате ввода-вывода), потребуется устранение конфликта с использованием идентификатора узла (рисунок 3).

+------------+                         +------------+
+   PXC 1    +                         +   PXC 2    +
+            +                 SL1,UL2 +            +
+          1 +------------------------>+ 6          +
+            + UL1, SL2                +            +
+          2 +<------------------------+ 7          +
+            +                         +            +
+            +                         +            +
+          3 +------------------------>+ 8          +
+            +                         +            +
+          4 +<------------------------+ 9          +
+------------+                         +------------+

Рисунок 1. Конфликт меток

В этом примере PXC 1 выделяет метку Upstream Label, используя BCId=2 (BCId=7 на PXC 2), и метку Suggested Label, используя BCId=1 (BCId=6 на PXC 2). Одновременно PXC 2 выделяет метку Upstream Label, используя BCId=6 (BCId=1 на PXC 1), и Suggested Label, используя BCId=7 (BCId=2 на PXC 1).

+------------+                         +------------+
+   PXC 1    +                         +   PXC 2    +
+            +                     UL2 +            +
+          1 +------------------------>+ 6          +
+            + UL1                     +            +
+          2 +<------------------------+ 7          +
+            +                         +            +
+            +                      L1 +            +
+          3 +------------------------>+ 8          +
+            + L2                      +            +
+          4 +<------------------------+ 9          +
+------------+                         +------------+

Рисунок 2. Устранение конфликта при неограниченных ресурсах.


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

+------------+                         +------------+
+   PXC 1    +                         +   PXC 2    +
+            +                     UL2 +            +
+          1 +------------------------>+ 6          +
+            + L2                      +            +
+          2 +<------------------------+ 7          +
+            +                         +            +
+            +                      L1 +            +
+          3 +------------------------>+ 8          +
+            +  UL1                    +            +
+          4 +<------------------------+ 9          +
+------------+                         +------------+

Рисунок 3. Устранение конфликта при ограниченных ресурсах.


В этом случае должны использоваться метки 1,2 и 3,4 на PXC 1 (метки 6,7 и 8,9 на PXC 2, соответственно) для одного двухстороннего соединения. Поскольку узел PXC 2 имеет большее значение идентификатора, ему отдается преимущество и узел PXC 1 должен поменять используемый набор меток.

5. Уведомление о Label Error

В традиционной MPLS и GMPLS возникают ситуации, приводящие к сообщениям о неприемлемом значении метки (Unacceptable label value), как описано в [RFC3209], [RFC3472] и [RFC3473]. При возникновении таких ситуаций для узла, генерирующего такое сообщение может оказаться полезным указание вызвавшей ошибку метки. Для этого в GMPLS обеспечивается возможность передачи дополнительных данных поле Acceptable Label Set, включаемое в подходящее протокольное сообщение об ошибке (см. [RFC3472] и [RFC3473]).

Формат Acceptable Label Set идентичен формату Label Set, описанному в параграфе 3.5.1.

6. Явное управление метками

В традиционной MPLS интерфейсы, используемые LSP могут контролироваться через явные маршруты (например, ERO или ER-Hop). Это позволяет включать конкретный узел/интерфейс и завершать LSP на конкретном выходном интерфейсе выходного LSR. Этот интерфейс может иметь адрес, но это не обязательно (unnumbered) [MPLS-UNNUM].

Возникают случаи, когда семантика наличия явных маршрутов не обеспечивает полной информации для достаточного контроля LS. Это происходит, если инициатор LSP пожелает выбрать метку, используемую на канале. Проблема, в частности, связана с тем, что ERO и ER-Hop не поддерживают субобъектов явных меток. Примером желательности такого механизма будет случай «сращивания» двух LSP, когда «голова» одного пути присоединяется к «хвосту» другого. Возникновение таких ситуаций достаточно очевидно для каналов без поддержки PSC.

Для решения этой проблемы предназначен субобъект ERO/ER Hop.

6.1. Требуемая информация

Label Explicit и Record Routes содержат:

L — 1 бит

Этот бит должен иметь значение 0.

U — 1 бит

Этот бит указывает направление метки — значение 0 применяется для меток нисходящего направления, 1 — для восходящего. Бит применяется только для двухсторонних LSP.

Label — переменный размер

Это поле идентифицирует используемую метку. Формат поля идентичен формату поля Label в Generalized Label, описанному в параграфе 3.2.1.

Размещение и порядок этих полей зависит от протокола сигнализации.

7. Информация о защите

Информация о защите (Protection Information) передается в новом объекте/TLV и служит для указания связанных с соединением атрибутов защиты запрошенного LSP. Использование Protection Information для конкретного LSP является не обязательным. Protection Information в настоящее время указывает желаемый тип защиты LSP. Если запрошен конкретный тип (например, 1+1 или 1:N), запрос на организацию соединения обрабатывается лишь в том случае, когда этот уровень защиты может быть обеспечен. Отметим, что возможности защиты каналов могут анонсироваться в маршрутизации (см. [GMPLS-RTG]). Алгоритмы расчета путем принимают информацию о защите во внимание при поиске пути для организации LSP.

Protection Information также показывает является данный LSP основным или вторичным. Вторичный LSP служит резервным путем для основного LSP. Ресурсы вторичного LSP не используются, пока на основном пути не возникает отказ. Выделенные для вторичного LSP ресурсы могут использоваться другими LSP, пока на основном для этого пути LSP не возникает отказов. В момент возникновения отказа на основном LSP все использованные ресурсы вторичного LSP должны быть возвращены и переданы для резервного пути.

7.1. Требуемая информация

В Protection Information передаются следующие данные:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|S|                  Reserved                       | Link Flags|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Secondary (S) 1 бит

Установка этого флага показывает, что запрашиваемый LSP является вторичным LSP.

Reserved 25 битов

Это поле является резервным. Оно должно содержать нулевое значение при передаче и должно игнорироваться на приемной стороне. Транзитным узлам следует передавать эти биты в неизменном виде.

Link Flags 6 битов

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

Определены следующие флаги:

0x20 Enhanced

Указывает, что следует использовать на канальном уровне схему защиты, которая более надежна, чем Dedicated 1+1 (например, 4 волокна BLSR/MS-SPRING).

0x10 Dedicated 1+1

Указывает, что для поддержки LSP следует использовать схему защиты с выделенным соединением канального уровня 1+1.

0x08 Dedicated 1:1

Указывает, что для поддержки LSP следует использовать схему защиты с выделенным соединением канального уровня 1:1.

0x04 Shared

Указывает, что для поддержки LSP следует использовать схему защиты с разделяемым соединением канального уровня (например, 1:N).

0x02 Unprotected

Показывает, что для LSP не следует использовать какую-либо защиту на канальном уровне.

0x01 Extra Traffic

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

8. Информация об административном статусе

Данные Administrative Status Information передаются в новом объекте/TLV и используются в настоящее время двумя способами. Во-первых, они показывают административный статус конкретного LSP. Путь может находиться в состоянии up (активен) или down (не активен), а также в режиме тестирования (testing) или удаления. Предпринимаемые узлом действия, основанные на состоянии пути, определяются локально. Примером таких действий может служить подавление сигналов тревоги для LSP в состоянии down или testing, а также информирование о связанных с соединением сигналах, имеющих приоритет не выше Non service affecting (без воздействия на сервис).

Второй вариант использования Administrative Status Information связан с индикацией запросов на установку административного состояния LSP. Информация всегда транслируется входному узлу, который действует по запросу.

Различия в применении зависят от протокола и более подробно описаны в [RFC3473] и [RFC3472]. Применение Administrative Status Information для конкретного LSP не является обязательным.

8.1. Требуемая информация

Информация, передаваемая в Administrative Status Information, показана ниже.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |R|                        Reserved                       |T|A|D|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Reflect (R) — 1 бит

Установленный бит говорит, что граничному узлу следует вернуть объект/TLV в подходящем для этого сообщении. Этот флаг недопустимо устанавливать в запросах смены состояния (например, сообщениях Notify).

Reserved — 28 битов

Резервное поле, которое должно устанавливаться в 0 при передаче и должно игнорироваться при получении. Транзитным узлам следует передавать это поле в неизменном виде.

Testing (T) — 1 бит

Установленный бит показывает, что следует выполнить локальные действия, связанные с режимом тестирования.

Administratively down (A) — 1 бит

Установленный флаг показывает, что следует выполнить локальные действия, связанные с режимом административного отключения.

Deletion in progress (D) — 1 бит

Установленный флаг показывает, что следует выполнить локальные действия, связанные с разборкой LSP. Граничные узлы могут использовать этот флаг для контроля за разрывом соединений.

9. Разделение каналов управления

Концепция канала управления, отдельного от сигнализации, передаваемой в канале данных, была введена в MPLS вместе с группировкой соединений (bundling) в [MPLS-BUNDLE]. В GMPLS разделение каналов данных и управления может быть обусловлено многими факторами, включая группировку и другие случаи, когда каналы данных не могут передаваться вместе с управляющей информацией в основной полосе. В этом разделе рассматриваются два тесно связанных вопроса — идентификация каналов данных в сигнализации и обработка отказов в каналах управления, не влияющих на каналы данных.

9.1. Идентификация интерфейсов

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

В тех случаях, когда явно нет взаимно-однозначной связи между каналом данных и каналом управления, в сигнализации требуется передать дополнительную информацию, идентифицирующую канал данных, для которого будет осуществляться управление. GMPLS поддерживает явную идентификацию каналов данных с помощью идентификаторов интерфейсов. GMPLS позволяет использовать множество схем идентификации интерфейсов, включая адреса IPv4 и IPv6, индексы интерфейсов (см. [MPLS-UNNUM]) и компоненты интерфейсов (организуются путем настройки или с помощью протоколов типа [LMP]). Во всех случаях выбор интерфейса указывается узлом восходящего направления с использованием адресов и идентификатором, применяемых вышестоящим узлом.

9.1.1. Требуемая информация

Информация, передаваемая в Interface_ID, показана ниже.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                              TLV                              ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Для каждого TLV используется показанный ниже формат.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Type             |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                             Value                             ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length — 16 битов

Показывает общий размер TLV (4 + размер поля Value) в октетах. Для полей Value, размер которых не кратен 4, должно использоваться дополнение нулями для выравнивания по 4-октетной границе.

Type — 16 битов

Указывает тип идентифицируемого интерфейса. Определенные значения показаны ниже.

Тип

Размер

Формат

Описание

1

8

Адрес IPv4

IPv4

2

20

Адрес IPv6

IPv6

3

12

См. ниже IF_INDEX

Индекс интерфейса

4

12

См. ниже COMPONENT_IF_DOWNSTREAM

Компонентный интерфейс

5

12

См. ниже COMPONENT_IF_UPSTREAM

Компонентный интерфейс

Для типов 3 — 5 поле Value имеет формат, показанный ниже.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            IP Address                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Interface ID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

IP Address — 32 бита

Поле IP Address может передавать IP-адрес канала или IP-адрес, связанный с маршрутизатором, где связанный адрес представляет собой значение, передаваемое в поле адреса маршрутизатора TLV маршрутизации.

Interface ID — 32 бита

Для типа 3 поле Interface ID содержит идентификатор интерфейса.

Для типов 4 и 5 поле Interface ID указывает собранный компонентный канал. Может использоваться специальное значение 0xFFFFFFFF для индикации того, что одна и та же метка применима ко всем компонентным каналам.

9.2. Обработка отказов

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

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

Оба случая обрабатываются в зависимости от протокола 9см. [RFC3473] и [RFC3472]).

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

10. Благодарности

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

Были получены полезные комментарии и предложения от многих людей, включая Igor Bryskin, Adrian Farrel, Ben Mack-Crane, Dimitri Papadimitriou, Fong Liaw и Juergen Heiles. Некоторые разделы документа основаны на тексте, представленном Fong Liaw.

11. Вопросы безопасности

Этот документ не порождает новых вопросов безопасности по сравнению с отмеченными в [RFC3212] и [RFC3209], которые к соответствующим определяемым протоколами формам GMPLS (см. [RFC3473] и [RFC3472]).

12. Согласование с IANA

IANA будет администрировать выделение новых значений в пространствах имен, определенных в данном документе. В этом параграфе используется терминология BCP 26 «Guidelines for Writing an IANA Considerations Section in RFCs» [BCP26].

В данном документе определены следующие пространства имен:

  • LSP Encoding Type — 8 битов;

  • Switching Type — 8 битов;

  • Generalized PID (G-PID) — 16 битов;

  • Action — 8 битов;

  • Interface_ID Type — 16 битов.

Все новые значения следует выделять по процедуре IETF Consensus или документировать в спецификации.

LSP Encoding Type — допустимы значения от 1 до 255 (включительно), данный документ определяет значения 1 — 11.

Switching Type — допустимы значения от 1 до 255 (включительно), данный документ определяет значения 1 — 4, 100, 150 и 200.

Generalized PID (G-PID) — допустимы значения от 0 до 1500 (включительно), данный документ определяет значения 0 — 46.

Action — допустимы значения от 1 до 255 (включительно), данный документ определяет значения 0 — 3.

Interface_ID Type — допустимы значения от 1 до 65535 (включительно), данный документ определяет значения 1 — 5.

13. Интеллектуальная собственность

Текст этого раздела взят из параграфа 10.4 работы [RFC2026].

The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF’s procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director.

14. Литература

14.1. Нормативные документы

[RFC2119] Bradner, S., «Key words for use in RFCs to Indicate Requirement Levels,» BCP 14, RFC 2119, March 1997.

[RFC3036] Andersson, L., Doolan, P., Feldman, N., Fredette, A. and B. Thomas, «LDP Specification», RFC 303611, January 2001.

[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V. and G. Swallow, «RSVP-TE: Extensions to RSVP for LSP Tunnels», RFC 3209, December 2001.

[RFC3212] Jamoussi, B., Andersson, L., Callon, R., Dantu, R., Wu, L., Doolan, P., Worster, T., Feldman, N., Fredette, A., Girish, M., Gray, E., Heinanen, J., Kilty, T. and A. Malis, «Constraint-Based LSP Setup using LDP», RFC 3212, January 2002.

[RFC3472] Ashwood-Smith, P. and L. Berger, Editors, «Generalized Multi-Protocol Label Switching (GMPLS) Signaling — Constraint-based Routed Label Distribution Protocol (CR-LDP) Extensions», RFC 3472, January 2003.

[RFC3473] Berger, L., Editor «Generalized Multi-Protocol Label Switching (GMPLS) Signaling — Resource ReserVation Protocol-Traffic Engineering (RSVP-TE) Extensions», RFC 3473, January 2003.

14.2. Дополнительная литература

[GMPLS-RTG] Kompella, K., et al., «Routing Extensions in Support of Generalized MPLS», Work in Progress12.

[GMPLS-SONET] Ashwood-Smith, P., et al., «GMPLS — SONET / SDH Specifics», Work in Progress.

[LMP] Lang, et al., «Link Management Protocol», Work in Progress13.

[MPLS-BUNDLE] Kompella, K., Rekhter, Y. and L. Berger, «Link Bundling in MPLS Traffic Engineering», Work in Progress14.

[MPLS-HIERARCHY] Kompella, K. and Y. Rekhter, «LSP Hierarchy with MPLS TE», Work in Progress15.

[RFC2026] Bradner, S., «The Internet Standards Process – Revision 3,» BCP 9, RFC 2026, October 1996.

[RFC2434] Narten, T. and H. Alvestrand, «Guidelines for Writing an IANA Considerations Section in RFCs», BCP 26, RFC 2434, October 1998.

[RFC3031] Rosen, E., Viswanathan, A. and R. Callon, «Multiprotocol label switching Architecture», RFC 3031, January 2001.

15. Разработчики

Peter Ashwood-Smith

Nortel Networks Corp.

P.O. Box 3511 Station C,

Ottawa, ON K1Y 4H7

Canada

Phone: +1 613 763 4534

EMail: petera@nortelnetworks.com

Ayan Banerjee

Calient Networks

5853 Rue Ferrari

San Jose, CA 95138

Phone: +1 408 972-3645

EMail: abanerjee@calient.net

Lou Berger

Movaz Networks, Inc.

7926 Jones Branch Drive

Suite 615

McLean VA, 22102

Phone: +1 703 847-1801

EMail: lberger@movaz.com

Greg Bernstein

EMail: gregb@grotto-networking.com

John Drake

Calient Networks

5853 Rue Ferrari

San Jose, CA 95138

Phone: +1 408 972 3720

EMail: jdrake@calient.net

Yanhe Fan

Axiowave Networks, Inc.

200 Nickerson Road

Marlborough, MA 01752

Phone: + 1 774 348 4627

EMail: yfan@axiowave.com

Kireeti Kompella

Juniper Networks, Inc.

1194 N. Mathilda Ave.

Sunnyvale, CA 94089

EMail: kireeti@juniper.net

Jonathan P. Lang

EMail: jplang@ieee.org

Eric Mannie

Independent Consultant

2 Avenue de la Folle Chanson

1050 Brussels

Belgium

EMail: eric_mannie@hotmail.com

Bala Rajagopalan

Tellium, Inc.

2 Crescent Place

P.O. Box 901

Oceanport, NJ 07757-0901

Phone: +1 732 923 4237

Fax: +1 732 923 9804

EMail: braja@tellium.com

Yakov Rekhter

Juniper Networks, Inc.

EMail: yakov@juniper.net

Debanjan Saha

EMail: debanjan@acm.org

Vishal Sharma

Metanoia, Inc.

1600 Villa Street, Unit 352

Mountain View, CA 94041-1174

Phone: +1 650-386-6723

EMail: v.sharma@ieee.org

George Swallow

Cisco Systems, Inc.

250 Apollo Drive

Chelmsford, MA 01824

Phone: +1 978 244 8143

EMail: swallow@cisco.com

Z. Bo Tang

EMail: botang01@yahoo.com

16. Адрес редактора

Lou Berger

Movaz Networks, Inc.

7926 Jones Branch Drive

Suite 615

McLean VA, 22102

Phone: +1 703 847-1801

EMail: lberger@movaz.com

Перевод на русский язык

Николай Малых

nmalykh@gmail.com

17. Полное заявление авторских прав

Copyright (C) The Internet Society (2003). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функция RFC Editor обеспечено Internet Society.


1Multi-Protocol Label Switching — многопротокольная коммутация по меткам.

2Generalized MPLS — обобщенная MPLS.

3Synchronous Optical Network, Synchronous Digital Hierarchy.

4Label Switching Router — маршрутизатор с коммутацией по меткам.

5Packet-Switch Capable — способные коммутировать пакеты.

6Time-Division Multiplex Capable — поддерживающие мультиплексирование с разделением по времени.

7Lambda Switch Capable — способные коммутировать по длине волны (лямбда).

8Fiber-Switch Capable — способные коммутировать волокна.

9Label Switched Path — путь с коммутацией по меткам.

10Forwarding Adjacency – смежность по пересылке.

11Этот документ признан устаревшим и заменен RFC 5036. Прим. перев.

12Работа завершена и опубликована в RFC 4202. Прим. перев.

13Работа завершена и опубликована в RFC 4204. Прим. перев.

14Работа завершена и опубликована в RFC 4201. Прим. перев.

15Работа завершена и опубликована в RFC 4206. Прим. перев.

Рубрика: RFC | Комментарии к записи RFC 3471 Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description отключены

RFC 3448 TCP Friendly Rate Control (TFRC): Protocol Specification

Network Working Group                                     M. Handley
Request for Comments: 3448                                  S. Floyd
Category: Standards Track                                       ICIR
                                                           J. Padhye
                                                           Microsoft
                                                           J. Widmer
                                              University of Mannheim
                                                        January 2003

 

Дружественный к TCP контроль скорости (TFRC) — спецификация протокола

TCP Friendly Rate Control (TFRC): Protocol Specification

PDF

Статус документа

В этом документе содержится проект стандартного протокола Internet для сообщества Internet и приглашение к дискуссии в целях развития и совершенствования протокола. Информацию о текущем состоянии стандартизации протокола можно найти в текущей версии документа Internet Official Protocol Standards (STD 1)1. Документ может распространяться без ограничений.

Авторские права

Copyright (C) The Internet Society (2003). All Rights Reserved.

Аннотация

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

1. Введение

В этот документе содержится спецификация TFRC, представляющего собой механизм контроля насыщения, разработанный для потоков данных с индивидуальной адресацией в среде Internet, передаваемых одновременно с трафиком TCP [2]. Вместо задания протокола целиком в этом документе дается спецификация механизма контроля насыщения, который может использоваться транспортными протоколами типа RTP [7] в приложениях, включающих сквозной контроль насыщения на уровне приложений, или в контексте контроля насыщения на конечных точках [1]. В документе не рассматриваются форматы пакетов и вопросы надежности. Связанные с реализациями вопросы достаточно кратко рассмотрены в главе 8.

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

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

Механизм TFRC разработан для приложений, которые используют пакеты фиксированного размера и меняют скорость передачи таких пакетов в ответ на возникновение перегрузок (насыщения). Для некоторых звуковых приложений требуется обеспечение фиксированного интервала времени между передачей последовательных пакетов и варьирование размера пакетов в ответ на возникновение перегрузки. Механизм контроля насыщения, предложенный в этом документе, для таких приложений не подходит, однако эту задачу решает механизм TFRC-PS5, являющийся вариантом TFRC для приложений с фиксированной частотой передачи и изменением размера пакетов при возникновении насыщения. Спецификация TFRC-PS будет приведена в отдельном документе6.

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

2. Терминология

Ключевые слова необходимо (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не следует (SHALL NOT), следует (SHOULD), не нужно (SHOULD NOT), рекомендуется (RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе интерпретируются в соответствии с BCP 14, RFC 2119 и показывают уровень требований к реализациям в части соответствия TFRC.

3. Механизм протокола

Для контроля насыщения TFRC напрямую использует уравнение пропускной способности для разрешенной скорости передачи, как функции от частоты фактов потери пакетов и времени кругового обхода. Для беспристрастной конкуренции с TCP, механизм TFRC использует принятое в TCP уравнение для пропускной способности, выражающее скорость передачи TCP, как функцию от частоты фактов потери пакетов, времени кругового обхода и размера сегментов. Определим факт потери, как случай утраты одного или более маркированного пакета из окна данных; маркированными считаются пакеты, помеченные явным индикатором насыщения ECN7 [6].

В общем виде механизм контроля насыщения TFRC можно описать следующим образом:

  • Получатель определяет частоту фактов потери пакетов и передает эту информацию отправителю.
  • Отправитель использует эти сообщения от получателя для определения времени кругового обхода (RTT8).
  • Значения частоты фактов потери и RTT передаются в уравнение пропускной способности TFRC и результирующая скорость передачи ограничена значением не более удвоенной скорости приема.
  • Отправитель подстраивает скорость передачи в соответствии с допустимой скоростью передачи X.

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

3.1. Уравнение для пропускной способности TCP

Любое реалистичное выражение пропускной способности TCP, как функции RTT и вероятности потери пакетов, следует рассматривать, как подходящее для использования с TFRC. Однако следует отметить, что используемое для пропускной способности TCP уравнение должно отражать поведение повторов передачи по тайм-ауту, поскольку это поведение доминирует при определении пропускной способности TCP в условиях высокой вероятности потерь. Отметим также, что допущения, принятые относительно вероятности потерь в уравнении для пропускной способности, зависят от реального механизма определения вероятности потерь. Хотя это допущение не вполне соответствует приведенному ниже уравнению для пропускной способности и описанным механизмам измерения, оно достаточно хорошо подходит на практике.

Уравнение пропускной способности, которое мы рекомендуем для использования в TFRC, является слегка упрощенным вариантом уравнения для Reno TCP из работы [4]. В идеальном случае уравнение для пропускной способности следовало бы создавать на основе SACK9 TCP, однако тесты и эксперименты показывают, что различия между двумя уравнениями достаточно малы.

Пропускная способность выражается уравнением

                                  s
X = --------------------------------------------------------------
    R*sqrt(2*b*p/3) + (t_RTO * (3*sqrt(3*b*p/8) * p * (1+32*p^2)))

где:

X — скорость передачи (байт/сек);

s — размер пакетов (байт);

R — время кругового обхода в секундах;

p — вероятность потерь (0 — 1.0) — доля потерянных пакетов в от общего числа переданных пакетов;

t_RTO — тайм-аут повторной передачи TCP в секундах;

b — число пакетов, подтверждаемых одним пакетом TCP ACK.

Упростим это выражение, приняв t_RTO = 4*R. Возможен более точный расчет t_RTO, однако эксперименты с выбранным значением показали достаточно беспристрастное деление полосы с существующими реализациями TCP [9]. Другим возможным вариантом является выбор для t_RTO большего из 2 значений (4R, 1 секунда) в соответствии с рекомендациями по установке для RTO значения не меньше 1 секунды [5].

Многие соединения TCP используют режим отложенных подтверждений, когда пакет подтверждения передается для каждого второго принятого пакета (b = 2). Однако TCP позволяет передавать подтверждения для каждого пакета (b = 1). Поскольку множество реализаций TCP не использует режима отложенных подтверждений, рекомендуется использовать b = 1.

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

Параметры s (размер пакета), p (вероятность потери) и R (RTT) должны измеряться или рассчитываться реализацией TFRC. Измерение s рассматривается в параграфе 4.1, измерение R — в параграфе 4.3, а измерение p — в разделе 5. Далее в этом документе все значения скоростей приводятся в байтах/сек.

3.2. Содержимое пакетов

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

3.2.1. Пакеты данных

Каждый пакет данных, передаваемый отправителем, содержит следующую информацию:

  • Порядковый номер. Этот номер увеличивается на 1 с каждым переданным пакетом. Поле должно быть достаточно большим, чтобы в списке недавних пакетов получателя не появлялись разные пакеты с одинаковым порядковым номером.
  • Временная метка момента передачи. Будем обозначать ts_i временную метку пакета с порядковым номером i. Разрешение для временных меток обычно измеряется миллисекундами. Эти временные метки используются получателем для определения потерь пакетов, которые следует отнести к одному событию (факту потери). Эти метки получатель возвращает отправителю в качестве «эхо» для того, чтобы тот мог оценить время кругового обхода (это нужно для отправителей, не сохраняющих временных меток переданных пакетов). Отметим, что существует альтернативный вариант использования временных меток, когда значение метки инкрементируется каждую четверть времени кругового обхода; такой точности достаточно для отнесения потерь пакетов к одному событию в контексте протокола, где это понятно как отправителю, так и получателю, а отправитель сохраняет временные метки переданных пакетов.
  • Оценка времени кругового обхода отправителем. Оценка, передаваемая в пакете i обозначается R_i. Оценка времени кругового обхода используется получателем вместе с временными метками для определения множества потерь пакетов, относящихся к одному событию. Если отправитель передает передает грубые «временные метки», которые увеличиваются каждую четверть периода кругового обхода, как описано выше, такому отправителю не нужно передавать свою оценку времени кругового обхода.

3.2.2. Пакеты обратной связи

Каждый пакет обратной связи, передаваемый получателем данных, содержит следующую информацию:

  • Временная метка последнего принятого пакета (t_recvdata). Если последний принятый пакет имеет номер i, то t_recvdata = ts_i. Эта временная метка используется отправителем для оценки времени кругового обхода и требуется только в тех случаях, когда отправитель не сохраняет временные метки переданных пакетов данных.
  • Интервал времени между приемом последнего пакета и генерацией данного пакета обратной связи. Будем обозначать этот интервал t_delay.
  • Оценка получателем скорости приема данных с момента отправки последнего пакета обратной связи. Будем обозначать этот интервал X_recv.

  • Текущее значение вероятности потери по оценке получателя (p).

4. Протокол отправителя данных

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

Для протокола на передающей стороне зададим следующие этапы:

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

4.1. Измерение размера пакетов

Параметр s (размер пакета) обычно известен приложению, но могут быть два исключительных случая:

  • Размер пакетов данных меняется естественным образом в зависимости от данных. В этом случае, хотя размер пакетов меняется, его вариации не отражаются на скорости передачи. Обычно можно без опаски использовать средний размер пакета в качестве s.
  • Для контроля насыщения приложение может менять размер пакетов, а не скорость их передачи. Это обычная практика для аудио-приложений, в которых пакеты данных передаются с фиксированным интервалом, требуемым для представления каждого пакета. Для таких приложений требуется совершенно иной способ измерения параметров.

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

4.2. Инициализация отправителя

Для инициализации отправителя устанавливается скорость передачи X = 1 пакет/сек и таймер обратной связи — 2 секунды. Начальные значения R (RTT) и t_RTO остаются неопределенными, пока не будут установлены в соответствии с приведенными ниже рекомендациями. Начальное значение tld11 при замедленном старте устанавливается равным -1.

4.3. Поведение отправителя при получении пакета обратной связи

Отправитель знает свою текущую скорость передачи X и поддерживает оценку текущего значения времени кругового обхода R, а также оценивает значение тайм-аута повторной передачи t_RTO.

При получении отправителем пакета обратной связи в момент t_now выполняются следующие действия:

  1. Рассчитывается новое значение времени кругового обхода:

R_sample = (t_now - t_recvdata) - t_delay
  1. Обновляется оценка времени кругового обхода:
Если ранее не было получено пакета обратной связи
   R = R_sample;
иначе
   R = q*R + (1-q)*R_sample;

Алгоритм TFRC не чувствителен к точному значению константы q, но рекомендуется задавать значение 0.9.

  1. Обновляется значение тайм-аута:

t_RTO = 4*R
  1. Обновляется значение скорости передачи:
If (p > 0)
  ;X_calc рассчитывается с использованием уравнения для пропускной способности TCP.
   X = max(min(X_calc, 2*X_recv), s/t_mbi);
Else
   If (t_now - tld >= R)
      X = max(min(2*X, 2*X_recv), s/R);
      tld = t_now;

Отметим, что при p == 0 отправитель находится в фазе замедленного старта, в которой он приблизительно удваивает скорость передачи в течение каждого периода кругового обхода, если не наблюдается фактов потери. Значение s/R дает минимальную скорость передачи в процессе замедленного старта — 1 пакет за время RTT. Параметр t_mbi имеет значение 64 секунды и показывает максимальный интервал между передачей пакетов12 при сохраняющемся отсутствии пакетов обратной связи. Таким образом, при p > 0 отправитель передает по крайней мере каждые 64 секунды.

  1. Сбрасывается таймер обратной связи по истечении max(4*R, 2*s/X) секунд.

4.4. Завершение отсчета таймера обратной связи

Если отсчет таймера обратной связи завершился, отправителю следует выполнить следующие операции:

  1. Снизить скорость передачи вдвое. Если отправитель принимал от получателя пакеты обратной связи снижение осуществляется путем изменения кэшированной отправителем копии X_recv (скорость приема). Поскольку скорость передачи ограничена значением, не превышающим 2 * X_recv, изменение X_recv будет ограничивать текущую скорость передачи, но позволит отправителю использовать замедленный старт, удваивая скорость передачи через каждый интервал RTT, если пакеты обратной связи будут говорить об отсутствии потерь.

If (X_calc > 2*X_recv)
   X_recv = max(X_recv/2, s/(2*t_mbi));
Else
   X_recv = X_calc/4;

Значение s/(2*t_mbi) не позволяет снижение скорости передачи до значений менее 1 пакета за 64 секунды в случаях постоянного отсутствия пакетов обратной связи.

  1. После этого должно быть пересчитано значение X в соответствии с п 4 в предыдущем параграфе.

Если отсчет таймера обратной связи завершается, когда у отправителя еще нет образца RTT и он не получал еще пакетов обратной связи, этап 1) можно пропустить и напрямую снизить скорость передачи вдвое:

X = max(X/2, s/t_mbi)
  1. Перезапустить таймер обратной связи по истечении max(4*R, 2*s/X) секунд.

Отметим, что прекращение передачи данных отправителем вызывает прекращение отправки получателем пакетов обратной связи. Это будет вызывать запуск таймера обратной связи и снижение X_recv по истечении отсчета таймера. Если отправитель впоследствии снова начнет передачу данных, значение X_recv будет ограничивать скорость передачи и будет выполняться обычная процедура замедленного старта, пока скорость передачи не достигнет значения X_calc.

Если отправитель бездействует с момента запуска таймера обратной связи и значение X_recv меньше 4 пакетов за время кругового обхода, значение X_recv не следует уменьшать вдвое по завершении отсчета таймера. Это позволяет никогда не снижать скорость передачи менее 2 пакетов за время кругового обхода в результате бездействия.

4.5. Предотвращение осцилляций

Для предотвращения осцилляций в средах с низким уровнем статистического мультиплексирования полезно изменить скорость передачи данных отправителем, чтобы предотвратить насыщение за счет снижения скорости по мере роста задержки в очередях (и, следовательно, RTT). Для реализации этого отправитель поддерживает оценку среднего значения RTT за достаточно большой период и меняет свою скорость передачи в зависимости от того, как недавнее значение RTT отличается от среднего. Среднее значение R_sqmean определяется следующим образом:

Если ранее не было получено пакетов обратной связи
   R_sqmean = sqrt(R_sample);
иначе
   R_sqmean = q2*R_sqmean + (1-q2)*sqrt(R_sample);

Таким образом, R_sqmean изменяется пропорционально квадратному корню измеренного значения RTT. Константу q2 следует устанавливать по аналогии с q; по умолчанию рекомендуется использовать значение 0,9.

Отправитель получает базовое значение скорости передачи X из уравнения пропускной способности. После этого отправитель рассчитывает новое значение скорости передачи X_inst следующим образом:

X_inst = X * R_sqmean / sqrt(R_sample);

Когда sqrt(R_sample) больше R_sqmean, очередь обычно увеличивается и для стабильной работы требуется снижение скорости передачи.

Примечание. Такое изменение требуется не во всех случаях, особенно при высоком уровне статистического мультиплексирования в сети. Однако рекомендуется вносить это изменение поскольку оно улучшает поведение TFRC в средах с низким уровнем статистического мультиплексирования. Если это изменение не выполняется, рекомендуется использовать очень малые значения q (0 или близкие к нулю значения).

4.6. Планирование передачи пакетов

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

t_ipi = s/X_inst;

Когда отправитель начинает передачу в момент t_0, он рассчитывает значение t_ipi и номинальное время передачи пакета 1 будет t_1 = t_0 + t_ipi. Когда приложение простаивает, оно проверяет текущее значение t_now и запрашивает повторный расчет интервала по истечении t_ipi — (t_now — t_0) секунд. Когда приложение снова планирует передачу, оно опять проверяет текущее значение t_now. Если t_now > (t_1 — delta), пакет 1 передается.

В этот момент рассчитывается новое значение t_ipi, которое применяется для расчета времени передачи t_2 для пакета 2 — t2 = t_1 + t_ipi. Этот процесс повторяется для каждого пакета с отсчетом времени от номинального момента передачи предыдущего пакета.

В некоторых случаях, когда номинальное время передачи следующего пакета t_i рассчитано, может оказаться, что t_now > t_i — delta. В таких случаях пакет следует передавать без промедления. Таким образом, если операционная система обеспечивает лишь грубую гранулярность таймеров и скорость передачи высока, TFRC может передавать короткие группы пакетов, разделенные интервалами с гранулярностью таймера операционной системы.

Параметр delta служит для обеспечения достаточной гибкости при выборе времени передачи пакетов. Если операционная система имеет гранулярность таймера планирования t_gran секунд, значение delta обычно следует устанавливать равным:

delta = min(t_ipi/2, t_gran/2);

t_gran равно 10 мсек для многих Unix-систем. Если значение t_неизвестно, обычно можно без опасений принимать его равным 10 мсек.

5. Расчет частоты потерь (p)

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

5.1. Детектирование потерь и маркированные пакеты

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

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

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

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

5.2. Трансляция истории потерь в факт потери

TFRC требует устойчивости к нескольким последовательным потерям пакетов, когда эти потери относятся к одному событию (факту потери). Это похоже на поведение протокола TCP, который (обычно) лишь однократно за период RTT уменьшает наполовину окно насыщения. Таким образом, получатель должен отобразить историю потери пакетов в запись о факте потери, трактуя как факт потери утрату одного или более пакетов в течение периода RTT. Для выполнения такого отображения получателю нужно знать значение RTT, которое обычно периодически сообщается отправителем в форме управляющей информации, присоединяемой в конце пакета данных. Для TFRC способ передачи результатов измерения RTT получателю не имеет значения, однако рекомендуется использовать для этого рассчитанное отправителем значение RTT (R в параграфе 4.3).

Для того, чтобы определить, относится потеря или маркированный пакет к новому факту потери или является продолжением существующего, нужно сравнить порядковые номера и временные метки пакетов, принятых получателем. Для маркированного пакета S_new время приема T_new можно определить напрямую. Для потерянного пакета нужно использовать интерполяцию, чтобы определить номинальное «время прибытия». Предположим, что:

S_loss — порядковый номер потерянного пакета;

S_before — порядковый номер последнего пакета, прибывшего с номером меньше S_loss;

S_after — порядковый номер первого пакета, прибывшего с номером больше S_loss;

T_before — время приема S_before;

T_after — время приема S_after.

Отметим, что значение T_before может превышать значение T_after в результате нарушения порядка доставки.

Для потерянного пакета S_loss можно интерполировать его номинальное «время доставки» на основе значений S_before и S_after:

T_loss = T_before + ((T_after — T_before) * (S_loss - S_before)/(S_after - S_before));

Отметим, что в тех случаях, когда между порядковыми номерами S_before и S_after наблюдался переход через 0, порядковые номера следует изменить с учетом этого факта до выполнения расчетов. Если больший порядковый номер имеет значение S_max b S_before > S_after, замены каждого номера S на S’ = (S + (S_max + 1)/2) mod (S_max + 1) будет достаточно.

Если было определено, что потерянный пакет S_old служит началом нового факта потери и мы определили, что пакет S_new был потерян, мы интерполируем номинальное время прибытия пакетов S_old и S_new, как T_old и T_new, соответственно.

Если T_old + R >= T_new, потеря пакета S_new относится к текущему факту потери, в противном случае S_new является первым пакетом, относящимся к новому факту.

5.3. Интервал между потерями

Если интервал между потерями A определен, как начинающийся с пакета S_A, а интервал B — с пакета S_B, число пакетов в интервале между потерями A составляет (S_B — S_A).

5.4. Средний интервал между потерями

Для расчета частоты потерь p сначала вычисли продолжительность среднего интервала между потерями. Это осуществляется с помощью взвешенного фильтра, определяющего средний интервал на основе значений n последних интервалов.

Веса w_0 — w_(n-1) определяются следующим образом:

If (i < n/2)
   w_i = 1;
Else
   w_i = 1 - (i - (n/2 - 1))/(n/2 + 1);

Таким образом, для n=8, значения весов w_0 — w_7 составят:

1.0, 1.0, 1.0, 1.0, 0.8, 0.6, 0.4, 0.2

Значение числа интервалов n используется при расчете частоты фактов потерь, определяющей скорость реакции TFRC на изменение уровня насыщения. В соответствии с настоящей спецификацией TFRC не следует использовать со значениями n, существенно превышающими 8, для трафика, который может перемешиваться в сети Internet с трафиком TCP. В крайнем случае при использовании значений n > 8 потребуется некоторое изменение механизмов TFRC для обеспечения более резкого отклика на значительную потерю пакетов в течение 2 и более периодов кругового обхода.

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

Таким образом, если последние интервалы между потерями обозначить от I_0 до I_n и I_0 будет относиться к последнему факту потерь, средний интервал рассчитывается следующим образом:

I_tot0 = 0;
I_tot1 = 0;
W_tot = 0;
for (i = 0 to n-1) {
   I_tot0 = I_tot0 + (I_i * w_i);
   W_tot = W_tot + w_i;
}
for (i = 1 to n) {
   I_tot1 = I_tot1 + (I_i * w_(i-1));
}
I_tot = max(I_tot0, I_tot1);
I_mean = I_tot/W_tot;

Вероятность потерь p будет равна:

p = 1/I_mean;

5.5. Дисконтирование истории

Как было показано в параграфе 5.4, последний интервал между потерями дает 1/(0.75*n) часть общего веса при расчете среднего интервала, независимо от продолжительности этого интервала. В этом параграфе описан дополнительный механизм «дисконтирования истории»13, рассмотренный в работах [3] и [9], который позволяет приемному узлу TFRC подбирать весовые параметры, придавая больший вес последнему интервалу между потерями, когда этот интервал более, чем вдвое превышает рассчитанное значение среднего интервала.

Для дисконтирования истории свяжем коэффициент DF_i (число с плавающей запятой) с каждым интервалом L_i (для i > 0). Общая история дисконтирования для каждого интервала между потерями будет храниться в массиве коэффициентов. В начальный момент значения элементов массива DF_i устанавливаются в 1:

for (i = 1 to n) {
   DF_i = 1;
}

Дисконтирование истории также использует общий коэффициент DF (число с плавающей запятой), который также имеет начальное значение 1. Сначала посмотрим, как коэффициенты используются при расчете среднего интервала между потерями, а затем опишем изменение коэффициентов с течением времени.

Как описано в параграфе 5.4, средний интервал между потерями вычисляется с использованием n значений предыдущих интервалов I_1, …, I_n и значения I_0, которое представляет собой число пакетов, полученных с момента последнего факта потерь. Расчет среднего интервала с использованием коэффициентов дисконтирования незначительно отличается от процедуры, описанной в параграфе 5.4:

I_tot0 = I_0 * w_0
I_tot1 = 0;
W_tot0 = w_0
W_tot1 = 0;
for (i = 1 to n-1) {
   I_tot0 = I_tot0 + (I_i * w_i * DF_i * DF);
   W_tot0 = W_tot0 + w_i * DF_i * DF;
}
for (i = 1 to n) {
   I_tot1 = I_tot1 + (I_i * w_(i-1) * DF_i);
   W_tot1 = W_tot1 + w_(i-1) * DF_i;
}
p = min(W_tot0/I_tot0, W_tot1/I_tot1);

Общий коэффициент дисконтирования DF обновляется при получении каждого пакета. Сначала получатель рассчитывает средневзвешенное значение I_mean для интервалов потерь I_1, …, I_n:

I_tot = 0;
W_tot = 0;
for (i = 1 to n) {
   W_tot = W_tot + w_(i-1) * DF_i;
   I_tot = I_tot + (I_i * w_(i-1) * DF_i);
}
I_mean = I_tot / W_tot;

Значение I_mean сравнивается с числом пакетов, полученных с момента последнего факта потери — I_0. Если I_0 превышает I_mean более, чем вдвое, это говорит о том, что новый интервал потерь существенно превышает старые значения и значение общего коэффициента DF изменяется для снижения относительного веся более старых интервалов:

if (I_0 > 2 * I_mean) {
   DF = 2 * I_mean/I_0;
   if (DF < THRESHOLD)
      DF = THRESHOLD;
} else
   DF = 1;

Отличное от 0 значение порога THRESHOLD обеспечивает гарантию того, что информация о более ранних интервалах в периоды высокого насыщения не будет полностью обесценена. Рекомендуется устанавливать THRESHOLD = 0.5. Отметим, что прибытие каждого нового пакета ведет к дополнительному росту I_0 и коэффициент DF будет обновляться.

При новом факте потерь текущий интервал переходит из I_0 в I_1, интервал I_i — в I_(i+1), а интервал I_n отбрасывается. Предыдущий коэффициент DF включается в массив коэффициентов дисконтирования. Поскольку DF_i, показывает коэффициент, связанный с интервалом I_i, значения DF_i в массиве также смещаются при новом факте потерь. Процедура сдвига имеет вид:

for (i = 1 to n) {
   DF_i = DF * DF_i;
}
for (i = n-1 to 0 step -1) {
   DF_(i+1) = DF_i;
}
I_0 = 1;
DF_0 = 1;
DF = 1;

На этом описание дополнительного механизма дисконтирования истории заканчивается. Подчеркнем что этот механизм является необязательным и позволяет TFRC более быстро реагировать на стремительное прекращение перегрузок, демонстрируемое ростом интервала между потерями.

6. Протокол получателя данных

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

Если отправитель передает пакеты с высокой скоростью (много пакетов за период RTT) передача пакетов обратной связи несколько раз в течение RTT может обеспечивать преимущества, поскольку позволит быстрее реагировать на изменение результатов измерения RTT и повысит устойчивость к потере пакетов обратной связи. Однако эти преимущества с ростом числа пакетов обратной связи за период RTT растут достаточно медленно.

6.1. Поведение получателя при приеме пакета данных

При получении пакета данных получатель выполняет следующие действия:

  1. добавляет пакет в список принятых (историю);
  2. сохраняет прежнее значение p, как p_prev и рассчитывает новое значение, как описано в разделе 5;
  3. если p > p_prev, таймер обратной связи считается истекшим и выполняются действия, описанные в параграфе 6.2;при p <= p_prev никаких действий не предпринимается.Однако для оптимизации может потребоваться проверка заполнения пропуска в номерах принятых пакетов и при обнаружении такового объединение двух интервалов между потерями в один. В последнем случае получатель может также незамедлительно отправить сообщение обратной связи. В обычных условиях влияние такой оптимизации незначительно.

6.2. Завершение отсчета таймера обратной связи

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

Предположим, что на приемной стороне максимальный номер полученного пакета имеет значение S_m, а включенный в этот пакет результат измерения RTT имеет значение R_m. Если с момента отправки предыдущего сообщения обратной связи были получены пакеты данных, получатель выполняет следующие операции:

  1. расчет среднего интервала между потерями с использованием описанной выше процедуры;
  2. расчет измеренного значения скорости приема X_recv на основе пакетов, принятых в течение предшествующих R_m секунд;
  3. подготовка и передача пакета обратной связи, содержащего информацию, описанную в параграфе 3.2.2;
  4. сброс и повторный запуск таймера обратной связи на R_m секунд.

Если с момента отправки последнего сообщения обратной связи не было принято пакетов данных, сообщение обратной связи не передается, таймер обратной связи сбрасывается и повторно запускается на R_m секунд.

6.3. Инициализация приемника

Приемник инициализируется первым доставленным ему пакетом. Предположим, что этот пакет имеет порядковый номер i.

При получении первого пакета:

  • устанавливается p=0;
  • устанавливается X_recv = 0;
  • подготавливается и передается пакет обратной связи;
  • устанавливается таймер обратной связи на R_i секунд.

6.3.1. Инициализация истории потерь после первого факта потери

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

TFRC делает это путем нахождения некого значения p для которого уравнение пропускной способности из параграфа 3.1 дает скорость передачи, отклоняющуюся от X_recv в пределах 5%, для текущего размера пакетов s и периода кругового обхода R. Для первого интервала между потерями устанавливается значение 1/p (5% погрешность допускается потому, что уравнение пропускной способности сложно обратить и без погрешности пришлось бы рассчитывать p численными методами).

7. Серверные варианты

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

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

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

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

8. Вопросы реализации

В этом документе приведена спецификация механизма контроля насыщения TFRC для прикладных и транспортных протоколов. В данном разделе кратко рассматриваются некоторые вопросы реализации механизма.

Для t_RTO = 4*R и b = 1 уравнение пропускной способности из параграфа 3.1 можно записать в виде:

       s
X = --------
    R * f(p)

где

f(p) = sqrt(2*p/3) + (12*sqrt(3*p/8) * p * (1+32*p^2))

Вместо вычисления значений функции f(p) можно воспользоваться таблицей заранее подсчитанных значений.

Многие операции умножения (например, q и 1-q для расчета среднего времени кругового обхода, умножение на 4 для тайм-аута) могут быть реализованы с помощью операций сдвига регистра.

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

Расчет среднего интервала между потерями в параграфе 5.4 включает умножение на весовые коэффициенты w_0 — w_(n-1), которые для n=8 имеют значения:

1.0, 1.0, 1.0, 1.0, 0.8, 0.6, 0.4, 0.2.

С незначительной потерей точности можно использовать в качестве весовых коэффициентов значения степеней числа два или суммы таких значений, например:

1.0, 1.0, 1.0, 1.0, 0.75, 0.5, 0.25, 0.25.

Дополнительный механизм дисконтирования истории, описанный в параграфе 5.5, используется при расчете среднего интервала между потерями. Этот механизм предназначен для использования лишь в тех случаях, когда между фактами потери пакетов возникает необычно большой интервал. Для более эффективной работы механизма можно ограничить выбор значений коэффициентов DF_i степенями числа 2.

9. Вопросы безопасности

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

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

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

Предполагается, что протоколы, использующие ECN14 с TFRC будут также поддерживать обратную связь от получателя с использованием ECN nonce [WES02]. ECN nonce представляет собой модификацию ECN с защитой отправителя от нечаянного или злонамеренного сокрытия маркированных пакетов. Однако детали использования таких механизмов зависят от транспортного протокола и не рассматриваются в этом документе.

10. Согласование с IANA

Этот документ не требует согласования с IANA.

11. Благодарности

Мы благодарим за отклики и конструктивные предложения по развитию механизма контроля насыщения на основе уравнения пропускной способности широкий круг людей, включая членов исследовательской группы Reliable Multicast, рабочей группы Reliable Multicast Transport и исследовательской группы End-to-End. Выражаем благодарность также Ken Lofgren, Mike Luby, Eduardo Urzaiz, Vladica Stanisic, Randall Stewart, Shushan Wen и Wendy Lee (lhh@zsu.edu.cn) за отклики к ранней версии этого документа и благодарим Mark Allman за множество откликов по поводу использования документа для создания работоспособных реализаций механизма.

12. Нормативные документы

[1] Balakrishnan, H., Rahul, H., and S. Seshan, «An Integrated Congestion Management Architecture for Internet Hosts,»15 Proc. ACM SIGCOMM, Cambridge, MA, September 1999.

[2] Floyd, S., Handley, M., Padhye, J. and J. Widmer, «Equation-Based Congestion Control for Unicast Applications»16, August 2000, Proc. ACM SIGCOMM 2000.

[3] Floyd, S., Handley, M., Padhye, J. and J. Widmer, «Equation-Based Congestion Control for Unicast Applications: the Extended Version»17, ICSI tech report TR-00-03, March 2000.

[4] Padhye, J., Firoiu, V., Towsley, D. and J. Kurose, «Modeling TCP Throughput: A Simple Model and its Empirical Validation»18, Proc. ACM SIGCOMM 1998.

[5] Paxson V. and M. Allman, «Computing TCP’s Retransmission Timer», RFC 2988, November 2000.

[6] Ramakrishnan, K., Floyd, S. and D. Black, «The Addition of Explicit Congestion Notification (ECN) to IP», RFC 3168, September 2001.

[7] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, «RTP: A Transport Protocol for Real-Time Applications», RFC 1889, January 1996.

[8] Wetherall, D., Ely, D., N. Spring, S. Savage, and T. Anderson, «Robust Congestion Signaling», IEEE International Conference on Network Protocols, November 2001.

[9] Widmer, J., «Equation-Based Congestion Control», Diploma Thesis, University of Mannheim, February 2000. URL «http://www.icir.org/tfrc/«.

13. Адреса авторов

Mark Handley

ICIR/ICSI

1947 Center St, Suite 600

Berkeley, CA 94708

EMail: mjh@icir.org

Sally Floyd

ICIR/ICSI

1947 Center St, Suite 600

Berkeley, CA 94708

EMail: floyd@icir.org

Jitendra Padhye

Microsoft Research

EMail: padhye@microsoft.com

Joerg Widmer

Lehrstuhl Praktische Informatik IV

Universitat Mannheim

L 15, 16 — Room 415

D-68131 Mannheim

Germany

EMail: widmer@informatik.uni-mannheim.de


Перевод на русский язык

Николай Малых

nmalykh@gmail.com

14. Полное заявление авторских прав

Copyright (C) The Internet Society (2003). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


1В настоящее время действие этого документа отменено RFC 5348. Прим. перев.

2TCP-Friendly Rate Control.

3В оригинале используется термин best efforts. Прим. перев.

4Additive-Increase, Multiplicative-Decrease — аддитивный рост, мультипликативное снижение.

5TFRC-PacketSize

6Спецификация TFRC-PS опубликована в RFC 4828. Прим. перев.

7Explicit Congestion Notification.

8Round-trip time.

9Selective acknowledgment — селективное подтверждение.

10В оригинале используется термин nofeedback timer. Прим. перев.

11Time Last Doubled — время последнего удвоения.

12Inter-packet backoff interval.

13History discounting mechanism.

14Explicit Congestion Notification — явное уведомление о насыщении. Прим. перев.

15Документ доступен по ссылке http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-771.pdf. Прим. перев.

16Документ доступен по ссылке http://www.icir.org/tfrc/tcp-friendly.pdf. Прим. перев.

17Документ доступен по ссылке http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.8816&rep=rep1&type=pdf. Прим. перев.

18Документ доступен по ссылке http://www.sigcomm.org/sigcomm98/tp/paper25.pdf. Прим. перев.

Рубрика: RFC | Оставить комментарий

RFC 3442 The Classless Static Route Option for Dynamic Host Configuration Protocol (DHCP) version 4

Network Working Group                                           T. Lemon
Request for Comments: 3442                                 Nominum, Inc.
Updates: 2132                                                S. Cheshire
Category: Standards Track                           Apple Computer, Inc.
                                                                 B. Volz
                                                                Ericsson
                                                           December 2002

The Classless Static Route Option for Dynamic Host Configuration Protocol (DHCP) version 4

Опция бесклассового статического маршрута для протокола DHCP версии 4

PDF

Статус документа

Этот документ содержит проект стандартного протокола Internet для сообщества Internet и служит запросом к обсуждению в целях развития и совершенствования. Текущее состояние стандартизации и статус протокола можно узнать из документа «Internet Official Protocol Standards» (STD 1). Документ можно распространять без ограничений.

Авторские права

Copyright (C) The Internet Society (2002). All Rights Reserved.

Аннотация

Этот документ определяет новую опцию протокола DHCP1, которая передается от сервера DHCP клиенту DHCP для настройки у того списка статических маршрутов. Сети получателей в этих маршрутах являются бесклассовыми и каждый маршрут включает маску подсети.

Введение

Эта опция отменяет опцию Static Route (33), определенную в RFC 2132 [4].

Протокол IP [1] использует маршрутизаторы для передачи пакетов от хостов одной подсети IP хостам, подключенным к другой подсети IP. Когда хост IP (отправитель) хочет передать пакет другому хосту IP (получатель), он просматривает таблицу маршрутов для определения IP-адреса маршрутизатора, который следует использовать для пересылки пакета в направлении целевого хоста.

Таблица маршрутизации на хосте IP может поддерживаться множеством способов — с использованием протоколов маршрутизации, таких как RIP [8], обнаружения маршрутизаторов ICMP [6,9] или использования опции DHCP, определенной в RFC 2132 [4].

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

Протокол DHCP в соответствии с RFC 2131 [3] и опции, определенные в RFC 2132 [4], обеспечивают лишь механизм организации используемого по умолчанию маршрута или установки таблицы с маршрутами по классам адресов. Классовыми называют маршруты, в которых маска подсети неявно задается номером подсети (см. параграф 3.2 в STD 5, RFC 791 [1]).

Маршрутизация по классам вышла из употребления, поэтому опция DHCP Static Route стала бесполезной. В настоящее время бесклассовая маршрутизация [7, 10] стала общепринятой формой маршрутизации в Internet. В бесклассовой маршрутизации адреса IP состоят из номера сети (комбинация номера сети и номера подсети, описанная в RFC 950 [7]) и номера хоста.

В IP с классами номер сети и номер хоста выводились из адреса IP с использованием битовой маски, значение которой определялось несколькими первыми битами адреса IP. В IP без классов номер сети и номер хоста выводятся из адреса IP с использованием отдельного значения — маски подсети. Для определения сети, к которой относится данный маршрут, хост IP должен знать номер сети и маску подсети.

Опция Static Route (33) не указывала маску подсети для маршрутов, предполагая, что эта маска неявно определяется номером сети в каждой записи. Опция Classless Static Routes указывает маску подсети для каждой записи, поскольку маска может отличаться от определенной с помощью алгоритма из STD 5, RFC 791 [1] и STD 5, RFC 950 [7].

Определения

Ключевые слова необходимо (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не нужно (SHALL NOT), следует (SHOULD), не следует (SHOULD NOT), рекомендуется (RECOMMENDED), не рекомендуется (NOT RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе интерпретируются в соответствии с BCP 14, RFC 2119 [2].

Ниже приведены определения используемых в документе терминов.

DHCP client – клиент DHCP

Клиентом DHCP (клиентом) является хост Internet, использующий протокол DHCP для получения параметров конфигурации, таких как сетевой адрес.

DHCP server – сервер DHCP

Сервером DHCP (сервером) является хост Internet, который возвращает параметры конфигурации клиентам DHCP.

Link — канал

Любой набор точек подключения к сети, который будет принимать все широковещательные кадры канального уровня, переданные любой из точек подключения. Этот термин применяется в DHCP, поскольку в некоторых случаях на канале может быть организована не одна подсеть IP. DHCP использует широковещательный адрес local-network (все единицы), который не связан с подсетью и поэтому пакеты будут видны всем подключенным к каналу узлам, независимо от подсети или подсетей IP, которые на узле настроены.

Канал иногда называют доменом широковещания или физическим сегментом сети.

Формат опции Classless Routes

Эта опция имеет код 121 и минимальный размер 5 байтов. Опция может содержать один или множество статических маршрутов, каждый из которых включает дескриптор адресатов и IP-адрес маршрутизатора, который следует использовать для этих адресатов.

    Code Len Destination 1    Router 1
   +-----+---+----+-----+----+----+----+----+----+
   | 121 | n | d1 | ... | dN | r1 | r2 | r3 | r4 |
   +-----+---+----+-----+----+----+----+----+----+

    Destination 2       Router 2
   +----+-----+----+----+----+----+----+
   | d1 | ... | dN | r1 | r2 | r3 | r4 |
   +----+-----+----+----+----+----+----+

В приведенном выше примере заданы 2 статических маршрута.

Дескриптор получателя описывает номер подсети IP и маску для конкретного получателя с использованием компактного формата. Запись состоит из октета, указывающего размер маски, за которым следуют все значимые октеты номера подсети.

Размер маски указывает число битов. Например, подсеть с номером 10.0.127.0 и маской 255.255.255.0 будет иметь размер маски 24.

Значимая часть номера подсети включает все октеты номера подсети, для который соответствующий октет маски имеет отличное от нуля значение. Число значимых октетов равно размеру маски, поделенному на 8 с округлением в большую сторону, как показано в таблице.

 

Размер маски

Число значимых октетов

0

0

1-8

1

9-16

2

17-24

3

24-32

4

 

В следующей таблице приведены некоторые примеры представления разных номеров сети и масок.

 

Номер подсети

Маска подсети

Дескриптор адресата

0

0

0

10.0.0.0

255.0.0.0

8.10

10.0.0.0

255.255.255.0

24.10.0.0

10.17.0.0

255.255.0.0

16.10.17

10.27.129.0

255.255.255.0

24.10.27.129

10.229.0.128

255.255.255.128

25.10.229.0.128

10.198.122.47

255.255.255.255

32.10.198.122.47

 

Маршруты в локальные подсети

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

Например, рассмотрим случай наличия на канале трех подсетей IP — 10.0.0/24, 192.168.0/24, 10.0.21/24. Если клиенту назначен адрес IP 10.0.21.17, сервер может включить маршрут с адресатами 10.0.0/24 и маршрутизатором 0.0.0.0, а также маршрут с адресатами 192.168.0/24 и маршрутизатором 0.0.0.0.

Клиент DHCP, чей стек TCP/IP не обеспечивает такой возможности, должен игнорировать опцию Classless Static Routes, где указан IP-адрес маршрутизатора 0.0.0.0. Следует отметить, что описанное здесь поведение применимо лишь к опции Classless Static Routes, но не к опциям Static Routes и Router.

Поведение клиента DHCP

Не поддерживающие эту опцию клиенты DHCP должны игнорировать ее при получении от сервера DHCP. Поддерживающие опцию клиенты DHCP должны установить заданные в опции маршруты, за исключением указанных в параграфе «Маршруты в локальные подсети». Поддерживающим опцию клиентам DHCP недопустимо устанавливать маршруты, указанные в опции Static Routes (33), если присутствуют обе опции Static Routes и Classless Static Routes.

Клиенты DHCP, поддерживающие эту опцию и передающие опцию DHCP Parameter Request List, должны запрашивать эту опцию и опцию Router [4] в DHCP Parameter Request List.

Клиенты DHCP, поддерживающие эту опцию и передающие запрос списка параметров, могут также запросить опцию Static Routes для совместимости со старыми серверами, не поддерживающими Classless Static Routes. Код опции Classless Static Routes должен включаться в список запроса параметров до кодов опций Router и Static Routes, если они указываются.

Если сервер DHCP возвращает обе опции Classless Static Routes и Router, клиент DHCP должен игнорировать опцию Router.

Точно так же при возврате сервером обеих опций Classless Static Routes и Static Routes клиент DHCP должен игнорировать опцию Static Routes.

После вывода номера и маски подсети из дескриптора адресата клиент DHCP должен сбросить в 0 все биты номера подсети, для которых соответствующий бит маски имеет значение 0. Иными словами, номер подсети в таблице маршрутизации определяется результатом логической операции AND (И) для номера подсети и маски подсети из опции Classless Static Routes. Например, если сервер передал маршрут с получателем 129.210.177.132 (шестнадцатеричное значение 81D4B184) и маской подсети 255.255.255.128 (шестнадцатеричное значение FFFFFF80), клиент будет устанавливать маршрут с получателем 129.210.177.128 (шестнадцатеричное значение 81D4B180).

Предотвращение ограничения размеров

Поскольку полная таблица маршрутов может быть достаточно большой, стандартного максимального размера сообщений DHCP в 576 октетов может оказаться недостаточно для некоторых опций Classless Static Route. По этой причине клиентам, реализующим опцию Classless Static Route, следует передать опцию Maximum DHCP Message Size [4], если стек TCP/IP у клиента DHCP способен принимать более крупные дейтаграммы IP. В этом случае клиенту следует указывать в качестве значения этой опции как минимум значение MTU на интерфейсе, который настраивается. Клиент может указать для этой опции любое значение вплоть до максимального размера пакета UDP, который он готов принять (отметим, что значение опции Maximum DHCP Message Size ограничивает общий размер пакета с учетом заголовков IP и UDP).

Клиенты DHCP, запрашивающие эту опцию, и передающие ее серверы DHCP должны поддерживать конкатенацию опций DHCP [5]. В терминологии RFC 3396 [5] опция Classless Static Route Option является требующей конкатенации.

Администрирование серверов DHCP

Многие клиенты могут не поддерживать опцию Classless Static Routes. Поэтому администраторы серверов DHCP настраивают свои серверы на отправку опций Router и Classless Static Routes, при этом следует указывать используемые по умолчанию маршрутизаторы в обеих опциях Router и Classless Static Routes.

Когда клиент DHCP запрашивает опцию Classless Static Routes, а также одну или обе опции Router и Static Routes, а сервер DHCP передает этому клиенту опцию Classless Static Routes, серверу не следует включать опции Router и Static Routes.

Вопросы безопасности

Возможные атаки на протокол DHCP рассмотрены в разделе 7 спецификации DHCP [3] и в документе по аутентификации сообщений DHCP [11].

Опцию Classless Static Routes можно использовать для перенаправления сетевого трафика путем указания некорректных IP-адресов для маршрутизаторов. Это может быть DoS2-атака, где указывается недействительный IP-адрес маршрутизатора или MITM3-атака, где указывается специальный адрес IP для сбора и анализа пакетов. Это не создает новой проблемы, поскольку опции Router и Static Routes, определенные в RFC 2132 [4] имели такие же уязвимости.

Взаимодействие с IANA

Для этой опции DHCP выделен код 121 в списке опций DHCP, поддерживаемом IANA.

Нормативные документы

[1] Postel, J., «Internet Protocol», STD 5, RFC 791, September 1981.

[2] Bradner, S., «Key words for use in RFCs to Indicate Requirement Levels», BCP 14, RFC 2119, March 1997.

[3] Droms, R., «Dynamic Host Configuration Protocol», RFC 2131, March 1997.

[4] Alexander, S. and R. Droms, «DHCP Options and BOOTP Vendor Extensions», RFC 2132, March 1997.

[5] Lemon, T. and S. Cheshire, «Encoding Long Options in the Dynamic Host Configuration Protocol (DHCPv4)», RFC 3396, November 2002.

Дополнительная литература

[6] Postel, J., «Internet Control Message Protocol», STD 5, RFC 792, September 1981.

[7] Mogul, J. and J. Postel, «Internet Standard Subnetting Procedure», STD 5, RFC 950, August 1985.

[8] Hedrick, C., «Routing Information Protocol», RFC 1058, June 1988.

[9] Deering, S., «ICMP Router Discovery Messages», RFC 1256, September 1991.

[10] Pummill, T. and B. Manning, «Variable Length Subnet Table For IPv4», RFC 1878, December 1995.

[11] Droms, R. and W. Arbaugh, «Authentication for DHCP Messages», RFC 3118, June 2001.

Права интеллектуальной собственности

IETF не занимает какой-либо позиции в отношении действительности или объёма каких-либо прав интеллектуальной собственности или иных прав, которые могут быть заявлены как относящиеся к реализации или применению технологии, описанной в этом документе, или степени, в которой любая лицензия, по которой права могут или не могут быть доступны, не заявляется также применение каких-либо усилий для определения таких прав. Сведения о процедурах IETF в отношении прав в документах, связанных со стандартами, можно найти в BCP-11. Копии раскрытия IPR, предоставленные секретариату IETF, и любые гарантии доступности лицензий, а также результаты попыток получить общую лицензию или право на использование таких прав собственности разработчиками или пользователями этой спецификации, можно получить в IETF Secretariat.

IETF предлагает любой заинтересованной стороне обратить внимание на авторские права, патенты или использование патентов, а также иные права собственности, которые могут потребоваться для реализации этого стандарта. Эту информацию следует направлять исполнительному директоу IETF (Executive Director).

Адреса авторов

Ted Lemon

Nominum, Inc.

2385 Bay Road

Redwood City, CA 94063

EMail: Ted.Lemon@nominum.com

Stuart Cheshire

Apple Computer, Inc.

1 Infinite Loop

Cupertino

California 95014

USA

Phone: +1 408 974 3207

EMail: rfc@stuartcheshire.org

Bernie Volz

Ericsson

959 Concord Street

Framingham, MA, 01701

Phone: +1 508 875 3162

EMail: bernie.volz@ericsson.com


Перевод на русский язык

Николай Малых

nmalykh@gmail.com


Полное заявление авторских прав

Copyright (C) The Internet Society (2002). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


1Dynamic Host Configuration Protocol — протокол динамической настройки конфигурации хоста.

2Denial of Service — отказ в обслуживании.

3Man-in-the-middle — перехват и изменение пакетов с участием человека.

Рубрика: RFC | Комментарии к записи RFC 3442 The Classless Static Route Option for Dynamic Host Configuration Protocol (DHCP) version 4 отключены

RFC 3410 Introduction and Applicability Statements for Internet Standard Management Framework

Network Working Group                                        J. Case
Request for Comments: 3410                       SNMP Research, Inc.
Obsoletes: 2570                                             R. Mundy
Category: Informational              Network Associates Laboratories
                                                          D. Partain
                                                            Ericsson
                                                          B. Stewart
                                                             Retired
                                                       December 2002

Введение и заявление о применимости модели стандартного управления Internet
Introduction and Applicability Statements for Internet Standard Management Framework

PDF

Статус документа

Этот документ содержит информацию для сообщества Internet. Документ не задает каких-либо стандартов Internet. Распространение документа не ограничено.

Авторские права

Copyright (C) The Internet Society (2002). All Rights Reserved.

Аннотация

Целью этого документа является обзор третьей версии модели стандартного управления Internet, называемой моделью SNMP1 версии 3 (SNMPv3). Эта модель построена на основе исходного стандарта системы управления Internet (SNMPv1) и его второй версии (SNMPv2).

Модель использует модульную архитектуру, которая обеспечивает возможность ее развития.

В этом документе приведено объяснение высокой целесообразности использования SNMPv3 взамен SNMPv1 и SNMPv2. Документ также служит рекомендацией к отказу от применения RFC 1157, 1441, 1901, 1909 и 1910 с переводом документов в статус Historic. Данный документ отменяет действие RFC 2570.

Оглавление

Исключено в версии HTML.

1. Введение

Этот документ служит введением для третьей версии стандарта управления Internet, названной SNMP версии 3 (SNMPv3) и имеет несколько целей.

Во-первых, описаны соотношения спецификации SNMPv3 со спецификациями SNMPv1, SNMPv2 и основанной на группах модели администрирования для SNMPv2.

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

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

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

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

Документ является результатом работы группы SNMPv3 в рамках IETF2.

Ключевые слова необходимо (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не нужно (SHALL NOT), следует (SHOULD), не следует (SHOULD NOT), рекомендуется (RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе должны интерпретироваться в соответствии с BCP 14, RFC 2119 [1].

2. Модель стандартного управления Internet

Третья версия модели стандартного управления Internet (модель SNMPv3) разработана на основе исходной спецификации SNMPv1 и второй версии SNMPv2.

Все версии (SNMPv1, SNMPv2, SNMPv3) модели стандартного управления Internet SNMP используют единую базовую структуру и компоненты. Более того, во всех версиях спецификации применяется общая архитектура.

2.1. Базовая структура и компоненты

Стандартная система управления в масштабе предприятия включает 4 основных компоненты:

  • множество управляемых узлов, каждый из которых включает агент SNMP, обеспечивающий удаленный доступ с целью управления (agent);

  • по крайней мере один объект SNMP с управляющими приложениями (его называют менеджером — manager);

  • протокол управления для передачи управляющей информации между элементами SNMP;

  • управляющая информация.

Протокол управления служит для обмена информацией между элементами SNMP (агентами и менеджерами).

Базовая структура совпадает для всех версия модели стандартного управления Internet (SNMPv1, SNMPv2, SNMPv3).

2.2. Архитектура модели стандартного управления Internet

Спецификации модели стандартного управления Internet основаны на модульной архитектуре. Модель является не просто протоколом обмена данными и включает:

  • язык определения данных;

  • определения управляющий информации (MIB3);

  • определение протокола;

  • защиту и администрирование.

С течением времени модель управления развивалась от SNMPv1 черезSNMPv2 до SNMPv3 и определения каждой из компонент архитектуры расширялись и прояснялись, но сама архитектура не менялась.

Одним из основных мотивов создания модульной архитектуры послужило стремление обеспечить возможность развития модели управления, как описано в RFC 1052 [2]. Изначальная идея заключалась в обеспечении возможности перехода от управления сетями на основе SNMP к управлению на базе протоколов OSI. По этой причине архитектура модели была основана на независимом от протоколов языке определения данных и MIB вместе с независимым от MIB протоколом. Такое разделение позволяет заменить основанный на SNMP протокол без переопределения и замены управляющей информации. Опыт показал, что выбор архитектуры был верным, несмотря на ошибочные мотивы. Этот выбор обеспечил простоту перехода от SNMPv1 к SNMPv2, а потом от SNMPv2 к SNMPv3, однако отказ от протокола SNMP оказался непосильной задачей.

В модели SNMPv3 используются те же архитектурные принципы и добавлены расширения:

  • построение на основе 4 базовых компонент архитектуры со встраиванием в некоторых случаев ссылок на SNMPv2;

  • использование того же деления на уровни с определением новых возможностей в плане безопасности и администрирования.

Те, кто хорошо знаком с архитектурой управления SNMPv1 и SNMPv2, увидят множество знакомых концепций в архитектуре модели управления SNMPv3. Однако в ряде случаев может использоваться иная терминология.

3. Модель управления SNMPv1

Исходная модель стандартного управления Internet (SNMPv1) определена в нескольких документах:

  • STD 16, RFC 1155 [3] определяет структуру управляющей информации (SMI4), а также механизмы описания и именования объектов в целях управления;

  • STD 16, RFC 1212 [4] дает более четкие описания механизмов именования и описания информационных объектов управления, полностью согласованные с SMI;

  • STD 15, RFC 1157 [5] определяет простой протокол управления сетями (SNMP), служащий для доступа через сеть к объектам управления и уведомлений о событиях. В этом документе определен также начальный набор уведомлений о событиях.

Обычно приведенный список дополняют еще двумя документами:

  • STD 17, RFC 1213 [6] содержит определения для базового набора управляющей информации;

  • RFC 1215 [7] содержит четкое описание механизма для определения уведомлений о событиях, которые в SNMPv1 обозначают термином trap (ловушка, прерывание). Документ также задает базовые прерывания из RFC 1157 в принятой нотации.

Эти документы описывают четыре части первой версии модели управления SNMP.

3.1. Язык управления данными SNMPv1

Первые два и последний документ (RFC 1155, 1212, 1215) описывают язык определения данных SNMPv1 и зачастую эти документы совместно обозначают термином SMIv1. Отметим, что в результате изначального требования независимости SMI от протоколов, первые два документа SMI не содержат способов определения уведомлений о событиях (trap). Взамен этого протокольный документ SNMP определяет несколько стандартизованных уведомлений о событиях (generic trap) о обеспечивает средства для определения дополнительных уведомлений о событиях. Последний документ определяет прямой подход для определения уведомлений о событиях, используемый протоколом SNMPv1. На момент написания указанного документа использование прерываний (trap) в схеме стандартного управления Internet не считалось бесспорным. По этой причине RFC 1215 со статусом Informational, не обновлялся впоследствии, поскольку предполагалось, что вторая версия модели SNMP заменит первую.

3.2. Данные управления

Язык определения данных, описанный в первых двух документах, впервые был использован для определения MIB-I, как указано в RFC 1066 [8], а впоследствии использовался для определения MIB-II, как указано в RFC 1213 [6].

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

3.3. Работа протокола

Третий документ, STD 15 [5], описывает операции протокола SNMPv1, выполняемые протокольными модулями данных (PDU) над переменными, а также описывает формат сообщений SNMPv1. Для протокола SNMPv1 определены операции get (получить), get-next (получить следующую), get-response (получить отклик), set-request (запрос установки) и trap (прерывание). Определены также типовые уровни SNMP для транспорта без организации явных соединений.

3.4. Безопасность и администрирование SNMPv1

STD 15 [5] также описывает модели безопасности и администрирования. Многие из этих концепций были направлены в будущее, а некоторые, особенно в безопасности, были расширены в модели SNMPv3.

Модель SNMPv1 описывает инкапсуляцию SNMPv1 PDU в сообщения SNMP между элементами и обозначает различия между прикладными и протокольными элементами. В SNMPv3 их называют приложениями и устройствами (engine), соответственно.

В модели SNMPv1 введена концепция службы аутентификации, поддерживающей одну или несколько аутентификационных схем. В дополнение к аутентификации SNMPv3 определяет дополнительную опцию защиты, называемую конфиденциальностью (privacy)5. Модульная природа модели SNMPv3 позволяет как изменение, так и расширение возможностей защиты.

Кроме того, в модели SNMPv1 введен контроль доступа на основе концепции представления SNMP MIB. В SNMPv3 дана спецификация фундаментально схожей концепции, названной контролем доступа на основе представления. С ее помощью SNMPv3 обеспечивает контролируемый доступ к информации на управляемых устройствах.

Хотя модель SNMPv1 предполагает определение множества схем аутентификации, она не определяет никаких схем за исключением тривиальной аутентификации на основе строк community. Это является фундаментальным недостатком модели SNMPv1, но в то время определение защиты коммерческого класса могло представляться спорным с точки зрения устройства и сложным в реализации, поскольку меры защиты применялись очень разные. По этой причине и в результате отсутствия потребности в строгой аутентификации в архитектуре SNMPv1 службы аутентификации были вынесены в «отдельный блок» для последующего определения и модель SNMPv3 определяет архитектуру для использования в рамках этого блока и определения его подсистем.

4. Модель управления SNMPv2

Модель управления SNMPv2 описана в документах [8-13], а вопросы сосуществования и перехода от SNMPv1 к SNMPv2 рассмотрены в [15].

SNMPv2 обеспечивает ряд преимуществ по сравнению с SNMPv1, включая:

  • расширенные типы данных (например, 64-битовые счетчики);

  • повышение эффективности и производительности (оператор get-bulk);

  • подтверждаемые уведомления о событиях (оператор inform);

  • расширенную обработку ошибок (ошибки и исключительные ситуации);

  • расширенные операции установки, особенно для создания и удаления строк;

  • уточнения языка определения данных.

Однако описанная в этих документах модель SNMPv2 не полна в смысле соответствия исходным целям проекта SNMPv2. Не реализованы средства администрирования и обеспечения безопасности, обеспечивающие «коммерческий уровень» безопасности:

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

  • конфиденциальность;

  • проверка полномочий и контроль доступа;

  • подходящие возможности удаленной настройки и администрирования для перечисленных выше механизмов.

Описанная в этом и дополняющих его документах модель SNMPv3 решает эти важные вопросы.

5. Рабочая группа SNMPv3

Этот документ и дополнения к нему были подготовлены рабочей группой SNMPv3 IETF. Группа SNMPv3 была создана для подготовки рекомендаций по следующему поколению SNMP. Цель группы заключалась в создании требуемого набора документов для единого стандарта следующего поколения базовых функций SNMP. Одной из наиболее важных потребностей в разработке новых документов послужила необходимость определения механизмов защиты и администрирования, которые обеспечат безопасность управляющих транзакций SNMP и будут полезны для управления на базе SNMPv3 сетями, включенными в них системами, а также работающими на этих системах приложениями, включая взаимодействия «менеджер-агент», «агент-менеджер» и «менеджер-менеджер».

За несколько лет до создания рабочей группы было предпринято много усилий, направленных на встраивание в SNMP защиты и других улучшений. Результатами этих работ стали:

  • SNMP Security, 1991-1992 (RFC 1351 — RFC 1353),

  • SMP, 1992-1993,

  • The Party-based SNMPv2 (иногда называется SNMPv2p), 1993-1995 (RFC 1441 — RFC 1452).

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

Эти работы получили дальнейшее развитие в модели SNMPv2, описанной в RFC 1902 — 1908. Однако описанная в этих документах модель не включает стандартизованной модели защиты и администрирования и предлагает несколько вариантов решения таких задач, включая:

  • SNMPv2 (SNMPv2c), RFC 1901 [16],

  • SNMPv2u, RFC 1909 и 1910,

  • SNMPv2*.

SNMPv2c получил наибольшую поддержку IETF, но не включает средств защиты и администрирования, тогда как SNMPv2u и SNMPv2* включают защиту, но не получили достаточной поддержки в IETF.

Рабочая группа SNMPv3 была создана для разработки единого комплекта спецификаций следующего поколения SNMP на основе сближения концепций и технических элементов SNMPv2u и SNMPv2*, как было предложено консультационной группой, которая была сформирована для разработки единого подхода к развитию SNMP.

Для выполнения поставленных задач рабочая группа определила следующие цели:

  • приспособить модель к разным операционным средам с различными потребностями управления;

  • продвигать необходимость перехода от множества предшествующих протоколов к SNMPv3;

  • упростить работы по установке и обслуживанию.

На начальных этапах работы группа SNMPv3 сосредоточилась на вопросах защиты и администрирования, включая:

  • аутентификацию и конфиденциальность;

  • проверку полномочий и контроль доступа на основе представлений;

  • стандартизованная удаленная настройка конфигурации перечисленного выше.

Группа SNMPv3 не занималась «изобретением велосипеда» и воспользовалась документами проектов стандартов SNMPv2 (т. е., RFC 1902 — 1908) в той части, которая выходила за упомянутую выше сферу сосредоточения.

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

Была разработана модульная архитектура с возможностью эволюционного развития по уровням. В результате SNMPv3 можно рассматривать, как SNMPv2 с дополнительными возможностями защиты и администрирования.

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

6. Спецификации SNMPv3

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

Всякий раз, когда это возможно, исходный набор документов SNMPv3 Management Framework использует определения и реализации модели SNMPv2 с указанием ссылок на спецификации SNMPv2 Management Framework.

Модель SNMPv3 дополняет упомянутые спецификации в части администрирования и защиты для SNMPv3.

Документы, определяющие SNMPv3 Management Framework, используют такую же архитектуру, которая применялась предшественниками. Для удобства представления можно выделить несколько основных категорий:

  • язык определения данных;

  • модули (MIB);

  • протокольные операции;

  • безопасность и администрирование.

Документы из трех первых категорий были взяты из SNMPv2. Документы четвертной категории являются новыми в SNMPv3, но, как отмечено выше, базируются в значительной мере на работах предшественников.

6.1. Язык определения данных

Спецификация языка определения данных включает STD 58, RFC 2578, Structure of Management Information Version 2 (SMIv2) [17] и связанные с ним документы. Эти документы обновляют RFC 1902 — 1904 [9-11], были разработаны независимо от других частей модели и опубликованы, как редакторские обновления в качестве STD 58, RFC 2578 — 2580 [17-19] в процессе продвижения от проекта (Draft Standard) к стандарту (Standard).

Структура управляющей информации SMIv2 определяет фундаментальные типы данных, модель объекта и правила написания и пересмотра модулей MIB. Связанные с ней спецификации включают STD 58, RFC 2579 и 2580.

STD 58, RFC 2579, «Textual Conventions for SMIv2» [18] определяет набор аббревиатур, доступных для использования во всех модулях MIB.

STD 58, RFC 2580, «Conformance Statements for SMIv2» [19] определяет формат заявлений о соответствии, используемых для описания требований к реализациям агентов, и заявлений о возможностях, используемых для документирования характеристик конкретных реализаций.

Термин SMIv2 является не вполне однозначным, поскольку используется по крайней мере в двух разных значениях. Иногда этим термином обозначают весь язык определения данных STD 58, описанный в RFC 2578 — 2580, а иногда — для обозначения лишь части языка определения данных, описанной в RFC 2578. Такая неоднозначность может причинять неудобства, но не вызывает существенных проблем.

6.2. Модули MIB

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

Модули MIB определяются в соответствии с правилами, заданными в документах со спецификациями языка определения данных, прежде всего SMI.

Имеется и продолжает расти множество проектов стандартов с модулями MIB, указанных в периодически обновляемом документе Internet Official Protocol Standards [20]. На момент подготовки данного документа имелось более 100 модулей MIB, предложенных для стандартизации, с общим числом объектов более 10 000. Кроме того, имеется и увеличивается множество фирменных модулей MIB, определяемых в одностороннем порядке производителями оборудования, исследовательскими группами, консорциумами, что приводит к возникновению не поддающегося учету числа объектов.

В общем случае управляющая информация в любом модуле MIB (независимо от версии использованного языка определения данных) может применяться с любой версией протокола. Например, модули MIB, определенные в терминах SNMPv1 SMI (SMIv1), совместимы с моделью управления SNMPv3 Management Framework и могут переноситься с использованием описанных в ней протоколов. Более того, модули MIB, определенные в терминах SNMPv2 SMI (SMIv2), совместимы с протокольными операциями SNMPv1 и могут передаваться этим протоколом. Однако здесь имеется важное исключение — тип данных Counter64, который может присутствовать в модулях MIB формата SMIv2, не может передаваться протокольной машиной SNMPv1. Эти данные могут поддерживаться протоколами SNMPv2 и SNMPv3, но не будут переноситься машинами, поддерживающими только SNMPv1.

6.3. Протокольные операции и транспортные отображения

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

Спецификации протокольных операций заданы в STD 62, RFC 3416, Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP) [21].

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

Спецификация транспортных отображений задана в STD 62, RFC 3417, Transport Mappings for the Simple Network Management Protocol (SNMP) [22].

6.4. Безопасность и администрирование SNMPv3

Серия документов, относящихся к защите и администрированию SNMPv3, которые были подготовлены рабочей группой SNMPv3 включает 7 RFC:

RFC 3410, Introduction and Applicability Statements for the Internet-Standard Management Framework — настоящий документ.

STD 62, RFC 3411, An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks [23] описывает архитектуру в целом, делая акцент на безопасности и администрировании.

STD 62, RFC 3412, Message Processing and Dispatching for the Simple Network Management Protocol (SNMP) [24] описывает возможность моделей множественной обработки сообщений и диспетчерскую часть протокольной машины SNMP.

STD 62, RFC 3413, Simple Network Management Protocol (SNMP) Applications [25] описывает 5 изначальных типов приложений, которые могут быть связаны с машиной SNMPv3 и ее элементами.

STD 62, RFC 3414, User-Based Security Model (USM) for Version 3 of the Simple Network Management Protocol (SNMPv3) [26] описывает угрозы, от которых обеспечивается защита, а также механизмы, протоколы и данные поддержки, используемые для защиты SNMP на уровне сообщений.

STD 62, RFC 3415, View-based Access Control Model (VCAM) for the Simple Network Management Protocol (SNMP) [27] описывает использование контроля доступа на основе представлений в приложениях для откликов на команды и уведомления инициаторов.

RFC 2576, SNMPv3 Coexistence and Transition [28] описывает сосуществование моделей управления SNMPv3, SNMPv2 и исходной SNMPv1. Документ находится в разработке.

7. Краткие описания документов

В последующих параграфах приводятся краткие описания перечисленных выше документов.

7.1. Структура управляющей информации

Управляющая информация рассматривается, как набор объектов управления, размещающихся в виртуальном хранилище информации, называемом базой MIB6. Наборы связанных объектов определяются в модулях MIB. Эти модули записываются с использованием языка определения данных SNMP, который создан на основе подмножества языка ASN.17 [29] OSI. Документы STD 58, RFC 2578, 2579, 2580 совместно определяют язык описания данных, задают базовые типы данных для объектов, базовый набор сокращенных обозначения типов данных для текстовых описания, а также некоторые административные привязки для значений идентификаторов объектов (OID).

SMI делится на три части — определения модулей, определения объектов и определения уведомлений.

  1. Определения модулей используются при описании информационных модулей. ASN.1-макрос MODULE-IDENTITY служит для краткой передачи семантики информационного модуля.

  2. Определения объектов используются для описания управляемых объектов. ASN.1макрос OBJECT-TYPE служит для краткой передачи синтаксиса и семантики управляемого объекта.

  3. Определения уведомлений используются для описания незапрошенной передачи управляющей информации. ASN.1-макрос NOTIFICATION-TYPE служит для краткой передачи синтаксиса и семантики уведомления.

Как было отмечено выше, термин SMIv2 трактуется по разному и имеет, по крайней мере, два значения. Иногда этим термином обозначают язык определения данных STD 58 в целом, описанный в RFC 2578 — 2580, а иногда — только часть языка определения данных, описанную в RFC 2578. Такая неоднозначность может причинять неудобства, но на практике редко приводит к серьезным проблемам.

7.1.1. Базовая спецификация SMI

STD 58, RFC 2578 задает базовые типы данных для языка определения данных, которые включают: Integer32, перечисляемые целые числа (enumerated), Unsigned32, Gauge32, Counter32, Counter64, TimeTicks, INTEGER, OCTET STRING, OBJECT IDENTIFIER, IpAddress, Opaque, BITS. В документе также определены некоторые идентификаторы объектов. STD 58, RFC 2578 определяет перечисленные ниже конструкции языка определения данных.

  • IMPORTS позволяет указать элементы, используемые в модуле MIB, но определенные в других модулях MIB;

  • MODULE-IDENTITY позволяет указать для модуля MIB описание и административные данные (контакты, история версий и т. п.);

  • OBJECT-IDENTITY и присваивание значений OID;

  • OBJECT-TYPE для указания типа данных, статуса и семантики управляемых объектов;

  • SEQUENCE для присвоения списка значений колонке таблицы;

  • NOTIFICATION-TYPE для указания уведомлений о событиях.

7.1.2. Текстовые соглашения

При разработке модуля MIB часто бывает полезно указать (в краткой форме) семантику набора объектов с похожим поведением. Это делается путем определения нового типа данных, использующего базовый тип из спецификации SMI. Каждый новый тип имеет свое имя и указывает базовый тип с более ограниченной семантикой. Эти новые типы называют текстовыми соглашениями и они служат для удобства людей, читающих модуль MIB, а также «интеллектуальный» приложений сетевого управления. Целью документа STD 58, RFC 2579 Textual Conventions for SMIv2 [18] является определение конструкции TEXTUAL-CONVENTION языка определения данных, служащей для определения таких новых типов, и задание начального набора текстовых соглашений, доступного для всех модулей MIB.

7.1.3. Заявления о соответствии

Может оказаться полезным указание приемлемой нижней границы реализации вместе с реально обеспечиваемым уровнем. Целью STD 58, RFC 2580 Conformance Statements for SMIv2 [19] является определение конструкций языка определения данных, служащих для этого. Имеется два вида таких конструкций:

  1. Заявления о соответствии, используемые при описании требований к агентам в части определений объектов и уведомлений о событиях. Конструкция MODULE-COMPLIANCE служит для передачи сжатой формы таких требований.

  2. Заявление о возможностях служит для описания возможностей агентов в части определения объектов и уведомлений о событиях. Конструкция AGENT-CAPABILITIES служит для передачи такой информации в сжатой форме.

Наборы связанных объектов и уведомлений о событиях группируются в блоки соответствия. Конструкция OBJECT-GROUP служит включения объектов в группу и сжатой передачи информации о семантике группы. Конструкция NOTIFICATION-GROUP служит для включения уведомлений в группу и сжатой передачи информации о ее семантике.

7.2. Работа протокола

Протокол управления служит для обмена сообщениями, которые переносят информацию между агентами и станциями управления. Сообщения имеют форму «обертки», инкапсулирующей PDU8.

Целью STD 62, RFC 3416 Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP) [21] является определение операций протокола, отвечающих за передачу и прием PDU.

7.3. Транспортные отображения

Сообщения SNMP могут применяться с разными стеками протоколов. Цель STD 62, RFC 3417 Transport Mappings for the Simple Network Management Protocol (SNMP) [22] состоит в определении отображения сообщений SNMP на начальный набор транспорта. В будущем могут быть разработаны другие определения.

Определено несколько отображений, однако предпочтительным является отображение на транспортный протокол UDP. Поэтому для обеспечения максимального уровня совместимости системам, использующим иные отображения, следует также поддерживать посреднические услуги для отображений UDP.

7.4. Инструментарий

Целью STD 62, RFC 3418 Management Information Base (MIB) for the Simple Network Management Protocol (SNMP) [30] является определение управляемых объектов, описывающих поведение компонент элемента SNMP.

7.5. Архитектура — безопасность и администрирование

Целью STD 62, RFC 3411 An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks [23] является определение архитектуры для описания модели управления. Решая общие архитектурные вопросы, документ фокусируется на аспектах, связанных с администрированием и безопасностью. В документе определено множество терминов, применяемых в модели управленияSNMPv3, которые разъясняют и расширяют трактовки:

  • машин (engine) и приложений;

  • элементов (поставщиков услуг типа машин в агентах и менеджерах);

  • субъектов (пользователей услуг);

  • управляющей информации, включая поддержку множества логических контекстов.

Документ включает небольшой модуль MIB, реализуемый всеми надежными протокольными машинами SNMPv3.

7.6. Обработка и диспетчеризация сообщений (MPD)

STD 62, RFC 3412 Message Processing and Dispatching for the Simple Network Management Protocol (SNMP) [24] описывает обработку и диспетчеризацию сообщений в архитектуре SNMP. Документ определяет процедуры диспетчеризации сообщений разных версий SNMP в подходящие модели обработки сообщений SNMP, а также диспетчеризации PDU в приложения SNMP. Документ также описывает модель обработки сообщений (Message Processing Model) SNMPv3.

Машина протокола SNMPv3 должна поддерживать по крайней мере одну модель обработки сообщений. Протокольная машина SNMPv3 может поддерживать более одной модели (например, в системах, поддерживающих SNMPv3, SNMPv1 и/или SNMPv2c).

7.7. Применение SNMP

Целью STD 62, RFC 3413 Simple Network Management Protocol (SNMP) Applications [25] является описание пяти типов приложений, которые могут быть связаны с машиной SNMP. Эти типы включают генераторы команд (Command Generator), ответчики на команды (Command Responder), источники уведомлений (Notification Originator), получатели уведомлений (Notification Receiver), и пересылающие посредники (Proxy Forwarder).

Документ также определяет модули MIB для указания целей управляющих операций (включая уведомления), фильтрации уведомлений и пересылки.

7.8. Модель безопасности USM

STD 62, RFC 3414 User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3) [26] описывает модель безопасности для SNMPv3. Документ определяет элементы процедуры (Elements of Procedure) для обеспечения защиты SNMP на уровне сообщений.

В документе рассмотрены две основные и две второстепенные угрозы, представляющие опасность для модели USM. К ним относятся изменение информации, маскировка, изменение потока сообщений и раскрытие информации.

USM использует MD5 [31] и SHA9 [32] в качестве алгоритмов хэширования ключей [33] для расчета цифровой подписи при защите целостности данных:

  • прямая защита от атак с изменением данных;

  • опосредованная аутентификация источника данных

  • защита от атак с маскированием.

USM использует свободно синхронизируемые, монотонно возрастающие временные метки для защиты от атак с целью изменения потока сообщений. Заданы механизмы автоматической синхронизации часов на основе протокола без привлечения сторонних источников синхронизации и дополнительных требований безопасности.

USM использует алгоритм DES10 [34] в режиме CBC11, если нужна защита от раскрытия информации. Поддержка DES в модели USM является опциональной прежде всего по причине ограничений на экспорт и применение в ряде стран, осложняющих экспорт продукции, использующей криптографические технологии.

Документ включает также MIB, подходящую для удаленного мониторинга и управления конфигурационными параметрами для USM, включая распространение ключей и управление ими.

Элемент (объект) может одновременно поддерживать несколько моделей защиты, равно как и множество протоколов аутентификации и конфиденциальности. Все используемые USM протоколы основаны на применении заранее известных (т. е., секретных) ключей. Архитектура SNMPv3 позволяет использовать как симметричные, так и асимметричные (их часто называют криптографией с открытым ключом) механизмы и протоколы, но на момент написания этого документа не было моделей защиты SNMPv3 на базе открытых ключей для стандартизации IETF.

Продолжается работа по спецификации применения алгоритма AES в модели USM. Это будет отдельный документ.

7.9. Контроль доступа на основе представлений (VACM)

Целью STD 62, RFC 3415 View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP) [27] является описание модели контроля доступа на основе представлений (VACM) в архитектуре SNMP. VACM в рамках одной реализации может быть связана с множеством моделей обработки сообщений и моделей безопасности.

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

7.10. Сосуществование и переход к SNMPv3

Целью RFC 2576 Coexistence between Version 1, Version 2, and Version 3 of the Internet-Standard Network Management Framework [28] является описание сосуществования моделей управления SNMPv3, SNMPv2 и SNMPv1. В частности, документ описывает четыре аспекта сосуществования:

  • преобразование документов MIB из формата SMIv1 в формат SMIv2;

  • отображение параметров уведомлений;

  • модели сосуществования элементов, поддерживающих разные версии SNMP в неоднородных в плане управления сетях и, в частности, выполнение протокольных операций в таких средах, а также поведение реализаций посредников;

  • модель обработки сообщений SNMPv1 и модель безопасности, основанная на группах (Community-Based Security Model), обеспечивающие механизм адаптации SNMPv1 и SNMPv2c в модель VACM [27]

8. Статус стандартизации

Для выяснения текущего статуса стандартизации читателям рекомендуется обратиться к списку Internet Official Protocol Standards [20].

Однако рабочая группа SNMPv3 в тексте этого документа явно запрашивает повышения статуса SMIv1, SNMPv1 и SNMPv2c.

8.1. Статус SMIv1

SMIv1, как описано в STD 16 (RFC 1155 и 1212), был предложен в статусе Standard в 1990 и остается в этом статусе даже после того, как SMIv2 был предоставлен статус Standard (см. RFC 2026 [35], где приведена информация о процессах стандартизации Internet). Во многих случаях статус Standard меняется на Historic после того, как будет полностью стандартизована замена. Например, MIB-1 [8] был переведен в статус Historic после того, как MIB-2 [6] получил статус Standard. Аналогично, при достижении SMIv2 статуса Standard, было бы разумно отозвать статус SMIv1 и перевести его в категорию Historic, но в результате осознанного решения RFC 1155 и 1212 ( STD 16) сохраняют статус Standard, но перестают быть рекомендуемыми. Эти документы не переведены в категорию устаревших (Historic) и остаются проектами стандартов, поскольку они указаны в качестве нормативных ссылок в других проектах стандартов и не могут быть переведены в категорию Historic без перевода в эту же категорию опирающихся на них документов. Следовательно, STD 16 сохраняет свой статус, но не рекомендуется по причине замены более новой спецификацией SMIv2.

На практике примерно с 1993 года для пользователей языка определения данных стало разумно применять SMIv2 во всех работах, поскольку реальные потребности в некоторых случаях диктуют необходимость поддержки форматов SMIv1 и SMIv2. В то время как уже есть недорогие и даже бесплатные инструменты для трансляции определений SMIv2 в определения SMIv1, создавать инструменты для автоматической трансляции определений SMIv1 в определения SMIv2 непрактично. Следовательно, для тех, кто работает в основном с SMIv2, предоставление данных также и в формате SMIv1 является тривиальной задачей. Напротив, те, кто работает с форматом SMIv1, сталкиваются со значительными издержками для обеспечения определений в обоих форматах — SMIv1 и SMIv2. Потребности современного рынка в определениях формата SMIv1 существенно снизились по сравнению с 1993 годом, а формат SMIv2 является значительно более предпочтительным, нежели SMIv1, хотя последний и не переведен в категорию устаревших. По этой причине IETF с настоящее время требует при написании новых модулей MIB пользоваться форматом SMIv2.

8.2. Статус стандартизации SNMPv1 и SNMPv2

Протокольные операции на основе сообщений SNMPv1 и SNMPv2c поддерживают только тривиальную аутентификацию на базе текстовых строк community (группа), что не обеспечивает должной защиты. Когда спецификация SNMPv3 в части защиты и администрирования получила статус Standard, стандартная (ранее, STD 15) спецификация SNMPv1 [5] и экспериментальная спецификация SNMPv2c, описанная в RFC 1901 [16], были объявлены устаревшими (Historic) по причине слабости защиты, а а взамен выбрана третья версия модели стандартного управления Internet. SNMPv2 (SNMPv2p), SNMPv2u и SNMPv2* были объявлены устаревшими в 1995 г или никогда не включались в процесс стандартизации.

На практическом уровне предполагается, что многие производители будут продолжать выпускать продукцию с поддержкой SNMPv1 и/или SNMPv2c, наряду с SNMPv3, а пользователи продолжат развертывание и использование «многоязычных» реализаций. Следует отметить, что процесс стандартизации IETF не контролирует действия пользователей и производителей, которые могут продвигать развертывать устаревшие протоколы типа SNMPv1 и SNMPv2c, несмотря на их недостатки. Однако не предполагается производство и развертывание «многоязычных» реализаций с поддержкой SNMPv2p, SNMPv2u, SNMPv2*.

Действительно, как было отмечено выше, одна из спецификаций SNMPv3 в части защиты и администрирования — RFC 2576 Coexistence between Version 1, Version 2, and Version 3 of the Internet-Standard Management Framework [28], решает именно эти вопросы.

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

В моделях SNMPv1, SNMPv2 и SNMPv2c возможности администрирования протоколов SNMPv1 и SNMPv2c были весьма ограничены. Например, не было определений объектов для просмотра и настройки групп (community) или получателей уведомлений (trap и inform). В результате производители сами определяли механизмы администрирования — от фирменных конфигурационных файлов, которые невозможно было просматривать и редактировать через SNMP, до специфичных для предприятия определений объектов. Модель SNMPv3 обеспечивает множество стандартизованных средств администрирования, которые могут применяться с протоколами SNMPv1 и SNMPv2c. Таким образом, для обеспечения должной совместимости при администрировании SNMPv1 и SNMPv2c в многоязычных системах следует использовать механизмы и объекты определенные в [25], [27] и [28] взамен соответствующих фирменных механизмов.

8.3. Рекомендации рабочей группы

В соответствии с приведенными выше объяснениями рабочая группа SNMPv3 рекомендует перевести RFC 1157, 1441, 1901, 1909 и 1910 в статус Historical.

9. Вопросы безопасности

Поскольку этот документ, прежде всего, является обзором других документов, он не порождает новых вопросов, связанных с безопасностью. Читателю рекомендуется обратиться к соответствующим разделам рассмотренных здесь документов.

10. Литература

10.1. Нормативные документы

[1] Bradner, S., «Key words for use in RFCs to Indicate Requirement Levels», BCP 14, RFC 2119, March, 1997.

10.2. Дополнительная литература

[2] Cerf, V., «IAB Recommendations for the Development of Internet Network Management Standards», RFC 1052, April 1988.

[3] Rose, M. and K. McCloghrie, «Structure and Identification of Management Information for TCP/IP-based internets», STD 16, RFC 1155, May 1990.

[4] Rose, M. and K. McCloghrie, «Concise MIB Definitions», STD 16, RFC 1212, March 1991.

[5] Case, J., Fedor, M., Schoffstall, M. and Davin, J., «Simple Network Management Protocol», STD 15, RFC 1157, May 1990.

[6] McCloghrie, K. and M. Rose, «Management Information Base for Network Management of TCP/IP-based internets: MIB-II», STD 17, RFC 1213, March 1991.

[7] Rose, M., «A Convention for Defining Traps for use with the SNMP», RFC 1215, March 1991.

[8] McCloghrie, K. and M. Rose, «Management Information Base for Network Management of TCP/IP-based Internets», RFC 1156, March 1990.

[9] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, «Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)», RFC 1902, January 1996.

[10] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, «Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2)», RFC 1903, January 1996.

[11] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, «Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2)», RFC 1904, January 1996.

[12] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, «Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)», RFC 1905, January 1996.

[13] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, «Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)», RFC 1906, January 1996.

[14] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, «Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2)», RFC 1907, January 1996.

[15] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, «Coexistence between Version 1 and Version 2 of the Internet-Standard Network Management Framework», RFC 2576, January 1996.

[16] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, «Introduction to Community-based SNMPv2», RFC 1901, January 1996.

[17] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, «Structure of Management Information Version 2 (SMIv2)», STD 58, RFC 2578, April 1999.

[18] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, «Textual Conventions for SMIv2», STD 58, RFC 2579, April 1999.

[19] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, «Conformance Statements for SMIv2», STD 58, RFC 2580, April 1999.

[20] «Official Internet Protocol Standards», http://www.rfc-editor.org/rfcxx00.html, STD0001.

[21] Presuhn, R., Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, «Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP)», STD 62, RFC 3416, December 2002.

[22] Presuhn, R., Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, «Transport Mappings for the Simple Network Management Protocol (SNMP)», STD 62, RFC 3417, December 2002.

[23] Harrington, D., Presuhn, R. and B. Wijnen, «An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks», STD 62, RFC 3411, December 2002.

[24] Case, J., Harrington, D., Presuhn, R. and B. Wijnen, «Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)», STD 62, RFC 3412, December 2002.

[25] Levi, D., Meyer, P. and B. Stewart, «Simple Network Management Protocol (SNMP) Applications», STD 62, RFC 3413, December 2002.

[26] Blumenthal, U. and B. Wijnen, «User-Based Security Model (USM) for Version 3 of the Simple Network Management Protocol (SNMPv3)», STD 62, RFC 3414, December 2002.

[27] Wijnen, B., Presuhn, R. and K. McCloghrie, «View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)», STD 62, RFC 3415, December 2002.

[28] Frye, R., Levi, D., Routhier, S. and B. Wijnen, «Coexistence between Version 1, Version 2, and Version 3 of the Internet-Standard Network Management Framework», RFC 2576, March 2000.

[29] Information processing systems — Open Systems Interconnection — Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization. International Standard 8824, (December, 1987).

[30] Presuhn, R., Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, «Management Information Base (MIB) for the Simple Network Management Protocol (SNMP)», STD 62, RFC 3418, December 2002.

[31] Rivest, R., «Message Digest Algorithm MD5», RFC 1321, April 1992.

[32] Secure Hash Algorithm. NIST FIPS 180-1, (April, 1995) http://csrc.nist.gov/fips/fip180-1.txt (ASCII) http://csrc.nist.gov/fips/fip180-1.ps (Postscript)

[33] Krawczyk, H., Bellare, M. and R. Canetti, «HMAC: Keyed-Hashing for Message Authentication», RFC 2104, February 1997.

[34] Data Encryption Standard, National Institute of Standards and Technology. Federal Information Processing Standard (FIPS) Publication 46-1. Supersedes FIPS Publication 46, (January, 1977; reaffirmed January, 1988).

[35] Bradner, S., «The Internet Standards Process — Revision 3», BCP 9, RFC 2026, October, 1996.

11. Адреса редакторов

Jeffrey Case

SNMP Research, Inc.

3001 Kimberlin Heights Road

Knoxville, TN 37920-9716

USA

Phone: +1 865 573 1434

EMail: case@snmp.com

Russ Mundy

Network Associates Laboratories

15204 Omega Drive, Suite 300

Rockville, MD 20850-4601

USA

Phone: +1 301 947 7107

EMail: mundy@tislabs.com

David Partain

Ericsson

P.O. Box 1248

SE-581 12 Linkoping

Sweden

Phone: +46 13 28 41 44

EMail: David.Partain@ericsson.com

Bob Stewart

В отставке.

Перевод на русский язык

Николай Малых

nmalykh@gmail.com

12. Полное заявление авторских прав

Copyright (C) The Internet Society (2002). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.

1Simple Network Management Protocol — простой протокол сетевого управления.

2Internet Engineering Task Force.

3Management Information Base.

4Structure of Management Information.

5В части литературы, посвященной безопасности, средства обеспечения безопасности SNMPv3 рассматриваются, как аутентификация источников, защита целостности и конфиденциальности.

6Management Information Base.

7Abstract Syntax Notation One.

8Protocol Data Unit — модуль данных протокола.

9Secure Hash Algorithm — алгоритм защитного хэширования.

10Data Encryption Standard — стандарт шифрования данных.

11Cipher block chaining — цепочка шифрованных блоков.

 

Рубрика: RFC | Комментарии к записи RFC 3410 Introduction and Applicability Statements for Internet Standard Management Framework отключены

RFC 3439 Some Internet Architectural Guidelines and Philosophy

Network Working Group                                            R. Bush
Request for Comments: 3439                                      D. Meyer
Updates: 1958                                              December 2002
Category: Informational

Some Internet Architectural Guidelines and Philosophy

Некоторые архитектурные рекомендации и философия Internet

PDF

Статус документа

Этот документ содержит информацию для сообщества Internet. Документ не задаёт каких-либо стандартов Internet и может распространяться без ограничений.

Авторские права

Copyright (C) The Internet Society (2002). Все права защищены.

Аннотация

Этот документ расширяет RFC 1958, очерчивая некоторые философские принципы, которых следует придерживаться архитекторам и проектировщикам магистральных сетей Internet. Описан принцип простоты (Simplicity Principle), который утверждает, что сложность является основным препятствием эффективному расширению и рассмотрено его влияние на проблемы архитектуры и устройства, возникающие на крупных магистралях Internet.

Оглавление

Исключено в версии HTML.

1. Введение

В RFC 1958 [RFC1958] описаны базовые принципы архитектуры Internet. Данный документ расширяет эту работу, излагая некоторые философские принципы, которые следует применять архитекторам и проектировщикам магистральных сетей Internet. Хотя многие из описанных здесь областей могут противоречить друг другу, в документе приведён объединяющий принцип, контролирующий сложность как механизм влияния на стоимость и надёжность. Сложность сетей операторов может возникать по разным причинам. Однако, как отмечено в [DOYLE2002]: «Сложность большинства систем обусловлена необходимостью устойчивости к неопределённостям в средах и компонентах, а не базовой функциональностью». Таким образом, основная цель этого документа состоит в повышении осведомлённости о сложностях текущей архитектуры и изучении влияния этой сложности на успешность отрасли операторов IP.

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

2. Большие системы и принцип простоты

Принцип простоты, сформулированный, возможно впервые, Mike O’Dell, бывшим главным архитектором (Chief Architect) UUNET, гласит, что сложность является основным препятствием эффективному расширению и, как следствие, основным фактором роста капитальных (CAPEX) и эксплуатационных (OPEX) расходов. Для IP-сетей операторов это означает, что в архитектуре и проектировании нужно выбирать простейшие из возможных решений.

2.1. «Сквозной аргумент» и простота

«Сквозной аргумент», описанный в [SALTZER] (а также в [RFC1958]), утверждает: «Сквозному протоколу не следует полагаться на поддержку состояния (т. е. сведений о состоянии сквозных коммуникаций) внутри сети. Такие состояния следует поддерживать лишь на конечных точках, чтобы состояние разрушалось лишь самой конечной точкой». Это свойство связано также с концепцией «общей судьбы» в работе Кларка [CLARK]. Можно видеть, что «сквозной принцип» напрямую ведёт к принципу простоты, исследуя формулировку архитектуры Internet, называемую «песочными часами» (hourglass) [WILLINGER2002]. В этой модели тонкая перемычка песочных часов рассматривается как (минималистичный) уровень IP, а все сложности добавляются над этим уровнем. Вкратце можно сказать, что сложности Internet возникают на краях, а уровню IP в Internet следует оставаться как можно более простым.

Следует отметить, что End-to-End Argument не означает, что в ядре Internet не будет поддерживаться никаких состояний. Фактически в ядре поддерживается огромное число состояний (например, состояние маршрутизации). Однако важно то, что эти состояния почти полностью ортогональны состояниям конечных точек (например, хостов). Именно такая минимизация способствует простоте. В результате учёт взаимодействия состояний в ядре и конечных точках становится критически важным при анализе протоколов, таких как трансляция адресов (Network Address Translation или NAT), снижающих степень прозрачности между сетью и хостами.

2.2. Нелинейность и сложность сети

Сложные архитектуры и конструкции были (и остаются) одними из самых значительных препятствий при построении рентабельных крупномасштабных сетей IP. Рассмотрим, например, задачу создания большой пакетной сети. Опыт показал, что построение такой сети требует иных действий (и иного набора навыков), нежели создание небольших и средних сетей и поэтому имеет другие свойства. В частности, крупнейшие сети демонстрируют в теории и на практике нелинейность архитектуры, устройства и инженерных аспектов, которая не проявляется при меньших размерах. Мы называем это ADE-нелинейностью (Architecture, Design, and Engineering). Таким образом, системы, подобные Internet, можно охарактеризовать как сильно разнородные (self-dissimilar) со значительно различающимися масштабами и уровнями абстракции [CARLSON]. ADE-нелинейность связана с двумя общеизвестными принципами теории нелинейных систем [THOMPSON], описанными ниже.

2.2.1. Принцип усиления

Принцип усиления (Amplification Principle) утверждает, что в больших системах имеются нелинейности, отсутствующие в мелких и средних системах.

Следствие. Во многих крупных сетях даже небольшие «вещи» могут вызывать очень крупные события. С точки зрения теории систем даже небольшие изменения на входе процесса в большой системе могут дестабилизировать её выход.

Важным примером принципа усиления является нелинейное резонансное усиление, которое может существенно трансформировать динамические системы, такие как большие сети, в результате представляющихся незначительными флуктуаций. Эти небольшие флуктуации могут медленно накапливаться, а при возникновении синхронизации вызывать серьёзные изменения. Резонансные явления являются примерами нелинейного поведения, когда небольшие изменения могут усиливаться и оказывать влияние, многократно превышающее начальный размер флуктуаций. В природе много примеров таких резонансов, таких как разрушение моста Tacoma Narrows в результате усиления небольших порывов ветра. Другими примерами являются разрывы в поясах астероидов и кольцах Сатурна, созданные нелинейным резонансным усилением. Некоторые особенности человеческого поведения и большинство систем паломничества подвержены влиянию резонансов, связанных с динамикой Солнечной системы, таких как световой день, сидерический (27,3 суток) и синодический (29,5 суток) цикл Луны, годичный (365,25 суток) цикл Солнца.

Для сети Internet было показано, что увеличение связности ведёт к усложнению и более частому замедлению схождения маршрутизации BGP [AHUJA]. Другое наблюдение говорит, что слабая связность делает вывод системы маршрутизации более сложным, чем ввод [GRIFFIN]. Важным способом снижения усиления является ограничение влияния локальных изменений локальной областью (в отличие от систем, где локальное изменение имеет глобальный эффект). ATM является прекрасным примером усиления — потеря одной ячейки ведёт к уничтожению всего пакета (а при отсутствии таких механизмов, как раннее отбрасывание пакетов — Early Packet Discard [ROMANOV] — будет продолжаться приём заведомо повреждённого пакета).

Другой интересный пример усиления из инженерной сферы описан в [CARLSON]. В работе рассмотрен самолёт Boeing 777, работающий по принципу «полёта по проводу» (fly-by-wire) и содержащий до 150 000 подсистем и около 1000 CPU. Отмечено, что, несмотря на устойчивость Boeing 777 к масштабным возмущениям атмосферы, границам зон турбулентности и изменению загрузки, полет может быть нарушен микроскопическими изменениями в нескольких больших CPU (к счастью, это происходит редко). Этот пример показывает, что: «сложность может усилить слабые возмущения и инженеры-конструкторы должны гарантировать, что такие возмущения чрезвычайно редки» [CARLSON].

2.2.2. Принцип взаимосвязи

Принцип взаимосвязи (Coupling Principle) гласит, что по мере увеличения объектов растёт уровень взаимозависимости между компонентами.

Следствие. Чем больше событий происходит одновременно, тем больше вероятность взаимодействия между ними. Это называют также «непредвиденным взаимодействием функций» (unforeseen feature interaction) [WILLINGER2002].

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

Взаимосвязи проявляются в большом числе природных систем, включая микронестабильности плазмы (гидромагнитные, например, скручивание, отражение, вспучивание, разрыв, захват) [NAVE], а также различные виды электрохимических систем (нестандартный флюоресцентный синтез нуклеотидов, проблема маркировки нуклеиновых кислот [WARD]). Наблюдались также взаимосвязи временных циклов [JACOBSON], а также разных типов биологических циклов.

Существуют хорошо известные примеры и в сетевых системах, включая синхронизацию различных контуров управления, например, синхронизация маршрутных обновлений и TCP Slow Start [FLOYD,JACOBSON]. Важным результатом этих наблюдений является то, что взаимозависимости тесно связаны с синхронизацией. Внесение случайных факторов в эти системы является одним из способов снижения взаимозависимости. Интересно, что при анализе факторов риска для телефонных сетей общего пользования (Public Switched Telephone Network или PSTN) Charles Perrow разложил проблему сложности по двум связанным осям, которые он назвал взаимодействиями (interactions) и взаимозависимостью (coupling) [PERROW]. Perrow называет взаимодействия и взаимозависимости важными факторами, определяющими надёжность сложной системы (в частности, PSTN). В этой модели взаимодействием называются зависимости между компонентами (линейные или нелинейные), а взаимозависимости относятся к гибкости системы. Системы с простыми, линейными взаимодействиями имеют компоненты, влияющие лишь на другие компоненты, расположенные ниже в функциональном потоке. Компоненты сложной системы взаимодействуют со многими другими компонентами в разных и, возможно, удалённых частях системы. Считается, что системы со слабой взаимозависимостью более гибки в плане временных ограничений, упорядоченности и допущений о среде, нежели системы с сильными взаимозависимостями. Кроме того, системы со сложными взаимодействиями и сильной взаимозависимостью могут сталкиваться с непредвиденными отказами (сложные взаимодействия допускают большее число осложнений, которые сложнее понять и предсказать). Такое поведение описано в [WILLINGER2002]. Тесная взаимозависимость также означает снижение гибкости системы в плане восстановления при отказе.

Управление сетью PSTN SS7 является интересным примером неожиданного поведения в сильно связанной сложной сети. Такие отказы, как широко известный случай 1991 г. в сети AT&T SS7, являются показательными — сбой был вызван программной ошибкой в коде аварийного восстановления коммутатора. Когда коммутатор снова включился, он (и достаточно вероятное событие синхронизации) вызвал отказы соседей. Те при восстановлении работы вызвали отказы своих соседей и т. д. [NEUMANN] (основной причиной явился неуместный оператор break; это отличный пример межуровневой взаимозависимости). Это явление похоже на фазовую синхронизацию слабосвязанных генераторов, когда случайные вариации в последовательности играют важную роль в стабильности системы[THOMPSON].

2.3. Уроки телефонных сетей

В 1970-1980 гг. Телефонные операторы конкурировали между собой, добавляя новые функции, которые привели к значительному усложнению сетей PSTN, особенно в инфраструктуре коммутации класса 5. Эта сложность обычно была связана с программами, а не оборудованием, поэтому имеет кривые затрат значительно хуже закона Мура. Таким образом, низкая рентабельность голосовых систем сегодня является следствием того, что расходы OPEX и CAPEX не снижаются, как можно было бы ожидать от простых аппаратных реализаций.

2.4. Расходы на обновление сложных систем

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

3. Многоуровневая структура может быть вредной

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

Контроль ошибок

Повышает надёжность «канала». Например, это может быть гарантированный транспорт.

Управление потоком данных

Предотвращает лавинную передачу медленным партнёрам (например, управлением потоком данных в ATM).

Фрагментирование

Делит большие блоки данных на более мелкие части, а затем собирает их обратно (например, TCP MSS).

Мультиплексирование

Позволяет организовать несколько сессий более высокого уровня через одно «соединение» нижележащего уровня (например, ATM PVC).

Организация соединений

Согласование с партнёром (например, трехэтапное согласование TCP, ATM ILMI).

Адресация, именование

Нахождение и поддержка идентификаторов, связанных с объектами (например, GOSSIP 2 NSAP [RFC1629]).

Такие многоуровневые системы имеют ряд концептуальных и структурных преимуществ. Однако в контексте сетей данных структурированная многоуровневая система предполагает, что функции каждого уровня выполняются до того, как блок данных протокола будет передан на следующий уровень. Это означает, что на каждом уровне оптимизация выполняется отдельно. Такое ограничение порядка противоречит эффективной реализации функций манипулирования данными. Можно считать ответственной за такой конфликт многоуровневую модель (например, TCP/IP и ISO OSI). Операции мультиплексирования и сегментирования фактически фактически скрывают важные сведения, которые могут потребоваться нижележащим уровням для оптимизации их работы. Функции данного и нижележащего уровня могут частично перекрываться, например, при поэтапном (hop-hop) и сквозном восстановлении после ошибок. Вдобавок, разным уровням может требоваться одна информация (например, временная метка), уровню N могут потребоваться данные уровня N-2 (например, размер пакетов на этом уровне) и т. п. [WAKEMAN].Связанное с этим и ещё более ироничное замечание приведено в классической статье Tennenhouse «Layered Multiplexing Considered Harmful» [TENNENHOUSE]: «Подход ATM к широкополосным сетям с настоящее время применяется в CCITT (и других местах) как базовый механизм для поддержки интеграции служб, адаптации скорости и контроля временных вариаций на нижних уровнях сетевой архитектуры. Этот документ рассматривает временные вариации (jitter), связанные с концепцией «среднего» и «верхнего» уровня, которые работают в оконечных системах и ретрансляторах мультисервисных сетей (multi-service network или MSN).»

В результате межуровневых зависимостей рост числа уровней может быстро привести к нарушению принципа простоты. Отраслевой опыт показывает, что рост числа уровней часто ведёт к усложнению и росту OPEX, как предсказывает принцип простоты. Это следствие указано в разделе 2 (п. 5) RFC 1925 [RFC1925]:

«Всегда можно объединить несколько отдельных проблем в одно сложное решение со взаимозависимостями. В большинстве случаев это плохая идея».

Таким образом, первый вывод заключается в том, что горизонтальное (в отличие от вертикального) разделение является более рентабельным и надёжным в долгосрочной перспективе.

3.1. Оптимизация может быть вредной

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

Важное и связанное с этим влияние оптимизации описывается законом снижающейся доходности (Law of Diminishing Returns), который гласит, что рост одного фактора производства при сохранении других в конечном итоге ведёт к относительному снижению общей доходности после определённого момента [SPILLMAN]. Подразумевается, что попытка выжать эффективность выше определённого уровня лишь добавляет сложности и снижает надёжность.

3.2. Изобилие функций может быть вредным

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

3.3. Развитие транспортной эффективности IP

Развитие транспортной архитектуры для протокола IP даёт хорошие примеры того, как снижение вертикальной интеграции ведёт к разным уровням эффективности. Иллюстрация представлена ниже.

    | IP через ATM в сети SONET  -->
    | IP через SONET в сети WDM  -->
    | IP через WDM
   \|/
   Снижение сложности, CAPEX и OPEX

Ключевым моментом здесь является снижение числа уровней, ведущее к уменьшению расходов CAPEX и OPEX.

3.4. Уровни схождения

Схождение связано с описанными выше концепциями уровней. Конечным состоянием «аргумента конвергенции» является концепция «все через некий уровень» (Everything Over Some Layer или EOSL). Канал, DWDM, волокно, ATM, MPLS и даже IP были предложены как уровни схождения. Важно отметить, что в результате повышения операционных расходов при создании уровней, ожидается рост OPEX и в результате схождения. Это наблюдение согласуется с отраслевой практикой.

Есть много примеров отказа уровня схождения, из которых возможно наиболее ярким является IP в сети ATM. Прямым и наиболее очевидным следствием многоуровневости ATM является так называемый «налог на ячейки» (cell tax). Во-первых, отметим, что эффективность ATM зависит от распределения размеров пакетов. Предположим, что это типичный трафик Internet, где высока доля пакетов размером 40, 44 и 552 байта. Недавние данные [CAIDA] показывают, что около 95% сетей WAN и 85% пакетов относятся к TCP. Большую часть трафика составляют пакеты размером 40 — 44 байта. Рассмотрим теперь магистраль DS3 со включённым PLCP. Максимальная скорость здесь составляет 96000 ячеек в секунду. Если умножить эту скорость на число полезных байтов в ячейке и размер байта, получится 96000 * 48 * 8 = 36,864 Мбит/с. Однако такая скорость нереальна, поскольку она предполагает плотную упаковку полезных данных (payload). Есть ещё 2 фактора, повышающие издержки ATM (налог на ячейки) — бесполезное наполнение и 8-байтовый заголовок SNAP. Этот заголовок вызывает большинство проблем (и с этим ничего не сделать), вынуждая расходовать на мелкие пакеты 2 ячейки, из которых вторая содержит в основном заполнение (это очень плохо в упомянутом выше случае передачи множества пакетов TCP Ack размером 40 — 44 байта). Это вызывает потерю ещё примерно 16% из пропускной способности 36,8 Мбит/с. В итоге пропускная способность составит для DS3:

             скорость в линии DS3:        	 44,736
             издержки PLCP              	- 4,032
             заголовки ячеек            	- 3,840
             заголовки SNAP и заполнение	- 5,900
                                       =========
                                         30,960 Мбит/с

В результате при скорости линии DS3 в 44,736 Мбит/с суммарные издержки составляют около 31%.

Другой взгляд на это основан на том, что трафик WAN включает в основном пакеты TCP ACK. IP в сети ATM требует:

             данные IP (40 байтов в данном случае)
             8 байтов SNAP
             8 байтов AAL5
             5 байтов заголовка ячейки
             + байты для заполнения последней ячейки

В ATM такие пакеты превращаются в 2 ячейки общим размером 106 байтов, которые передают 40 байтов информации. Следующим наиболее распространенным размером пакетов является диапазон 504-556 байтов, 636 байтов IP, TCP и 512 байтов данных TCP, а на третьем месте идут сообщения с размером данных более 1000 байтов.

Можно представить, что 87% полезных данных (556 байтов сообщения) больше, чем 37% (TCP Ack), но это не 95-98%, к которым привыкли клиенты, а преобладание TCP Ack снижает среднее значение.

3.4.1. Уровни транспортных протоколов

Многоуровневые модели протоколов часто называют «X over Y», где протокол Y служит для передачи блоков данных (возможно и блоков управления) протокола X через плоскость данных Y, т. е. Y является уровнем схождения (convergence layer). Примеры включают Frame Relay через ATM, IP через ATM, IP через MPLS. Хотя решения X over Y имели лишь незначительный успех [TENNENHOUSE,WAKEMAN], было несколько случаев достижения высокой эффективности. В частности, эффективное решение X over Y можно реализовать при наличии своего рода изоморфизма между X и Y (т. е. имеется небольшой уровень схождения). В таких случаях данные X и возможно трафик управления инкапсулируются и передаются по протоколу Y. Примеры включают Frame Relay через ATM, а также Frame Relay, AAL5 ATM и Ethernet через L2TPv3 [L2TPV3]. Фактором упрощения здесь служит отсутствие требования общей синхронизации для конечных точек и минимизация межсетевого взаимодействия в плоскости управления. Альтернативой является межсетевое взаимодействие для данных и управления протоколов X и Y. Межсетевое взаимодействие в плоскости управления рассматривается ниже.

3.5. Эффекты второго порядка

IP через ATM демонстрирует отличный пример непредвиденных эффектов второго порядка. В частности, классическое исследование Romanov и Floyd для TCP [ROMANOV] в сети ATM показывает, что для обеспечения разумной производительности нужны большие (больше окна TCP) буферы UBR, механизмы отбрасывания пакетов, такие как упреждающее отбрасывание (Early Packet Discard или EPD), повышают эффективность использования пропускной способности, а для высокой эффективности и беспристрастности в узких местах (bottleneck) могут потребоваться более сложные службы и стратегии отбрасывания, нежели FIFO+EPD, такие как очереди и учёт VC. Хотя все исследования явно показывают, что нужен размер буфера не меньше одного окна TCP, число реально требуемых буферов зависит от применяемого механизма отбрасывания и этот вопрос остаётся открытым.

Примеров проблем такого типа в многоуровневых системах можно найти очень много в реальных сетях. Рассмотрим влияние неявных предположений транспорта IP (протокол TCP) о нижележащих протоколах.

  • Потери пакетов. TCP предполагает, что потеря пакетов говорит о перегрузке, но потери иногда возникают в результате повреждения пакетов в беспроводных каналах [RFC3115].

  • Нарушение порядка доставки. TCP предполагает, что существенное нарушения порядка доставки говорит о перегрузке. Это верно не во всех случаях [FLOYD2001].

  • Время кругового обхода. TCP измеряет время кругового обхода и предполагает, что отсутствие подтверждения в интервале, основанном на измеренном времени, говорит о потере пакета (следовательно, о перегрузке) [KARN].

  • Контроль перегрузок в TCP неявно предполагает одинаковую обработки в сети всех пакетов одного потока, но это верно не всегда [HANDLEY].

3.6. Создание экземпляра модели EOSL с IP

Хотя протокол IP предлагается для транспортировки почти всего, базовое представление о том, что «Все через IP» (Everything over IP или EOIP) приведёт к росту эффективности OPEX и CAPEX, требует критического пересмотра. В частности, несмотря на возможность эффективной доставки многих протоколов по сетям IP (в частности, протоколов, которым не требуется восстанавливать синхронизацию между конечными точками, таким как Frame Relay, Ethernet, AAL5 ATM), принципы простоты и многоуровневости предполагают, что EOIP может не быть наиболее эффективной стратегией схождения для произвольных служб. Скорее наиболее эффективный уровень схождения для CAPEX и OPEX может быть существенно ниже (это также подсказывает принцип простоты).

Примером, где EOIP не обеспечивает наиболее эффективный для OPEX и CAPEX транспорт, является ситуация, где службе или протоколу требуется время восстановления как в сети SONET (например, 50 мсек). Несложно представить, что создание и эксплуатация сети IP с такими свойствами (если это возможно) будет стоить больше, чем просто создание сети SONET.

4. Исключение универсального межсетевого взаимодействия

Хотя реализаций функции универсального межсетевого взаимодействия (Universal Interworking Function или UIWF) было много, подходы IWF оказались проблематическими в масштабе больших сетей. Это отмечено в принципе минимального вмешательства (Principle of Minimum Intervention) [BRYANT]:

«Для минимизации области видимости информации и повышения эффективности потока данных через уровень инкапсуляции содержимое (payload) следует передавать, по возможности, без изменений».

4.1. Исключение межсетевого взаимодействия в плоскости управления

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

Как описано выше, модели межсетевого взаимодействия оказались успешными в тех случаях, когда имеется некий «изоморфизм» между уровнями. Компромисс, часто называемый «Integrated vs. Ships In the Night trade-off1» исследовался в разное время на разных уровнях протоколов. В общем случае имеется несколько эффективных вариантов интегрированных решений. Multi-protocol BGP [RFC2283] является несколько иным, но заметным исключением. В этом случае плоскость управления не зависит от формата данных управления, т. е. не требуется преобразования данных плоскости управления в отличие от моделей межсетевого взаимодействия в плоскости управления, таких как взаимодействие ATM/IP, представляемое некоторыми производителями программных коммутаторов, и так называемое взаимодействие PNNI-MPLS SIN [ATMMPLS].

5. Фундаментальные различия в коммутации пакетов и каналов

Принято считать, что коммутация пакетов (packet switching или PS) по своей природе более эффективна, нежели коммутация каналов (circuit switching или CS) в первую очередь за счёт статистического мультиплексирования и возможности принимать решения о пересылке независимо на каждом этапе (hop-by-hop) [MOLINERO2002]. Кроме того, широко распространено мнение, что PS2 проще коммутации каналов, поэтому будет более экономично при развёртывании и эксплуатации [MCK2002]. Однако при изучении этих и связанных с ними допущений возникает иная картина (см., например, [ODLYZKO98]). Упомянутые допущения рассматриваются в последующих параграфах.

5.1. Действительно ли PS эффективней, чем CS, по своей природе?

Хорошо известно, что коммутаторы пакетов эффективно используют дефицитную пропускную способность [BARAN]. Эта эффективность основана на статистическом мультиплексировании, присущем коммутации пакетов. Однако по-прежнему озадачивает то, что обычно считают низкой загрузкой магистралей Internet. Первый вопрос связан с текущей загрузкой магистралей Internet и её соотношением с загрузкой сетей дальней телефонной связи. Odlyzko Coffman [ODLYZKO,COFFMAN] сообщает, что средняя загрузка каналов в сетях IP составляет от 3% до 20% (корпоративные сети используют около 3%, коммерческие магистрали Internet — 15-20%). Средняя загрузка телефонных сетей дальней связи составляет около 33%. Кроме того, в 2002 г. средняя загрузка оптических сетей (все услуги) составляла около 11%, а средняя долгосрочная загрузка — около 15% [ML2002]. Возникает вопрос, чем обусловлены такие уровни загрузки, особенно с учётом допущения о большей эффективности PS по сравнению с CS. Причины, отмеченные Odlyzko и Coffman включают:

  1. асимметричную природу трафика Internet с пиками и провалами, тогда как каналы симметричны и имеют фиксированную ёмкость (т. е. неизвестна матрица трафика или требуемая пропускная способность каналов);

  2. сложно предсказать рост трафика на канале, поэтому операторы склонны обеспечивать избыточную пропускную способность;

  3. падение цен при заказе большей пропускной способности делает более выгодным расширение полосы на значительную величину.

К другим статическим факторам относятся издержки протоколов, дискретность оборудования, возможности восстановления и временной интервал предоставления. Совместно они определяют необходимость избыточного выделения ресурсов (over-provision) [MC2001].

5.2. Действительно ли PS проще, чем CS?

Сквозной принцип можно считать утверждением о том, что сложности Internet находятся на краях (границах). Однако современные магистральные маршрутизаторы Internet очень сложны и сложность зависит от скорости линий. Поскольку относительная сложность коммутации каналов и пакетов, похоже, не поддаётся сравнительному анализу, вместо этого будет рассмотрено несколько артефактов коммутации каналов и пакетов как меры сложности. Среди показателей, на которые можно обратить внимание, находится сложность программ и оборудования, потребляемая мощность и плотность. Каждый из этих показателей рассматривается ниже.

5.2.1. Сложность программ и микрокода

Одним из показателей сложности программ и микрокода является число инструкций, требуемых для программирования устройства. Типичный образ программ для маршрутизатора Internet включает 8-10 миллионов инструкций (включая микрокод), а типичный транспортный коммутатор — примерно 8 миллионов инструкций [MCK2002].

Такое различие в сложности программ делает маршрутизаторы Internet ненадёжными и имеет дополнительные заметные эффекты второго порядка (например, долгая перезагрузка маршрутизатора). Другой точкой сравнения может служить коммутатор AT&T (Lucent) 5ESS класса 5, имеющий огромное число функций вызова и требующий примерно вдвое больше строк кода, нежели маршрутизатор ядра Internet [EICK].

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

5.2.2. Сложность макроопераций

Линейные платы маршрутизаторов Internet должны выполнять много сложных операций, включая обработку заголовков пакета, поиск максимального соответствия префикса, генерацию сообщений ICMP об ошибках, обработку опций заголовка IP и буферизацию пакета для эффективного контроля перегрузок TCP (обычно это требует буфера, размер которого пропорционален произведению скорости линии на RTT, или примерно 250 мсек из данных пакета). Здесь не указана фильтрация маршрутов и пакетов, а также фильтрация QoS и VPN.

Транспортный коммутатор должен лишь отображать входные временные интервалы (time-slot) на выходные временные интервалы или интерфейсы, поэтому может быть значительно менее сложным.

5.2.3. Сложность оборудования

Одним из показателей сложности оборудования является число логических вентилей (транзисторов) на линейной плате [MOLINERO2002]. Плата высокоскоростного маршрутизатора Internet для линии OC192 POS содержит по меньшей мере 30 миллионов вентилей в микросхемах ASIC, хотя бы 1 CPU, 300 Мбайт пакетных буферов, 2 Мбайта таблиц пересылки и 10 Мбайт памяти состояний. Линейная плата сравнимого транспортного коммутатора имеет 7,5 миллионов логических вентилей без CPU, буфера пакетов, таблиц пересылки и памяти состояний. Скорей такая плата будет включать блок кадрирования SONET, микросхему для сопоставления входных временных интервалов с выходными и интерфейс к модулю коммутации (switch fabric).

5.2.4. Потребляемая мощность

Поскольку в транспортных коммутаторах традиционно применяется более простое оборудование, они потребляют меньшую мощность [PMC].

5.2.5. Плотность

Наиболее производительные транспортные коммутаторы имеют примерно в 4 раза большую пропускную способность по сравнению с маршрутизаторами IP [CISCO,CIENA] и примерно втрое меньшую стоимость в расчёте на Гбит/с. Оптические технологии (OOO) дополнительно увеличивают различия в сложности (например, перестраиваемые лазеры, коммутаторы MEMS, например, [CALIENT]), а мультиплексоры DWDM обеспечивают технологию создания транспортных коммутаторов с очень высокой производительностью и малой потребляемой мощностью.

Связанной с этим метрикой являются физические размеры. В общем случае транспортные коммутаторы имеют меньший размер в расчёте на Гбит/с.

5.2.6. Фиксированные и переменные расходы

Коммутация пакетов, по видимому, имеет высокие переменные затраты, а это означает, что отправка n-й части информации с использованием коммутации пакетов обходится дороже, чем при коммутации каналов. Большая часть этого связана с относительно статичной природой коммутации каналов (например, может использоваться заранее планируемое прибытие информации для снижения объёма операций, выполняемых при поступлении данных). В случае коммутации каналов не требуется буферизовать входные данные, выполнять обнаружение петель, определять следующий интервал пересылки (hop), менять поля в заголовках и т. п.. Кроме того, многие сети с коммутацией каналов сочетают более или менее статичную конфигурацию с отдельными (out-of-band) плоскостями управления (например, SS7), что существенно упрощает коммутацию в плоскости данных. Суть в том, что по мере роста скорости данных коммутация пакетов быстро усложняется, тогда как рост сложности коммутации каналов остаётся более или менее линейным.

5.2.7. QoS

Хотя компоненты полного решения для Internet QoS, включая контроль вызовов, эффективную классификацию пакетов и алгоритмы планирования широко исследовались и стандартизовались уже более 10 лет, сквозной сигнализации QoS для Internet до сих пор нет. С другой стороны, QoS с самого начала является частью инфраструктуры коммутации каналов. При этом QoS обычно развёртывается для задания дисциплин очередей, которые следует применять при недостатке пропускной способности для передачи трафика. В отличие от голосового трафика отбрасывание пакетов или значительные задержки для TCP могут могут оказывать более существенное влияние из-за наличия контуров обратной связи для перегрузок (в частности, TCP backoff/slow start).

5.2.8. Гибкость

Присущую Internet гибкость сложнее оценить количественно. Хотя эта гибкость привела к быстрому росту Internet. С ней сопряжены сравнительно высокие затраты на периферии, связанные с потребностью в квалифицированном персонале. Стандартное эмпирическое правило состоит в том, что в условиях предприятия достаточно одного человека в службе поддержки для обеспечения телефонной связи в группе, тогда как для поддержки сетевых коммуникаций в той же группе требуется десяток специалистов по компьютерным сетям [ODLYZKO98A]. Это явление описано также в [PERROW].

5.3. Относительная сложность

Вычислительную сложность коммутации каналов по сравнению с коммутацией пакетов сложно описать формально [PARK]. Поэтому в предшествующих разделах сложность описывалась с точки зрения наблюдаемых эффектов. С учётом этого становится ясно, что основной причиной роста отмеченной выше сложности является присущая архитектуре IP «поэтапная независимость» (hop-by-hop independence или HBHI). Это отличается от сквозных архитектур, таких как ATM или Frame Relay.

В [WILLINGER2002] это описано с точки зрения требований отказоустойчивости исходного проекта Internet и влияния этого на сложность сети. В частности рассматривается «спираль сложность-отказоустойчивость», где рост сложности ведёт к повышению чувствительности, требующему дополнительной отказоустойчивости (спираль).

Важным уроком этого раздела является то, что принцип простоты (Simplicity Principle) применительно к коммутации каналов и пакетов имеет решающее значение для контроля сложности (и, следовательно, свойств OPEX и CAPEX) в пакетных сетях. Это подкрепляется наблюдением, говорящим о том, что хотя коммутация пакетов «моложе» и является менее зрелой по сравнению с коммутацией каналов, к коммутации пакетов присутствует тенденция усложнения линейных плат в то время как сложность коммутации каналов растёт линейно с повышением скорости и агрегированной пропускной способности.

5.3.1. HBHI и OPEX

HBHI требует подходить к сетям IP принципиально иначе, нежели к сетям с коммутацией каналов. В частности основным вопросом операционных расходов (OPEX) для сетей IP является то, что отладка крупномасштабных IP-сетей по-прежнему требует высокого уровня опыта и понимания из-за «поэтапной независимости», присущей пакетной архитектуре (ещё раз отметим, что такой независимости нет в сетях с коммутацией каналов, таких как ATM и Frame Relay). Например, может потребоваться обращение к большому числу маршрутизаторов для обнаружения проблемы внешней по отношению к вашей сети. Кроме того, используемые для диагностики инструменты отладки достаточно сложны и кое в чем примитивны. В сетях IP приходится иметь дело с людьми, у которых возникают проблемы с их DNS, почтовыми или новостными службами, а также с некоторыми новыми приложениями, которые обычно не проявляются в TDM, ATM и т. п. В случае IP проблему можно упростить за счёт автоматизации (отметим, что многие из упомянутых проблем обусловлены взаимодействием с клиентами). В общем случае имеется много внешних по отношению к сети переменных, которые влияют на OPEX.

Важно подчеркнуть, что количественные взаимосвязи между CAPEX, OPEX и присущей сетям сложностью пока изучены недостаточно. Фактически нет согласованных количественных показателей для описания сложности сетей, поэтому точные связи между CAPEX, OPEX и сложностью остаются неясными.

6. Миф об избыточности

Как отмечено в [MC2001] и других работах, большая часть сложностей, наблюдаемых сегодня в Internet, связана с ростом используемой пропускной способности. В результате желание сетевых инженеров сохранить загрузку сети ниже 50% получило название «избыточность» (over-provisioning). Однако такое использование термина является неверным. Неиспользуемая в современных магистралях Internet пропускная способность фактически является защитным свойством. В частности, это можно считать «защитой 1:1 на уровне IP» (1:1 protection at the IP layer). С этой точки зрения сеть IP, предназначенная для работы с загрузкой 50%, предоставляет избыточность не выше, чем обычная сеть SONET. Однако важным преимуществом такой IP-сети является малая задержка (скорость близка к скорости света) и почти нулевые потери пакетов [FRALEIGH]. Эти преимущества можно считать «побочным эффектом» защиты 1:1.

Имеются также системно-теоретические причины обеспечения защиты в стиле 1:1, среди которых наиболее заметным является то, что сети коммутации пакетов с контуром управления по основному каналу становятся нестабильными и склонными к осцилляциям и «синхронизации» при перегрузке. Сложные и нелинейные взаимодействия трафика ведут к влиянию перегрузки в одной части сети на другие участки. При потере пакетов протокола маршрутизации в результате перегрузки в сети или процессоре обработки маршрутов возникает несогласованность маршрутизации, которая может приводить к возникновению петель и «чёрных дыр» или потере связности. Хотя статистическое мультиплексирование теоретически может обеспечить более высокую загрузку сети, на практике для поддержки согласованной производительности и достаточно стабильной работы сети динамика магистралей Internet благоприятствует защите 1:1 и её побочным эффектам для поддержания стабильности сети и малых задержек.

7. Миф о пяти девятках

Paul Baran в своей классической статье «SOME PERSPECTIVES ON NETWORKS—PAST, PRESENT AND FUTURE» говорит: «Компромисс между стоимостью и надёжностью системы предполагает, что самые надёжные системы можно построить из сравнительно ненадёжных (следовательно, недорогих) элементов, если речь идёт о надёжности системы при самой низкой общей стоимости» [BARAN77].

Сегодня это называют «мифом о пяти девятках». В частности, так называемая «надёжность 99,999» для элементов пакетной сети считается мифом по нескольким причинам. Во-первых, 80% незапланированных простоев вызваны ошибками людей или процессов [SCOTT] и для оптимизации остаётся лишь 20%. Таким образом, для повышения надёжности компонентов добавляется сложность (оптимизация зачастую ведёт к усложнению), которая является причиной 80% неплановых простоев. Это фактически сужает окно 20% (т. е. повышает вероятность отказов, связанных с людьми и процессами). Это являет характеризуется «спиралью сложность-отказоустойчивость» [WILLINGER2002], где рост сложности повышает чувствительность, что требует повышения отказоустойчивости (спираль). Вывод заключается в том, что, хотя системы, подобные Internet, могут обеспечивать надёжность 99,999, нежелательно (и, вероятно, невозможно) пытаться обеспечить такую надёжность любому отдельному элементы (особенно сложному).

8. Закон пропорциональности архитектурных компонент

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

Пусть
A   - представление архитектуры A;
|A| - число различных компонентов в пути доставки услуг архитектуры A;
w   - монотонно возрастающая функция;
P   - вероятность стабильной реализации архитектуры.
Тогда
Complexity(A) = O(w(|A|))
P(A)          = O(1/w(|A|))
где O(f) = {g:N->R | существует c > 0 и n, такие что g(n) < c*f(n)}
Т. е. O(f) включает набор функций g, для которого имеется константа c и число n, такие что g(n) не больше c*f(n) для всех n. Т. е O(f) - набор всех функций, которое не растут быстрее f без учёта постоянных факторов.

Интересно, что модель HOT (Highly Optimized Tolerance) [HOT] пытается охарактеризовать сложность в общих терминах (HOT является одной из попыток создать общую схему для изучения сложности и относится к семейству абстракций, называемому «новой наукой о сложностях» или «комплексными адаптивными системами»). Терпимость (tolerance) в семантике HOT означает, что «надёжность в сложных системах является ограниченной величиной, которая требует осторожного управления и защиты». Одной из целей модели HOT является характеризация распределений с «тяжёлым хвостом», каких как Complexity(A) в приведённом выше примере (другие примеры включают лесные пожары, отключение питания и распределение трафика в Internet). В частности, Complexity(A) пытается сопоставить предельную неоднородность частей системы (Internet) и влияние их организации на сильно структурированные сети с иерархией и множеством уровней.

8.1. Пути доставки услуг

Закон пропорциональности архитектурных компонентов (Architectural Component Proportionality Law или ACPL) гласит, что сложность архитектуры пропорциональная числу её компонентов. Следствием этого является минимизация числа компонентов в пути доставки услуг, которым может служить протокольный, программный или физический путь.

Это следствие является важным выводом из ACPL, поскольку путь между потребителем и желаемой услугой особо чувствителен к числу и сложности элементов пути. Это связано с тем, что сложность «сглаживания» при высоком уровне агрегирования [ZHANG] исчезает при приближении к краю, а также при сложных взаимодействиях с бэк-офисом и системами CRM. Примерами архитектур, которые не нашли применения из-за этого эффекта, включают CRM на основе TINA и архитектуры служб на базе CORBA/TINA. Основной урок состоит в том, что единственными вариантами развёртывания этих систем были «Ограниченное развёртывание, такое как Starvision, где можно избежать проблем, связанных с расширением» или «Огромные инвестиции, как при сборке с нуля ORB операторского класса» [TINA]. Иными словами, эти системы имели сложный путь доставки услуг и были слишком сложны для развёртывания.

9. Заключение

В этом документе предпринята попытка систематизации известных принципов архитектуры Internet. В частности, описанный здесь принцип объединения лучше всего выражается принципом простоты (Simplicity Principle), который гласит, что сложность должна контролироваться, если нужна эффективная расширяемость сложного объекта. Идея о том, что простота сама может вести к некой оптимизации, была общей в течение долгого времени и выражалась разными способами и в разных измерениях. Рассмотрим, например, «бритву Оккама» (Occam’s Razor) — принцип сформулированный средневековым английским философом и монахом-францисканцем Уильямом Оккамом (William of Ockham, 1285-1349), гласящий: «Pluralitas non est ponenda sine neccesitate» или «plurality should not be posited without necessity» (Occam’s Razor иногда называют принципом отказа от множественности или принципом простоты)3. Возможно, более современная формулировка гласит, что простейшим объяснением явления является предпочитаемое природой. Другая формулировка той же идеи представлена в принципе сохранения простоты (KISS или Keep It Simple Stupid) и принципе наименьшего удивления (Principle of Least Astonishment), считающем наиболее подходящей систему, которая менее всего вызывает удивление. В [WILLINGER2002] приведено теоретическое обсуждение «отказоустойчивости за счёт простоты» (robustness through simplicity), а в обсуждении PSTN [KUHN87] отмечено, что во многих системах «возможен компромисс между простотой взаимодействия и взаимозависимостью».

Применительно к архитектуре сети с коммутацией пакетов некоторые следствия принципа простоты могут показаться «ересью». Например, подходы с высоким уровнем конвергенции будут явно менее эффективными, чем решения с меньшей конвергентностью. Иными словами, «оптимальный» уровень конвергентности может оказаться в стеке протоколов существенно ниже, чем принято считать. Кроме того, приведённый выше анализ ведёт к нескольким выводам, противоречащим традиционным представлениям о пакетных сетях. Возможно, наиболее важна убеждённость в том, что коммутация пакетов проще коммутации каналов. На основе этого убеждения возникло представление о том, что работа с пакетами дешевле работы с устройствами, поскольку пакет проще канала (устройства). Данный документ утверждает обратное. В частности, исследование описанных выше показателей показывает, что коммутация пакетов сложней, чем коммутация каналов. Интересно, что этот вывод подтверждается тем фактом, что нормализованные показатели OPEX для сетей передачи данных обычно существенно выше, чем для голосовых (телефонных) сетей [ML2002].

Наконец, важным заключением этой работы является то, что для пакетных сетей масштаба современной сети Internet и крупнее нужно стремиться к максимально простым решениям для построения максимально эффективной экономически инфраструктуры. Это красноречиво изложено в [DOYLE2002]: «Развитие протоколов может привести к спирали отказоустойчивость-сложность-хрупкость, где сложность добавляется для отказоустойчивости, что ведёт к росту хрупкости и новому витку спирали». Это как раз то явление, предотвращению которого служит принцип простоты.

10. Вопросы безопасности

Документ не оказывает прямого влияния на безопасность имеющихся протоколов Internet. Однако соблюдение принципа простоты напрямую влияет на возможность внедрения защищённых систем. В частности, по мере роста сложности системы её труднее анализировать и моделировать, поэтому усложняется поиск и понимание последствий для безопасности, связанных с архитектурой, устройством и реализацией.

11. Благодарности

Многие идеи по сравнению сетей с коммутацией пакетов и каналов были предложены в разговорах с Nick McKeown. Scott Bradner, David Banister, Steve Bellovin, Steward Bryant, Christophe Diot, Susan Harris, Ananth Nagarajan, Andrew Odlyzko, Pete и Natalie Whiting, Lixia Zhang предоставили полезные замечания к ранней версии документа.

12. Литература

[AHUJA] «The Impact of Internet Policy and Topology on Delayed Routing Convergence», Labovitz, et. al. Infocom, 2001.

[ATMMPLS] «ATM-MPLS Interworking Migration Complexities Issues and Preliminary Assessment», School of Interdisciplinary Computing and Engineering, University of Missouri-Kansas City, April 2002

[BARAN] «On Distributed Communications», Paul Baran, Rand Corporation Memorandum RM-3420-PR, http://www.rand.org/publications/RM/RM3420«, August, 1964.

[BARAN77] «SOME PERSPECTIVES ON NETWORKS—PAST, PRESENT AND FUTURE», Paul Baran, Information Processing 77, North-Holland Publishing Company, 1977,

[BRYANT] «Protocol Layering in PWE3», Bryant et al, Work in Progress4.

[CAIDA] http://www.caida.org

[CALLIENT] http://www.calient.net/home.html

[CARLSON] «Complexity and Robustness», J.M. Carlson and John Doyle, Proc. Natl. Acad. Sci. USA, Vol. 99, Suppl. 1, 2538-2545, February 19, 2002. http://www.pnas.org/cgi/doi/10.1073/pnas.012582499

[CIENA] «CIENA Multiwave CoreDiretor», http://www.ciena.com/downloads/products/coredirector.pdf

[CISCO] http://www.cisco.com

[CLARK] «The Design Philosophy of the DARPA Internet Protocols», D. Clark, Proc. of the ACM SIGCOMM, 1988.

[COFFMAN] «Internet Growth: Is there a ‘Moores Law’ for Data Traffic», K.G. Coffman and A.M. Odlyzko, pp. 47-93, Handbook of Massive Data Stes, J. Elli, P. M. Pardalos, and M. G. C. Resende, Editors. Kluwer, 2002.

[DOYLE2002] «Robustness and the Internet: Theoretical Foundations», John C. Doyle, et. al. Work in Progress.

[EICK] «Visualizing Software Changes», S.G. Eick, et al, National Institute of Statistical Sciences, Technical Report 113, December 2000.

[MOLINERO2002] «TCP Switching: Exposing Circuits to IP», Pablo Molinero-Fernandez and Nick McKeown, IEEE January, 2002.

[FLOYD] «The Synchronization of Periodic Routing Messages», Sally Floyd and Van Jacobson, IEEE ACM Transactions on Networking, 1994.

[FLOYD2001] «A Report on Some Recent Developments in TCP Congestion Control, IEEE Communications Magazine, S. Floyd, April 2001.

[FRALEIGH] «Provisioning IP Backbone Networks to Support Delay-Based Service Level Agreements», Chuck Fraleigh, Fouad Tobagi, and Christophe Diot, 2002.

[GRIFFIN] «What is the Sound of One Route Flapping», Timothy G. Griffin, IPAM Workshop on Large-Scale Communication Networks: Topology, Routing, Traffic, and Control, March, 2002.

[HANDLEY] «On Inter-layer Assumptions (A view from the Transport Area), slides from a presentation at the IAB workshop on Wireless Internetworking», M. Handley, March 2000.

[HOT] J.M. Carlson and John Doyle, Phys. Rev. E 60, 1412-1427, 1999.

[ISO10589] «Intermediate System to Intermediate System Intradomain Routing Exchange Protocol (IS-IS)».

[JACOBSON] «Congestion Avoidance and Control», Van Jacobson, Proceedings of ACM Sigcomm 1988, pp. 273-288.

[KARN] «TCP vs Link Layer Retransmission» in P. Karn et al., Advice for Internet Subnetwork Designers, Work in Progress.

[KUHN87] «Sources of Failure in the Public Switched Telephone Network», D. Richard Kuhn, EEE Computer, Vol. 30, No. 4, April, 1997.

[L2TPV3] Lau, J., et. al., «Layer Two Tunneling Protocol (Version 3) — L2TPv3», Work in Progress5.

[MC2001] «U.S Communications Infrastructure at A Crossroads: Opportunities Amid the Gloom», McKinsey&Company for Goldman-Sachs, August 2001.

[MCK2002] Nick McKeown, personal communication, April, 2002.

[ML2002] «Optical Systems», Merril Lynch Technical Report, April, 2002.

[NAVE] «The influence of mode coupling on the non-linear evolution of tearing modes», M.F.F. Nave, et al, Eur. Phys. J. D 8, 287-297.

[NEUMANN] «Cause of AT&T network failure», Peter G. Neumann, http://catless.ncl.ac.uk/Risks/9.62.html#subj2

[ODLYZKO] «Data networks are mostly empty for good reason», A.M. Odlyzko, IT Professional 1 (no. 2), pp. 67-69, Mar/Apr 1999.

[ODLYZKO98A] «Smart and stupid networks: Why the Internet is like Microsoft». A. M. Odlyzko, ACM Networker, 2(5), December, 1998.

[ODLYZKO98] «The economics of the Internet: Utility, utilization, pricing, and Quality of Service», A.M. Odlyzko, July, 1998. http://www.dtc.umn.edu/~odlyzko/doc/networks.html

[PARK] «The Internet as a Complex System: Scaling, Complexity and Control», Kihong Park and Walter Willinger, AT&T Research, 2002.

[PERROW] «Normal Accidents: Living with High Risk Technologies», Basic Books, C. Perrow, New York, 1984.

[PMC] «The Design of a 10 Gigabit Core Router Architecture», PMC-Sierra, http://www.pmc-sierra.com/products/diagrams/CoreRouter_lg.html

[RFC1629] Colella, R., Callon, R., Gardner, E. and Y. Rekhter, «Guidelines for OSI NSAP Allocation in the Internet», RFC 1629, May 1994.

[RFC1925] Callon, R., «The Twelve Networking Truths», RFC 1925, 1 April 1996.

[RFC1958] Carpenter, B., Ed., «Architectural principles of the Internet», RFC 1958, June 1996.

[RFC2283] Bates, T., Chandra, R., Katz, D. and Y. Rekhter, «Multiprotocol Extensions for BGP4», RFC 2283, February 1998.

[RFC3155] Dawkins, S., Montenegro, G., Kojo, M. and N. Vaidya, «End-to-end Performance Implications of Links with Errors», BCP 50, RFC 3155, May 2001.

[ROMANOV] «Dynamics of TCP over ATM Networks», A. Romanov, S. Floyd, IEEE JSAC, vol. 13, No 4, pp.633-641, May 1995.

[SALTZER] «End-To-End Arguments in System Design», J.H. Saltzer, D.P. Reed, and D.D. Clark, ACM TOCS, Vol 2, Number 4, November 1984, pp 277-288.

[SCOTT] «Making Smart Investments to Reduce Unplanned Downtime», D. Scott, Tactical Guidelines, TG-07-4033, Gartner Group Research Note, March 1999.

[SPILLMAN] «The Law of Diminishing Returns:, W. J. Spillman and E. Lang, 1924.

[STALLINGS] «Data and Computer Communications (2nd Ed)», William Stallings, Maxwell Macmillan, 1989.

[TENNENHOUSE] «Layered multiplexing considered harmful», D. Tennenhouse, Proceedings of the IFIP Workshop on Protocols for High-Speed Networks, Rudin ed., North Holland Publishers, May 1989.

[THOMPSON] «Nonlinear Dynamics and Chaos». J.M.T. Thompson and H.B. Stewart, John Wiley and Sons, 1994, ISBN 0471909602.

[TINA] «What is TINA and is it useful for the TelCos?», Paolo Coppo, Carlo A. Licciardi, CSELT, EURESCOM Participants in P847 (FT, IT, NT, TI)

[WAKEMAN] «Layering considered harmful», Ian Wakeman, Jon Crowcroft, Zheng Wang, and Dejan Sirovica, IEEE Network, January 1992, p. 7-16.

[WARD] «Custom fluorescent-nucleotide synthesis as an alternative method for nucleic acid labeling», Octavian Henegariu*, Patricia Bray-Ward and David C. Ward, Nature Biotech 18:345-348 (2000).

[WILLINGER2002] «Robustness and the Internet: Design and evolution», Walter Willinger and John Doyle, 2002.

[ZHANG] «Impact of Aggregation on Scaling Behavior of Internet Backbone Traffic», Sprint ATL Technical Report TR02-ATL-020157 Zhi-Li Zhang, Vinay Ribeiroj, Sue Moon, Christophe Diot, February, 2002.

13. Адреса авторов

Randy Bush
EMail: randy@psg.com
 
David Meyer
EMail: dmm@maoz.com

14. Полное заявление авторских прав

Copyright (C) The Internet Society (2002). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


Перевод на русский язык

Николай Малых

nmalykh@protokols.ru

1Интеграция в сравнении с «кораблями в ночи».

2В оригинале ошибочно указано IP, см. https://www.rfc-editor.org/errata/eid5608. Прим. перев.

3По русски часто это формулирует: «не умножать сущности сверх необходимого». Прим. перев.

4Работа опубликована в RFC 3985. Прим. перев.

5Работа опубликована в RFC 3931. Прим. перев.

Рубрика: RFC | Оставить комментарий

RFC 3393 IP Packet Delay Variation Metric for IP Performance Metrics (IPPM)

Network Working Group                                      C. Demichelis
Request for Comments: 3393                             Telecomitalia Lab
Category: Standards Track                                    P. Chimento
                                                            Ericsson IPI
                                                           November 2002

IP Packet Delay Variation Metric for IP Performance Metrics (IPPM)

Показатели вариаций задержки пакетов для IPPM

PDF

Статус документа

В этом документе содержится спецификация стандарта для протокола, предложенного сообществу Internet. Документ служит приглашением к дискуссии в целях развития и совершенствования протокола. Текущее состояние стандартизации протокола вы можете узнать из документа Internet Official Protocol Standards (STD 1). Документ может распространяться без ограничений.

Авторские права

Copyright (C) The IETF Society (2002). Все права защищены.

Аннотация

Документ относится к показателю вариации задержки пакетов на путях через Internet. Метрика основана на разнице односторонней задержки (One-Way-Delay) выбранных пакетов. Разницу в задержке называют вариацией задержки пакетов IP (IP Packet Delay Variation или ipdv).

Это показатель подходит для измерений между парой хостов, независимо от синхронизации их часов. В документе рассмотрены случаи наличия и отсутствия такой синхронизации.

1. Введение

Документ определяет показатель вариаций задержки для пакетов, проходящих от одного хоста к другому по пути IP. Показатель основан на «A One-Way-Delay metric for IPPM», RFC 2679 [2] и часть текста этого документа напрямую заимствована оттуда. Предполагается знакомство читателя с упомянутым документом.

Ключевые слова необходимо (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не нужно (SHALL NOT), следует (SHOULD), не следует (SHOULD NOT), рекомендуется (RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе должны интерпретироваться в соответствии с BCP 14, RFC 2119 [3]. Хотя BCP 14, RFC 2119 был написан для протоколов, ключевые слова в этом документе используются так же. Они служат для обеспечения сопоставимости результатов измерений двух разных реализаций и выявления случаев, когда реализация может нарушать работу сети.

Ниже описана структура этого документа.

  • Определён показатель Type-P-One-way-ipdv для одиночного (singleton) измерения ipdv.

  • На основе Type-P-One-way-ipdv определена выборка (sample) Type-P-one-way-ipdv-Poisson-stream для обеспечения возможности сбора и расчёта статистики измерений ipdv.

  • На основе выборки определены и рассмотрены несколько параметров статистики.

1.1. Терминология

Вариации задержки пакетов иногда называют «дрожью» (jitter), однако это может вызывать путаницу, поскольку данный термин имеет несколько значений. В одном из значений термин jitter применяют для вариаций сигнала относительно синхронизирующего сигнала, когда ожидается, что сигнал прибывает одновременно с сигналом синхронизации. Это значение применяется к синхронным сигналам и может служить, например, для измерения качества эмуляции устройства. В этом контексте также применяется термин wander — блуждание.

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

В этом документе по возможности термин jitter не применяется и вместо него говорится о вариациях задержки.

1.2. Определение

Определение вариаций задержки пакетов (IP Packet Delay Variation или ipdv) можно дать для пакетов из потока.

Значение ipdv для пары пакетов из потока определяется для выбранной пары в потоке из точки измерений MP1 в точку измерений MP2.

Значением ipdv является разность между задержками в одном направлении для выбранных пакетов.

1.3. Мотивация

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

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

Целью этого документа является обеспечения способа измерения ipdv для пути. Нужно определить показатель, который можно параметризовать для использования с разными целями. Любой отчёт о показателе должен включать все параметры, связанные с метрикой, чтобы можно было точно определить условия и значение показателя. Поскольку показатель не является оценочным суждением (хорошо, плохо), здесь осознанно не указываются конкретные значения, которым должны соответствовать сети IP.

Гибкость показателя можно считать недостатком, но есть аргументы в пользу такой гибкости. Во-первых, хотя некоторые применения ipdv указаны выше, использование ipdv ещё является темой исследований и нужно сохранить пространство для манёвра. Во-вторых, в сообществе есть разные взгляды на то, каким следует быть определению (например, [8], [9], [10]). Идея здесь состоит в том, чтобы параметризовать определение, а не создавать отдельный документ для каждого предлагаемого определения. Поскольку все параметры указываются в отчёте, это позволяет понять, как конкретно применялись измерения ipdv. Все замечания в документе остаются в силе, независимо от выбора параметров.

1.4. Вопросы, связанные со временем

Содержимое параграфа 2.2 в [2] применимо и в данном случае.

В итоге, как и в [1] «перекос» (skew) определяется как первая производная сдвига часов относительно «истинного времени» (true time), а дрейф часов (drift) — как вторая производная сдвига относительно «истинного времени».

На основе этого можно определить «относительный перекос» (relative skew) и относительный дрейф» (relative drift) для пары часов C1 и C2. Ниже представлены естественные расширения определений базовой модели.

  • Относительный сдвиг — разница во времени по двум часам.

  • Относительный перекос — первая производная относительного сдвига.

  • Относительный дрейф — вторая производная относительного сдвига.

Примечание. Дрейф часов, как определено выше, в течение длительного интервала времени должен иметь среднее значение, стремящееся к 0, поскольку частота генератора в часах имеет конечный (и небольшой) диапазон. Чтобы подчеркнуть порядок величины этого эффекта, отметим, что максимальный дрейф коммерческих кристалов для часов составляет около 50*10-6 (part per million или ppm). Поскольку вариации связаны в основном с колебаниями температуры (от 0 до 70 градусов Цельсия), предполагается что с процессе работы температура хоста меняется незначительно, а вариации температуры, даже если они быстрые, не превышают 1 градуса в секунду и не выходят за пределы нескольких градусов. Общий диапазон дрейфа часом обычно связывают с температурным диапазоном от 0 до 70 C. Это важно для оценки точности измерения ipdv, как будет показано ниже.

2. Определение одиночного показателя One-way-ipdv

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

Это определение использует соответствующее определение показателя type-P-One-Way-Delay [2]. В этом разделе используются те части One-Way-Delay Draft, которые напрямую применимы к показателю One-Way-ipdv или ссылаются на Draft.

2.1. Имя показателя

Type-P-One-way-ipdv

2.2. Параметры показателя

Src — IP-адрес хоста
Dst — IP-адрес хоста
T1 — время
T2 — время
L — размер пакета в битах. Пакеты потока Type P, для которых выполняются одиночные измерения ipdv, должны иметь одинаковый размер
F — функция выбора, однозначно определяющая в потоке 2 пакета для определения показателя
I1,I2 — время, указывающее начало и конец интервала, в котором происходит поток пакетов, где выполняется одиночное измерение.
P — спецификация типа пакета помимо адресов отправителя и получателя.

2.3. Единица измерения

Значение Type-P-One-way-ipdv является действительным числом секунд (положительным, 0 или отрицательным) или неопределённое число.

2.4. Определение

Дан поток пакетов Type P, а также I1 и I2 так, что первому пакету Type P, проходящему точку измерения MP1 после I1 присваивается индекс 0, а последнему пакету Type P, проходящему MP1 до I2 присваивается наибольший индекс.

Type-P-One-way-ipdv определяется для двух пакетов от Src к Dst, выбранных функцией F, как разность между значением type-P-One-way-delay от Src к Dst в момент T2 и значением type-P-One-Way-Delay от Src к Dst в момент T1. T1 — это время в линии, когда Scr передал первый бит пакета, а T2 — время в линии, когда Src передал первый бит второго пакета. Этот показатель выведен из показателя One-Way-Delay.

Следовательно, для действительного числа ddT «type-P-one-way-ipdv от Src к Dst в моменты T1, T2 = ddT» означает, что Src передал два пакета — первый в момент (в линии) T1 (первый бит), второй — в момент (в линии) T2 (первый бит) и эти пакеты были получены Dst в моменты (в линии) dT1+T1 (последний бит первого пакета) и dT2+T2 (последний бит второго пакета), а dT2-dT1=ddT. Фраза «type-P-one-way-ipdv от Src к Dst в моменты T1, T2 не определено» означает, что Src передал первый бит пакета в момент T1 и первый бит второго пакета в момент T2, а Dst не получил один или оба пакета.

Рисунок 1 иллюстрирует это определение. Предположим, что выбраны пакеты P(i) и P(k).

  I1  P(i)       P(j)                  P(k)                     I2

MP1 |--------------------------------------------------------------|
        |\        |\                    |\
        | \       | \                   | \
        |  \      |  \                  |  \
        |   \     |   \                 |   \
        |dTi \    |dTj \                |dTk \
        |<--->v   |<--->v               |<--->v

MP2 |--------------------------------------------------------------|

 I1          P(i)       P(j)                 P(k)               I2

Рисунок 1. Иллюстрация к определению.


Тогда ddT = dTk — dTi, как определено выше.

2.5. Обсуждение

Определение этого показателя зависит от потока пакетов Type-P-One-Way-Delay, для которого выполняются измерения. В общем случае это может быть поток из двух и более пакетов в интервале между точками I1 и I2. Для выполнения одиночного измерения поток должен включать хотя бы 2 пакета. Цель функции выбора состоит в точном указании двух пакетов из потока, используемых для однократного измерения. Отметим, что функция выбора может включать наблюдение односторонней задержки всех пакетов Type P из потока в заданном интервале. Примеры функции выбора приведены ниже.

  • Последовательные пакеты Type-P в заданном интервале.

  • Пакеты Type-P с указанными индексами в заданном интервале.

  • Пакеты Type-P с минимальной и максимальной задержкой в заданном интервале.

  • Пакеты Type-P с указанными индексами из набора всех определённых (т. е. конечных) задержек пакетов Type-P в заданном интервале.

Ниже рассматривается ряд практических вопросов.

  • Будучи дифференциальным измерением, этот параметр не так чувствителен к проблемам синхронизации часов. Этот вопрос более подробно рассматривается в разделе 5. Отмечено, что при изменении со временем относительного хода часов точность измерения будет зависеть от временного интервала I2-I1, а величина возможных ошибок рассматривается ниже.

  • В методику должен включаться способ, позволяющий отличить бесконечную задержку от очень большой (пакет ещё не прибыл в Dst). Как отметили Mahdavi и Paxson, можно использовать простую верхнюю границу (такую, как теоретических предел в 255 секунд для срока существования пакетов IP [Postel: RFC 791]), но на практике лучше применять решение, учитывающее реальные сроки существования пакетов. Отметим, что для многих применений этих показателей вред от обработки очень большой задержки как бесконечной может быть невелик или просто отсутствовать. Например, пакет данных TCP, поступающий по истечении нескольких интервалов RTT, эквивалентен потере пакета.

  • Как и для других показателей type-P, значение метрики зависит от таких свойств пакета, как протокол, номер порта (UDP или TCP), размер и специальная обработка (такая, как предпочтения IP или RSVP).

  • Значение ddT рассчитывается от начала первого бита из пакета, переданного Src до получения последнего бита, принятого Dst. Задержка коррелирует с размером пакета, поэтому размер пакетов является параметром измерений и должен включаться в отчёт.

  • Если пакет дублируется на пути (путях) и к получателю приходит несколько неповреждённых копий, пакет учитывается как полученный и прибывшая первой копия определяет значение One-Way-Delay.

  • Если пакет фрагментирован и по какой-либо причине сборки не произошло, пакет считается потерянным.

В этом документе предполагается, что поток пакетов Type-P генерируется в соответствии с методикой выборки Пуассона, описанной в [1]. Причина использования выборки Пуассона состоит в том, что она обеспечивает беспристрастную и однородно распределенную выборку времени между I1 и I2. Однако возможны и другие методики выборки. Например, возможна непрерывная выборка в потоке с постоянной битовой скоростью (периодическая передача пакетов). Однако в этом случае требуется избегать эффектов «псевдонимов», которые могут позникать при периодической выборке.

2.6. Методика

Как и для других показателей Type-P-*, методология зависит от Type-P (например, номера протокола, номера порта UDP/TCP, размера, предпочтений). Описанная здесь методика предполагает измерение и определение ipdv в реальном масштабе времени как часть активных измерений. Отметим, что это можно сделать и по завершении односторонних измерений.

Методика для общего случая Type-P описана ниже. Отметим, что она предполагает синхронизацию часов. Вопросы синхронизации часов Src и Dst рассмотрены ниже.

  • Старт после времени I1. На хосте Src выбираются IP-адреса Src и Dst IP и формируются тестовые пакеты Type-P с этими адресами для данного метода (например, для выборки Пуассона). Какое-либо дополнение в тестовых пакетах применяется лишь для установки заданного размера пакетов и для него следует применять случайные биты, чтобы избежать ситуаций, когда измеренная задержка будет снижаться в результате использования сжатия пакетов на пути.

  • На хосте Dst организуется приём пакетов.

  • На хосте Src в пакет Type-P помещается временная метка и пакет отправляется в направлении Dst.

  • Если пакет прибывает в течение разумного интервала, из него как можно скорее извлекается временная метка и берётся метка времени прибытия пакета. Разность меток позволяет рассчитать One-Way-Delay.

  • Если пакет соответствует критерию функции отбора для первого пакета, значение первой задержки записывается. В ином случае продолжается генерация потока пакетов Type-P, пока не будет выполнен критерий или достигнуто время I2 (что раньше).

  • На хосте Src продолжается генерация пакетов по этой методике. Src помещает временную метку в пакет Type-P и передаёт его в направлении Dst.

  • Если пакет прибывает в течение разумного интервала, из него как можно скорее извлекается временная метка и берётся метка времени прибытия пакета. Разность меток позволяет рассчитать One-Way-Delay.

  • Если пакет соответствует критерию функции отбора для второго пакета, первое значение One-Way-Delay вычитается из второго, давая значение ipdv для пары пакетов. В ином случае продолжается генерация потока пакетов Type-P, пока не будет выполнен критерий или достигнуто время I2 (что раньше).

  • Если один или оба пакета не приходят к получателю в разумное время, ipdv считается неопределённым.

2.7. Ошибки и погрешности

При одиночных измерениях ipdv факторы, влияющие на измерение совпадают с факторами влияния на измерение One-Way-Delay, хотя само влияние может отличаться.

В модели [1] даны общие рекомендации на сей счёт, а здесь отмечены аспекты, связанные с показателями задержки.

  • Ошибки и погрешности, связанные с погрешностями часов хостов Src и Dst.

  • Ошибки и погрешности, связанные с разницей времени в линии (wire time) и на хосте (host time).

Эти ошибки более подробно рассматриваются в последующих параграфах.

2.7.1. Ошибки и погрешности, связанные с часами

Если в первом приближении ошибка, влияющая на первое измерение One-Way-Delay совпадает с ошибкой при втором измерении, они скомпенсируют друг друга при расчёте ipdv. Остаточной ошибкой, связанной с часами, будет разница ошибки в момент T1 (первое измерение) и T2 (второе измерение). Синхронизация, перекос, точность и шаг (разрешение) часов рассмотрены ниже.

  • Ошибки синхронизации источника и получателя вносят вклад в ошибку обоих измерений для расчёта ipdv.

  • Влияние дрейфа и перекоса при измерении ipdv можно оценить следующим образом. Предположим, что функции перекоса и дрейфа известны, а также предположим, что перекос линейно изменяется со временем. Тогда смещение часов также будет функцией времени и ошибку можно оценить как e(t) = K*t + O, где K — константа, а O — смещение в момент 0. В этом случае ошибка при определении разности двух временных меток (t2 > t1) составит e(t2)-e(t1) = K*(t2 — t1) и будет вноситься в разность (t2 — t1). Если дрейф нельзя игнорировать, но предполагается, что он линеен во времени, перекос задаётся значением s(t) = M*(t2) + N*t + S0, где M и N — константы, а S0 — перекос в момент 0. Ошибка, добавляемая меняющимся перекосом и дрейфом, в этом случае составит e(t) = O + s(t), а ошибка в разности временных меток — e(t2)-e(t1) = N*(t2-t1) + M*{(t2-t1)2}.

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

  • В части точности и дискретности часов замечания документа для односторонней задержки [2] (параграф 3.7.1) применимы и здесь с дополнительным учётом дискретности часов, которая в данном случае вносит удвоенную погрешность по сравнению с одиночным измерением. Ошибки, вносимые этим эффектом, зачастую превышают ошибки, связанные с дрейфом.

2.7.2. Время в линии и время хоста — ошибки и погрешности

Содержимое параграфа 3.7.2 [2] применимо и в этом случае с учётом указанного ниже. Разность между временем хоста (Host-time) и линии (Wire-time) в общем случае можно разделить на две части, одна из которых является постоянной, другая — переменой. Ошибки измерения будет вносить лишь переменная часть, а постоянную можно исключить при расчёте ipdv. Однако в большинстве случаев эти части не известны точно.

3. Определения для выборки One-way-ipdv

Целью определения выборки является обеспечение возможности рассчитать статистику последовательных измерений ipdv. Определение одиночного измерения (singleton) применяется к потоку тестовых пакетов, сгенерированных в соответствии со стандартным псевдослучайным процессом Пуассона со средней скоростью поступления lambda. При необходимости интервал генерации потока можно поделить на субинтервалы, где может применяться определение одиночного измерения ipdv. Результатом этого является последовательность измерений ipdv, которую можно анализировать с помощью различных статистических процедур.

На основе определения одиночного показателя one-way-ipdv, определяется выборка таких одиночных измерений. Далее два пакета, требуемые для одиночного измерения называются парой.

3.1. Имя показателя

Type-P-One-way-ipdv-Poisson-stream

3.2. Параметры показателя

Src — IP- адрес хоста
Dst — IP- адрес хоста
T0 — время начала теста
Tf — время завершения теста
L — размер пакета в битах. Пакеты потока Type P, из которых берётся выборка показателя ipdv, должны иметь одинаковый размер.
F — функция выбора, однозначно определяющая в потоке пакеты для выборки.
I(i), I(i+1), i >=0 — пары значений времени, указывающих начало и завершения интервалов для потока пакетов, где выполняется измерение. I(0) >= T0 и предполагается, что при наибольшем индексе n выполняется I(n) <= Tf.
P — спецификация типа пакетов, помимо адресов отправителя и получателя.

3.3. Единицы измерения

Последовательность триплетов:

  • T1, T2 — время;

  • dT — действительное число или неопределённое число секунд.

3.4. Определение

Псевдослучайный процесс Пуассона определён так, что он начинается не позже T0, имеет среднюю скорость прибытия lambda и завершается не раньше Tf. Значения T(i) не меньше T0 и не больше Tf выбираются для генерации пакетов.

Каждый пакет, попадающий в один из субинтервалов I(i), I(i+1) тестируется для проверки соответствия критериям функции выбора F в качестве первого или второго пакета для расчёта ipdv. Субинтервалы можно определить так, чтобы можно было получить достаточное число одиночных измерений для достоверных статистических оценок.

Определённые выше триплеты времени передачи первого и второго пакета в каждом одиночном измерении, включённом в выборку, и ipdv указываются в секундах.

3.5. Обсуждение

Отметим сначала, что использование псевдослучайной последовательности не задаёт полностью значения времени и, следовательно, значений выборки. Для получения желаемого качества измерений нужен качественный генератор псевдослучайных чисел.

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

Показатели выборки лучше всего разъяснять на примерах. В качестве первого примера предположим, что функция отбора задаёт конечные значения для минимальной и максимальной задержки в одном направлении для каждого субинтервала. Можно определить непрерывные субинтервалы указанной фиксированной длительности и создать последовательность, каждый элемент которой описывается триплетом <времена передачи пакета с максимальной и минимальной задержкой, D(max)-D(min)>, определяемым для каждого субинтервала. Во втором примере функция отбора задаёт пакеты с индексами (порядковыми номерами), которые ниже заданной границы. В этом случае субинтервалы определяются временем передачи созданных пакетов, а последовательностью будет просто <T(i), T(i+1), D(i+1)-D(i)>, где D(i) указывает одностороннюю задержку i-го пакета в потоке.

Это определение выборки показателей охватывает определения, предложенные в [9] и [10].

3.6. Методика

Поскольку пакеты могут теряться или дублироваться, а также прибывать с нарушением исходного порядка, пары тестовых пакетов следует указывать порядковыми номерами. Для дубликатов следует учитывать лишь первую копию.

В остальном методика совпадает с методикой одиночных измерений с учётом того, что измерения повторяются.

3.7. Ошибки и погрешности

Применимы те же соображения, которые указаны для одиночных измерений. Псевдослучайный процесс Пуассона может вносить дополнительные ошибки, как отмечено в [2]. Это рассматривается в разделе 5.

4. Статистика для One-way-ipdv

Предлагается некоторая статистика, которая может давать полезные сведения при анализе пакетов, следующих от Src к Dst. Предполагается, что статистика рассчитывается для выборки ipdv разумного размера.

Цель состоит в определении возможных вариантов статистики для ipdv не для всех возможных вариантов, а лишь для предложенных или применяемых.

4.1. Потеря пакетов и статистика ipdv

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

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

4.2. Определение значений One-way-ipdv

Значения one-way-ipdv ограничены наличием минимального и максимального значения one-way-delay. В частности, односторонняя задержка ограничена сверху выбранным значением, по достижении которого пакет считается потерянным. Нижняя граница обусловлена распространением, передачей и задержками в транзитных узлах при условии отсутствия на пути очередей и меняющихся задержек на узлах. Обозначим верхнюю границу односторонней задержки U, а нижнюю — L, тогда значения one-way-ipdv могут быть лишь в (открытом) интервале (L-U, U-L).

В любом конечном интервале значение one-way-delay может меняться монотонно (не уменьшаясь или не увеличиваясь) или в обоих направлениях в пределах полуоткрытого интервала [L,U). Соответственно, в пределах этого интервала значения one-way-ipdv могут быть положительными, отрицательными или смешанными (включая 0).

Поскольку диапазон значений ограничен, one-way-ipdv не может расти или снижаться бесконечно. Предположим, например, что ipdv имеет положительный «прогон» (длинная последовательность положительных значений). В какой-то момент положительные значения должны приблизиться к 0, если односторонняя задержка остаётся конечной, поскольку иначе будет нарушена граница one-way-delay. Если такой прогон происходит неограниченно долго, среднее значение выборки (при отсутствии потерь) будет приближаться к 0 (поскольку значения one-way-ipdv должны приближаться к 0). Отметим однако, что это ничего не говорит о форме распределения или его симметрии. Кроме того, отметим, что на значительных интервалах среднее значение выборки one-way-ipdv может быть положительным, отрицательным или 0 в зависимости от ширины интервала [L,U).

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

4.3. Type-P-One-way-ipdv-percentile

Для данной выборки Type-P One-Way-ipdv и данного значения X от 0% до 100% X-й процентиль показывает долю значений в выборке ipdv, которые не меньше X. Следовательно, 50-й процентиль является медианой.

4.4. Type-P-One-way-ipdv-inverse-percentile

Для данной выборки Type-P-One-way-ipdv и значения Y — процент значений в выборке ipdv, которые не больше Y.

4.5. Type-P-One-way-ipdv-jitter

Хотя использование термина «дрожь» (jitter) не рекомендуется, он сохранился в имени показателя, следуя авторам [8]. В этом документе функция отбора указывает, что последовательные пакеты потока Type-P должны выбираться в качестве пар для расчёта ipdv. Затем берётся абсолютная величина значений ipdv в выборке. Авторы [8] используют полученную выборку, чтобы сравнить поведение двух разных алгоритмов планирования.

Альтернативный, но близкий способ расчёта вариаций дан в RFC 1889 [11]. Функция отбора здесь неявно представляет пары последовательных пакетов и вариация рассчитывается путём взятия абсолютных величин последовательности ipdv (как определено в этом документе) и применения экспоненциального фильтра с параметром 1/16 для генерации оценки (т. е. j_new = 15/16* j_old + 1/16*j_new).

4.6. Type-P-One-way-peak-to-peak-ipdv

В этом случае функция отбора для выборки Type-P-One-Way-ipdv указывает, что первым пакетом каждой пары должен быть пакет с максимальной задержкой Type-P-One-Way-Delay в каждом субинтервале, а вторым — пакет с минимальной задержкой Type-P-One-Way-Delay в каждом субинтервале. Результирующая последовательность значений представляет собой пиковую вариацию задержки в каждом субинтервале измерительного интервала.

5. Обсуждение синхронизации часов

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

5.1. Влияние ошибок синхронизации

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

Предположим, что измерение проводится между двумя системами и часы источника и получателя в момент 0 имеют относительный перекос s(0), а по завершении интервала измерений T — s(T). Предположим также, что часы имеют начальное смещение O (не 0).

Пусть пакеты передаются от источника к получателю за одинаковое время, тогда ipdv = 0 и разность временных меток от двух часов в действительности показывает лишь относительное смещение часов. Предположим, что в начале интервала измерения рассчитано значение ipdv для пары пакетов, а в конце интервала измерения — другое значение ipdv для иной пары пакетов. Пусть первое измерение охватывает интервал t1, а второе — t2. Тогда

   ipdv1 = s(0)*t1 + t1*(s(T)-s(0))/T
   ipdv2 = s(T)*t2 + t2*(s(T)-s(0))/T

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

Отметим, что в приведённом выше обсуждении прочие ошибки, включая различия между временем хоста и линии, а также вызванные извне разрывы отсчёта времени (например, корректировка часов), не принимались во внимание. В этом случае максимальная ошибка часов будет определяться максимальным относительным перекосом при самом продолжительном интервале между пакетами.

5.2. Оценка перекоса несинхронизированных часов

Если перекос линеен (т. е. s(t) = S * t при постоянном S), ошибка в значениях ipdv будет зависеть от используемого для расчётов интервала между пакетами. Если ti — интервал между парой пакетов, а Ti — средний для выборки интервал между пакетами, то s(Ti) = S * Ti. В случае постоянной задержки параметр перекоса S можно оценить на основе интервала между пакетами Ti и среднего для выборки значения ipdv. При таких допущениях значения ipdv можно скорректировать вычитанием из них значения S * ti.

Отмечено, что сдвиг (displacement) в результате перекоса не меняет формы распределения и, например, стандартное отклонение (Standard Deviation) не меняется. На искажение влияет дрейф даже в случаях, когда среднее значение дрейфа в конце измерений равно 0. Размер этого искажения ограничен влиянием суммарной вариации перекоса в течение интервала генерации пакетов (emission).

6. Вопросы безопасности

Показатель one-way-ipdv имеет такие же свойства безопасности, как one-way-delay [2] и наследует от указанного документа все соображения безопасности. Читателю следует обратиться к [2] для более подробного рассмотрения вопросов безопасности. Тем не менее, следует обратить внимание на отмеченные ниже вопросы.

6.1. Отказ в обслуживании

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

6.2. Приватность и конфиденциальность

Пакеты не включают пользовательских данных, поэтому проблем конфиденциальности не возникает.

6.3. Целостность

Могут быть также попытки нарушить измерения путём перенаправления или повреждения пакетов. Для сохранения действительности и неизменности пакетов в процессе передачи можно применять проверку подлинности и целостности пакетов.

7. Благодарности

Спасибо Merike Kaeo, Al Morton и Henk Uiterwaal за найденные ошибки и уточнение формулировок итогового документа.

Предыдущий крупный пересмотр этого документа стал результатом обсуждений по электронной почте с Mike Pierce, Ruediger Geib, Glenn Grotefeld, Al Morton. Для предыдущих редакций документа очень полезны были дискуссии с Ruediger Geib, Matt Zekauskas и Andy Scherer.

8. Литература

8.1 Нормативные документы

[1] Paxon, V., Almes, G., Mahdavi, J. and M. Mathis, «Framework for IP Performance Metrics», RFC 2330, February 1998.

[2] Almes, G. and S. Kalidindisu, «A One-Way-Delay Metric for IPPM», RFC 2679, September 1999.

[3] Bradner, S., «Key words for use in RFCs to indicate requirement levels», BCP 14, RFC 2119, March 1997.

8.2 Дополнительная литература

[4] ITU-T Recommendation Y.1540 (formerly numbered I.380) «Internet Protocol Data Communication Service — IP Packet Transfer and Availability Performance Parameters», February 1999.

[5] Demichelis, Carlo — «Packet Delay Variation Comparison between ITU-T and IETF Draft Definitions» November 2000 (in the IPPM mail archives).

[6] ITU-T Recommendation I.356 «B-ISDN ATM Layer Cell Transfer Performance».

[7] S. Keshav — «An Engineering Approach to Computer Networking», Addison-Wesley 1997, ISBN 0-201-63442-2.

[8] Jacobson, V., Nichols, K. and Poduri, K. «An Expedited Forwarding PHB», RFC 2598, June 1999.

[9] ITU-T Draft Recommendation Y.1541 — «Internet Protocol Communication Service — IP Performance and Availability Objectives and Allocations», April 2000.

[10] Demichelis, Carlo — «Improvement of the Instantaneous Packet Delay Variation (IPDV) Concept and Applications», World Telecommunications Congress 2000, 7-12 May 2000.

[11] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, «RTP: A transport protocol for real-time applications», RFC 1889, January 1996.

9. Адреса авторов

Carlo Demichelis
Telecomitalia Lab S.p.A
Via G. Reiss Romoli 274
10148 — TORINO
Italy
Phone: +39 11 228 5057
Fax: +39 11 228 5069
EMail: carlo.demichelis@tilab.com
 
Philip Chimento
Ericsson IPI
7301 Calhoun Place
Rockville, Maryland 20855
USA
Phone: +1-240-314-3597
EMail: chimento@torrentnet.com

10. Полное заявление авторских прав

Copyright (C) The Internet Society (2002). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспеченоInternet Society.


Перевод на русский язык

Николай Малых

nmalykh@protokols.ru

1В оригинале ошибочно указан параграф 1.3. См. https://www.rfc-editor.org/errata/eid6981. Прим. перев.

Рубрика: RFC | Оставить комментарий

RFC 3424 IAB Considerations for UNilateral Self-Address Fixing (UNSAF) Across Network Address Translation

Network Working Group                                     L. Daigle, Ed.
Request for Comments: 3424                   Internet Architecture Board
Category: Informational                                              IAB
                                                           November 2002

Соображения IAB по использованию UNSAF через NAT

IAB Considerations for UNilateral Self-Address Fixing (UNSAF) Across Network Address Translation

PDF

Статус документа

Этот документ содержит информацию для сообщества Internet и не задает каких-либо стандартов Internet. Документ может распространяться свободно.

Авторские права

Copyright (C) The Internet Society (2002). All Rights Reserved.

Аннотация

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

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

1. Введение

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

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

Имеются лишь эвристические и обходные попытки добиться нужного эффекта, но 100% решения не найдено. Поскольку устройства NAT могут динамически отзывать или менять преобразования, нужны периодические опросы или средства поддержки жизнеспособности (keep-alive). Использование этих обходных решений в протоколах IETF должно рассматриваться, как временная мера, и нужен поиск лучшего, архитектурного решения. Явное намерение заключается в отказе от всех обходных решений при появлении эффективной технической модели.

2. Архитектурные аспекты, воздействующие на системы UNSAF

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

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

  • Отсутствие уникальности нахождения «вне» (outside) NAT — возможны ситуации, когда нельзя сказать, где находится целевая конечная точка относительно инициатора — как клиенту UNSAF найти подходящий сервер UNSAF для отражения адреса? (см. Приложение C).

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

  • В отсутствие связи с промежуточным устройством (midcom3) нет способа направить входящие коммуникации через промежуточное устройство (транслятор NAT, межсетевой экран) с надлежащим контролем. Обходя NAT, механизмы UNSAF могут также (непреднамеренно) обходить механизмы защиты. Особая опасность заключается в том, что внутренние машины невольно раскрываются для вредоносных коммуникаций с внешней стороны, который межсетевой экран должен блокировать. Это совершенно неприемлемо в тех случаях, когда процесс UNSAF работает на машине, имеющей возможность действовать от имени нескольких других.

  • Предложенные обходные решения включают использование похожих на ping запросов для определения адреса, передаваемых от клиента UNSAF (инициатор) серверу UNSAF (ответчик), на которые тот отвечает по транспортному адресу инициатора, находясь в своей адресной области. Однако при использовании транспорта без организации явных соединений (например, UDP, IPsec ESP и т. п.) процесс UNSAF должен внимательно реагировать на смену отображения NAT для данного прикладного потока, поскольку это отображение может меняться непредсказуемо.

  • Если клиент UNSAF периодически пытается обновить или переоценить состояние трансляции, на клиенте и сервере UNSAF требуется поддержка информации о предполагаемом состоянии соединения, для того, чтобы управлять адресами.

  • Поскольку сервер UNSAF не интегрируется с устройством middlebox, он может лишь полагаться на прошлое поведение для предсказания будущего. Сервер не имеет специальной информации об эвристике трансляции адресов или воздействующих факторах.

  • Обмен данными становится более «хрупким» за счет введения других серверов (серверы UNSAF), которые нужны для успешных коммуникаций между участниками — растет число устройств «с общей судьбой», участвующих в коммуникациях.

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

  • вместо поиска адреса от внешнего устройства NAT, применимость решения может быть ограничена получением «самозаданного» адреса (self-address) от некого конкретного сервиса для использования исключительно с этим сервисом;

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

3. Практические вопросы

Из наблюдений за развернутыми сетями становится ясно, что разные реализации трансляторов NAT существенно отличаются по методам обработки разных случаев трафика и адресации.

Ниже перечислены некоторые из отмеченных особенностей поведения реализаций.

  • Трансляторы NAT могут отбрасывать фрагменты пакеты в обоих направлениях — без полных заголовков TCP/UDP устройство NAT может оказаться неспособным выполнить отображение и просто отбросит пакет.

  • Выпускаемые трансляторы NAT часто включают шлюзы приложений (ALG4), которые пытаются работать в зависимости от контекста по номерам портов отправителей и получателей. Поведение ALG может оказаться трудно предсказуемым и не всегда документировано.

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

  • Реализации NAT заметно различаются по способам обработки пакетов. Некоторые способны надежно работать лишь с пакетами TCP, но не UDP. Некоторые из пытающихся работать с UDP недостаточно аккуратно устанавливают таймеры старения потоков, значения которых могут меняться в широких пределах, делая поведение трансляторов непредсказуемым.

  • Смена выделенных адресов и портов может происходить достаточно часто — в трансляторах NAT номера портов меняются всякий раз или это не предсказуемо, несколько трансляторов NAT могут быть включены параллельно для распределения нагрузки и это может приводить к частой смене адресов IP.

4. Архитектурные аспекты

Отмечая упомянутые выше подходы, как краткосрочные решения, IAB надеется, что в предложениях будут явно решены перечисленные ниже вопросы.

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

  2. Описание стратегии и плана перехода. Лучшими краткосрочными решениями будут те, которые будет постепенно исчезать по мере развертывания подходящей технологии.

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

  4. Определение долгосрочных требований, обоснованные технические решения, поиск правильного долгосрочного решения.

  5. Обсуждение влияния отмеченных технических проблем на развернутые системы NAT и отчеты о результатах.

5. Вопросы безопасности

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

Приложение A. Члены IAB на момент создания документа

Harald Alvestrand

Ran Atkinson

Rob Austein

Fred Baker

Leslie Daigle

Steve Deering

Sally Floyd

Ted Hardie

Geoff Huston

Charlie Kaufman

James Kempf

Eric Rescorla

Mike St. Johns

Приложение B. Благодарности

В подготовке этого документа важную роль сыграли подробныt комментарии и предложения от Thomas Narten, Bernard Aboba, Keith Moore и James Woodyatt.

Исходный вариант документа был подготовлен, когда в состав IAB входили Steve Bellovin, Brian Carpenter, Jon Crowcroft, John Klensin и Henning Schulzrinne, которые внесли существенный вклад в создание документа.

Приложение C. Примеры NAT

C.1 Корпоративная сеть с NAT

На рисунке приведен пример ситуации, когда сложно описать, кто находится «снаружи» данной области адресации (связанной мостами NAPT). Такой вариант конфигурации может возникать в корпоративной среде, где разные подразделения используют свои подсети (каждая со своим пространством приватных адресов). Подразделения соединены между собой так, что они могут обмениваться данными через свои сети, но для доступа в Internet каждое использует свой транслятор NAPT с функциями МСЭ.

                             +---------+
                             | Box C   | (192.168.4.5)
                             +---+-----+
                                 |
---------------------------------+-------
                                 |
                                 | 192.168.3.0/24
                            +----+----+
                            | NAT 2   |
                            +----+----+
                                 | 10.1.0.0/32
                                 |
  -----+-------------------------+------------+----
       |                                      |
       |                                 +----+----+
       |                                 | Box B   | (10.1.1.100)
       |                                 +---------+
       |
  +----+----+
  | NAPT 1  | (10.1.2.27)
  +----+----+
       | 10.1.0.0/32
       |
   ----+-----+--
       |
       |
  +----+----+
  | Box A   | (10.1.1.100)
  +---------+

С точки зрения Box B адресом Box A будет 10.1.2.27 (внешний адрес транслятора). Однако с точки зрения Box C адрес Box A будет относиться к сети 192.168.3.0/24.

C.2 Пример реальной домашней сети

James Woodyatt представил приведенный ниже сценарий, основанный на реальных примерах продукции для домашних сетей:

  • пользователь подключается к Internet через оператора широкополосного доступа, используя, например, линию DSL, подключенную к устройству, совмещающему в себе функции модема DSL и маршрутизатора/МСЭ с поддержкой NAT;

  • такие устройства иногда поставляются со встроенными в ПО функциями автоматической настройки конфигурации и пользователь может воспринимать это, как часть услуг ISP;

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

  • в результате у пользователя возникают две области с приватными адресами — одна в проводной ЛВС, другая в беспроводной сети.

Более того, для основной масса пользователей слова «область адресов» (address realm) не значат ровным счетом ничего. Они просто хотят знать, почему сервер печати не доступен с беспроводного ноутбука. Протокол обнаружения устройств использует пакеты UDP с TTL=1, но это не имеет значения, поскольку все отклики будут отбрасываться транслятором NAT, не имеющим в своем составе ALG.

Адрес автора

Leslie Daigle

Редактор

Internet Architecture Board

IAB

EMail: iab@iab.org

Перевод на русский язык

Николай Малых

nmalykh@gmail.com

Полное заявление авторских прав

Copyright (C) The Internet Society (2002). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


1Network Address Translation.

2UNilateral Self-Address Fixing — односторонняя фиксация своего адреса.

3Middlebox communication.

4Application Layer Gateway — шлюз прикладного уровня.

Рубрика: RFC | Комментарии к записи RFC 3424 IAB Considerations for UNilateral Self-Address Fixing (UNSAF) Across Network Address Translation отключены

RFC 3392 Capabilities Advertisement with BGP-4

Network Working Group                                     R. Chandra
Request for Comments: 3392                          Redback Networks
Obsoletes: 2842                                           J. Scudder
Category: Standards Track                              Cisco Systems
                                                       November 2002

Анонсирование возможностей в BGP-4

Capabilities Advertisement with BGP-41

PDF

Статус документа

В этом документе содержится спецификация протокола, предложенного сообществу Internet. Документ служит приглашением к дискуссии в целях развития и совершенствования протокола. Текущее состояние стандартизации протокола вы можете узнать из документа Internet Official Protocol Standards (STD 1). Документ может распространяться без ограничений.

Авторские права

Copyright (C) The Internet Society (2002). All Rights Reserved.

Аннотация

В этом документе определяется новый дополнительный параметр2 Capabilities, который будет способствовать добавлению новых возможностей в протокол BGP путем анонсирования этих возможностей партнеру без разрыва соединения BGP.

Этот документ заменяет собой RFC 2842.

1. Введение

В настоящее время BGP-4 требует от узла BGP разрыва соединения с партнером при получении от того сообщения OPEN с одним или несколькими нераспознанными значениями дополнительных параметров. Это осложняет добавление новых возможностей в BGP.

2. Уровень требований

Ключевые слова необходимо (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не нужно (SHALL NOT), следует (SHOULD), не следует (SHOULD NOT), рекомендуется (RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе интерпретируются в соответствии с RFC 2119 [RFC2119].

3. Обзор

Когда узел BGP [BGP-4], поддерживающий анонсирование возможностей, передает своему партнеру сообщение OPEN, это сообщение может включать дополнительный параметр Capabilities. Данный параметр включает список возможностей, поддерживаемых узлом.

Узел BGP определяет поддерживаемые партнером возможности, проверяя список возможностей, включенных в дополнительный параметр Capabilities сообщения OPEN, которое данный узел получил от своего партнера.

Узел BGP, поддерживающий ту или иную возможность, может использовать ее при работе со своим партнером после того, как определит (как описано выше), что партнер также поддерживает эту возможность.

Узел BGP считает, что его партнер не поддерживает ту или иную возможность, если в ответ на сообщение OPEN с дополнительным параметром Capabilities приходит сообщение NOTIFICATION, содержащее Error Subcode = Unsupported Optional Parameter. В таких случаях узлу следует предпринять попытку заново организовать соединение BGP с этим партнером без использования дополнительного параметра Capabilities.

Если узел BGP, поддерживающий ту или иную возможность, определяет, что его партнер не поддерживает эту возможность, узел может передать партнеру сообщение NOTIFICATION и разорвать соединение с ним (см. параграф 5. Расширение для обработки ошибок). В поле Error Subcode этого сообщения следует поместить значение Unsupported Capability. В сообщение следует включать возможность (возможности), которая заставила узел передать это сообщение. Решение о передаче сообщения и разрыве соединения с партнером узел принимает по своему усмотрению. При разрыве соединения не следует предпринимать попытки его автоматического восстановления.

4. Дополнительный параметр Capabilities (тип 2)

Этот дополнительный параметр (Optional Parameter) используется узлом BGP для передачи своему BGP-партнеру списка поддерживаемых данным узлом возможностей.

+----------------------------+
| Capability Code (1 октет)  |
+----------------------------+
| Capability Length (1 октет)|
+----------------------------+
| Capability Value (перемен.)|
+----------------------------+

Параметр включает один или множество триплетов <Capability Code, Capability Length, Capability Value>, каждый из которых представляется в формате, показанном справа.

Краткое описание поле приведено ниже.

Capability Code (код возможности)

Capability Code представляет собой 1-октетное поле, однозначно идентифицирующее данную возможность.

Capability Length (размер)

Capability Length представляет собой 1-октетное поле, указывающее размер поля Capability Value в октетах.

Capability Value (значение)

Поле Capability Value имеет переменный размер и интерпретируется в зависимости от кода возможности (Capability Code).

Узлу BGP не следует включать в сообщения дубликаты возможностей с совпадающими значениями полей Capability Code, Capability Length, Capability Value. Отметим однако, что обработка дубликатов не требует специальных действий, поскольку дополнительный экземпляр возможности ничего не изменяет в списке анонсируемых возможностей.

Узлы BGP могут включать более одного экземпляра возможности (заданной значением Capability Code) с отличным от нуля значением поля Capability Length, но с разными значениями Capability Value (значения поля Capability Length могут совпадать или различаться). Обработка таких экземпляров определяется значением поля Capability Code и должна быть описана в документе, содержащем спецификации новой возможности.

5. Расширение для обработки ошибок

В этом документе определено новый субкод ошибки (Error Subcode) – Unsupported Capability (неподдерживаемая возможность) со значением 7. В поле данных (Data) сообщения NOTIFICATION следует включать список возможностей, которые вызвали генерацию этого сообщения. В этом случае каждая из включаемых в список возможностей кодируется так же, как в сообщении OPEN.

6. Согласование с IANA

В этом документе определен новый дополнительный параметр Capability с полем Capability Code. IANA поддерживает реестр значений Capability Code. Нулевое (0) значение Capability Code является резервным. Коды возможностей в диапазоне от 1 до 63 выделяются IANA путем согласования с IETF («IETF Consensus»), как описано в документе RFC 2434. Коды из диапазона 64 — 127 распределяются IANA в порядке поступления запросов (процедура «First Come First Served»), описанном в документе RFC 2434. Коды от 128 до 255 предназначены для приватного использования («Private Use»), как определено в RFC 2434.

7. Вопросы безопасности

Данное расширение не оказывает влияния на проблемы безопасности, связанные с протоколом BGP [Heffernan].

8. Благодарности

Авторы выражают свою признательность членам рабочей группы IDR за просмотр документа и комментарии.

9. Сравнение с RFC 2842

В дополнение к немногочисленным редакторским правкам данный документ проясняет вопросы обработки множества экземпляров одной возможности.

10. Литература

[BGP-4] Rekhter, Y. and T. Li, «A Border Gateway Protocol 4 (BGP-4)3«, RFC 1771, March 1995.

[Heffernan] Heffernan, A., «Protection of BGP Sessions via the TCP MD5 Signature Option», RFC 2385, August 1998.

[RFC2119] Bradner, S., «Key words for use in RFCs to Indicate Requirement Levels», BCP 14, RFC 2119, March 1997.

11. Адреса авторов

Ravi Chandra

Redback Networks Inc.

350, Holger Way

San Jose, CA 95134

EMail: rchandra@redback.com

John G. Scudder

Cisco Systems, Inc.

170 West Tasman Drive

San Jose, CA 95134

EMail: jgs@cisco.com


Перевод на русский язык

Николай Малых

nmalykh@protokols.ru

14. Полное заявление авторских прав

Copyright (C) The Internet Society (2002). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.

1Этот документ признан устаревшим и заменен RFC 5492. Прим. перев.

2Optional Parameter.

3Этот вариант спецификации признан устаревшим и заменен RFC 4271Прим. перев.

Рубрика: RFC | Оставить комментарий

RFC 3425 Obsoleting IQUERY

Network Working Group                                        D. Lawrence
Request for Comments: 3425                                       Nominum
Updates: 1035                                              November 2002
Category: Standards Track

Obsoleting IQUERY

Отмена IQUERY

PDF

Статус документа

Этот документ содержит спецификацию стандартного протокола, предложенного сообществу Internet, и служит приглашением к дискуссии в целях развития и совершенствования протокола. Текущее состояние стандартизации протокола можно узнать из документа Internet Official Protocol Standards (STD 1). Документ может распространяться свободно.

Авторские права

Copyright (C) The Internet Society (2002). All Rights Reserved.

Аннотация

Метод IQUERY для выполнения реверсного поиска в DNS, заданный в RFC 1035, не получил широкого распространения и обычно отключается там, где он реализован. То и другое отражает общий взгляд сообщества на неразумность данной концепции и предпочтительность широко распространённого подхода с запросами, использующими указатель (PTR), и записями обратного отображения. Этот документ обновляет RFC 1035.

1 — Введение

Как указано в RFC 1035 (параграф 6.4), операция IQUERY для запросов DNS применяется при поиске имён, связанных с данным значением. Значение указывается в разделе вопросов, а отклик помещается в раздел ответов в виде одного или нескольких триплетов тип-имя-класс (type, name, class).

Как отмечено в параграфе 6.4.3 [RFC1035], обработка реверсных запросов может вызывать на сервере достаточно высокую нагрузку. Серверу придётся выполнить исчерпывающий поиск в своей базе данных или поддерживать отдельную базу данных, в которой ключами служат значения основной базы данных. Оба этих подхода могут вызывать перегрузку ресурсов системы, особенно на серверах с полномочиями для миллионов имён. Пакеты откликов от таких мегасерверов могут быть чрезвычайно большими, легко достигая мегабайтных размеров. Например, использование IQUERY для поиска каждого домена, который передал полномочия одному из сервером имён крупного ISP может возвращать десятки тысяч триплетов в разделе ответов. Это можно легко использовать для атак с отказом в обслуживании.

Операторы серверов, в той или иной мере поддерживающих запросы IQUERY (например, серверов BIND 4), обычно предпочитают отключать такую поддержку. В основном это связано с ошибками в недостаточно протестированном коде или опасениями раскрыть слишком большие блоки имён из своих зон, например, в ответ на реверсные запросы MX.

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

Ни один из известных клиентов не применяет IQUERY для предоставления каких-либо значимых услуг. Единственная поддержка обратных отображений в Internet — это сопоставление адресов с именами, обеспечиваемое с помощью записей об указателях (PTR) в дереве in-addr.arpa, которое хорошо служит сообществу уже многие годы.

С учётом отмеченных факторов этот документ рекомендует официально отказаться от операции IQUERY для серверов DNS.

2 — Требования

Ключевое слово следует (SHOULD) в этом документе должно интерпретироваться в соответствии с BCP 14 (RFC 2119), а именно — могут быть причины для игнорирования определённого элемента, но при этом нужно понять и тщательно взвесить последствия такого отказа.

3 — Влияние на RFC 1035

Данный документ меняет определение кода операции (opcode) 1, исходно приведённое в параграфе 4.1.1 RFC 1035, и полностью переопределяет содержимое параграфа 6.4 в RFC 1035. Определение opcode 1 сейчас имеет вид

      1               an inverse query (IQUERY) (obsolete)

Текст параграфа 6.4 в RFC 1035 признается устаревшим. Заявление о применимости операции IQUERY приведено ниже.

Инверсные запросы с использованием операции IQUERY изначально были описаны как возможность поиска имён, связанных с определённой записью о ресурсе (Resource Record или RR). Реализация операции не была обязательной и не получила широкого распространения. Поэтому операция IQUERY признана устаревшей и в ответ на запрос IQUERY серверам имён следует возвращать отклик Not Implemented (не реализовано).

4 — Вопросы безопасности

Поскольку этот документ отменяет операцию, которая ранее была доступна, можно предположить, что кто-то мог применять её в качестве основы для правил защиты. Однако, поскольку наиболее логичным для такого правила в случае отсутствия отклика от сервера является отказ при проверке подлинности (полномочий), весьма маловероятно, что отменя поддержки IQUERY откроет какие-то «дыры» в защите.

Отметим, что при отказе от отмены IQUERY, защита откликов с помощью DNS Security (DNSSEC) становится крайне затруднительной без использования цифровых подписей «на лету».

5 — Взаимодействие с IANA

Код 1 для операции IQUERY следует окончательно вывести из употребления и не назначать новым операциям.

6 — Благодарности

Описанное здесь действие инициировал Olafur Gudmundsson. Matt Crawford, John Klensin, Erik Nordmark и Keith Moore внесли некоторые улучшения в формулировку обращения с устаревающей функциональностью, описанной как Internet Standard.

7 — Литература

[RFC1035] Mockapetris, P., «Domain Names — Implementation and Specification», STD 13, RFC 1035, November 1987.

[RFC2026] Bradner, S., «The Internet Standards Process — Revision 3», BCP 9, RFC 2026, October 1996.

[RFC2119] Bradner, S., «Key Words for Use in RFCs to Indicate Requirement Levels», BCP 14, RFC 2119, March 1997.

8 — Адрес автора

David C Lawrence
Nominum, Inc.
2385 Bay Rd
Redwood City CA 94063
USA
Phone: +1.650.779.6042
EMail: tale@nominum.com

9 — Полное заявление авторских прав

Copyright (C) The Internet Society (2002). All Rights Reserved.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


Перевод на русский язык

nmalykh@protokols.ru

Рубрика: RFC | Оставить комментарий