RFC: 3032
Оригинал: MPLS Label Stack Encoding
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , , , ,
Перевод: Мельников Дмитрий Анатольевич

2. Набор маркеров

2.1. Кодирование набора маркеров

Набор маркеров представляет собой последовательность «записей набора маркеров». Каждая запись в наборе включает четыре байта (рис. 1).

| 0                                  19 | 20             22 |23 | 24         31 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Значение маркера            | Экспериментальные | S | «Время жизни» |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Рис. 1. Формат записи набора маркеров

Записи в наборе маркеров начинаются после протокольных заголовков канального уровня, но заканчиваются перед протокольными заголовками сетевого уровня. Вначале идут верхние записи набора, а нижняя запись в наборе является его окончанием. Пакет сетевого уровня следует сразу же за записью набора маркеров, в которой бит «S» установлен в единицу.

Каждая запись набора маркеров включает следующие поля:

  1. Бит «S» (окончание набора маркеров)

    Этот бит указывает на окончание набора маркеров, если он установлен в «1». Если же он нулевой, то за этой записью набора ещё будут следовать записи.

  2. «Время жизни» (Time to Live, TTL)

    Это 8-битовое поле используется для кодирования TTL-значения.

  3. «Экспериментальное поле» (3 бита)

    Это 3-битовое поле зарезервировано для экспериментальных исследований.

  4. «Значение маркера потока» (20 бит)

    Это 20-битовое поле содержит реальное значение маркера потока.

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

    1. следующий ретрансляционный участок, по которому будет далее транслироваться IP-пакет;

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

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

    1. Значение «0» представляет собой «явный нулевой маркер для IPv4-протокола» (IPv4 explicit NULL label). Это значение может располагаться только (и только) на самом нижнем уровне набора маркеров. Оно указывает на то, что набор маркеров должен быть удалён, а дальнейшая доставка IP-пакета, должна осуществляться на основе IPv4-заголовка.

    2. Значение «1» представляет собой «маркер-предупреждение для маршрутизатора» (router alert label). Этот маркер может располагаться на любом, кроме самого нижнего, уровне набора маркеров. Если полученный IP-пакет содержит, на самом верхнем уровне набора, маркер с таким значением, то он должен быть обработан локальным программным модулем. Реальная доставка IP-пакета определяется маркером, расположенным ниже этого маркера в наборе. Однако, если IP-пакет направляется дальше, то целесообразно перед отправкой вставить «маркер-предупреждение» обратно в набор маркеров. Использование такого маркера аналогично использованию дополнительной функции в IP-пакетах «функция предупреждения для маршрутизатора» (router alert option, RFC-2113[?]). Так как этот маркер не может размещаться на самом нижнем уровне набора маркеров, он никак не связан с каким-либо протоколом сетевого уровня.

    3. Значение «2» представляет собой «явный нулевой маркер для IPv6-протокола» (IPv6 explicit NULL label). Это значение может располагаться только (и только) на самом нижнем уровне набора маркеров. Оно указывает на то, что набор маркеров должен быть удалён, а дальнейшая доставка IP-пакета, должна осуществляться на основе IPv6-заголовка.

    4. Значение «3» представляет собой «неявный нулевой маркер» (implicit NULL label). Такой маркер назначается и распространяется LSR-маршрутизаторами, но никогда не подвергается процедуре повторного обрамления. Если LSR-маршрутизатору следует заменить маркер верхнего уровня в наборе на новый маркер, а новым маркером является неявный нулевой маркер, то LSR-маршрутизатор просто удалит весь набор маркеров вместо возможной замены маркеров. Несмотря на то, что это значение маркера никогда не может быть подвергнуто повторному обрамлению, это необходимо отразить в LDP-протоколе, т.е. это значение зарезервировать.

    5. Значения «4…15» зарезервированы.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.