Манипуляции, зависящие от вида услуг
Flowspecs, Tspecs и Adspecs являются объектами, совершенно недоступными для RSVP; их содержимое определено в документах спецификации услуг. Для того чтобы манипулировать этими объектами процесс RSVP должен иметь в своем распоряжении следующие программы, зависящие от типа услуг.
- Сравнение спецификаций потоков
Compare_Flowspecs( Flowspec_1, Flowspec_2 ) ->
result_code
Возможный результат операции result_codes указывает: flowspecs равны, Flowspec_1 меньше, Flowspec_2 больше, flowspecs совместимы и можно вычислить LUB, или flowspecs не совместимы. Заметим, что, сравнивая две спецификации, мы косвенно сопоставляем Tspecs, которые они содержат. Хотя процесс RSVP не может сам осуществить разбор flowspec с целью извлечения Tspec, он может использовать вызов процедуры Compare_Flowspecs для косвенного вычисления Resv_Te.
LUB_of_Flowspecs( Flowspec_1, Flowspec_2 ) ->
Flowspec_LUB
GLB_of_Flowspecs( Flowspec_1, Flowspec_2 ) ->
Flowspec_GLB
Compare_Tspecs( Tspec_1, Tspec_2 ) -> result_code
Возможным результатом процедуры result_codes может быть: Tspecs равны или Tspecs не равны.
Sum_Tspecs( Tspec_1, Tspec_2 ) -> Tspec_sum
Этот вызов используется для вычисления Path_Te.
40. Приложение A. Определения объектов
C-типы определены для двух семейств адресов Интернет IPv4 и IPv6. Для работы с другими адресными семействами можно легко определить новый C-тип. Все неиспользуемые поля должны заполняться нулями и игнорироваться при получении .
Класс сессии
Класс сессии = 1.
- Объект IPv4/UDP SESSION: Класс = 1, C-тип = 1
Объект IPv6/UDP SESSION: Класс = 1, C-тип = 2
DestAddress
Уникастный или мультикастный IP-адрес места назначения сессии. Это поле не должно быть равно нулю.
Протокол Id
Идентификатор IP-протокола для потока данных. Это поле не должно быть равно нулю.
Флаги
0x01 = E_Police flag
Флаг E_Police используется в сообщениях Path для определения эффективного “края” сети, с целью организации управления трафиком.
Если ЭВМ отправитель сама не способна осуществлять управление трафиком, она установит этот бит в сообщениях Path, которые посылает. Первый узел, где RSVP имеется возможность управления трафиком (если это требуется), установит этот флаг равным нулю.
UDP/TCP порт места назначения сессии. Допустимо значение нуль, означающее отсутствие порта.
Класс RSVP_HOP
RSVP_HOP класс = 3.
Объект IPv4 RSVP_HOP: Класс = 3, C-Тип = 1
Объект IPv6 RSVP_HOP: Класс = 3, C-Тип = 2
Этот объект несет в себе IP-адрес интерфейса, через который последний RSVP-узел переслал это сообщение. Дескриптор логического интерфейса LIH (Logical Interface Handle) используется, для того чтобы различать логические выходные интерфейсы. Узел, получая LIH в сообщении Path, запоминает его величину и возвращает его в объектах HOP последующих сообщений Resv, посланных узлу, который сформировал LIH. LIH должен быть тождественно равен нулю, если не существует дескриптора логического интерфейса.
Класс INTEGRITY
INTEGRITY класс = 4.
Класс TIME_VALUES
TIME_VALUES класс = 5.
- Объект TIME_VALUES: Класс = 5, C-Тип = 1
Период обновления
Период таймаута обновления R, использованного для генерации этого сообщения (в миллисекундах).
Класс ERROR_SPEC
ERROR_SPEC класс = 6.
- Объект IPv4 ERROR_SPEC: Класс = 6, C-тип = 1
- Объект IPv6 ERROR_SPEC: Класс = 6, C-тип = 2
Поле адрес узла, где произошла ошибка является IP-адресом (IPv4 или Ipv6).
Флаги
0x01 = InPlace
Это значение поля флаги используется только для объектов ERROR_SPEC в сообщении ResvErr. Если флаг = 1, это указывает, что в узле, где произошла ошибка, установлено резервирование.
0x02 = NotGuilty
Это значение поля флаги используется только для объекта ERROR_SPEC в сообщении ResvErr. Это значение устанавливается для интерфейса в прикладной программе получателя. Если флаг имеет такой код, спецификация FLOWSPEC, которая вызвала ошибку, больше запрошенной получателем.
Код ошибки.Одно-октетное поле кода описания ошибки.
Значение ошибки
Двухоктетное поле, содержащее дополнительную информацию об ошибке.
Его содержимое зависит от типа ошибки. Значения поля код ошибки и значение ошибки приведены в приложении B (см. ниже).
Класс SCOPE = 7.
Этот объект содержит список IP-адресов, использованных для сообщений маршрутизации с произвольным выбором отправителей (wildcard) без петель. Адреса должны быть перечислены в возрастающем порядке.
- Объект IPv4 SCOPE: Класс = 7, C-тип = 1
Объект Ipv6 SCOPE: Класс = 7, C-тип = 2
Объект имеет ту же структуру, что и предыдущий, только для каждого адреса выделяется 16 байт.
Класс STYLE = 8.
- Объект STYLE: Класс = 8, C-тип = 1
Поле Флаги: 8 бит. (Пока не определены)
Вектор опций: 24 бита
Этот набор битовых полей определяет опции резервирования. Если в будущем будут добавлены новые опции, нужно будет ввести соответствующие поля в вектор опций со стороны младших разрядов. Если узел не распознает идентификатор стиля, он может интерпретировать ту часть вектора опций, которая ему известна, игнорируя новые незнакомые ему поля. Биты вектора опций определены (слева направо) следующим образом:
19 бит: Зарезервировано
2 бита: контроль совместного использования
00b: Зарезервировано
01b: Явное резервирование
10b: Распределенное резервирование
11b: Зарезервировано
3 бита: Управление выбором отправителя
000b: Зарезервировано
001b: Произвольный выбор (Wildcard)
010b: Прямой выбор (Explicit)
011b - 111b: Зарезервировано
Младшие биты вектора опций определяются стилем:
WF 10001b
FF 01010b
SE 10010b
Класс FLOWSPEC
Класс FLOWSPEC = 9.
- Зарезервировано (устарело) объект flowspec: Класс = 9, C-Тип = 1
- Объект Inv-serv Flowspec: Класс = 9, C-тип = 2
Содержимое и правила кодирования этого объекта описаны в документах, подготовленных рабочей группой int-serv [RFC 2210].
Класс FILTER_SPEC = 10.
- Объект IPv4 FILTER_SPEC: Класс = 10, C-тип = 1
Объект IPv6 FILTER_SPEC: Класс = 10, C-тип = 2
Объект имеет ту же структуру, что и предыдущий, только для каждого адреса выделяется 16 байт.
- Объект IPv6 Flow-label FILTER_SPEC: Класс = 10, C-тип = 3
SrcAddress. Это поле характеризует IP-адрес источника для ЭВМ отправителя.
Его значение не должно быть равно нулю.
SrcPort. UDP/TCP номер порта отправителя, или нуль, указывающий на отсутствие порта.
Метка потока. 24-битовое поле метки потока, определенной в IPv6. Этот код может использоваться классификатором пакетов для эффективной идентификации кадров, принадлежащих определенному потоку данных (отправитель-> место назначения).
Класс SENDER_TEMPLATE = 11.
- Объект IPv4 SENDER_TEMPLATE: Класс = 11, C-тип = 1
Определение то же, что и для объекта IPv4/UDP FILTER_SPEC.
- Объект IPv6 SENDER_TEMPLATE: Класс = 11, C-тип = 2
Определение то же, что и для объекта IPv6/UDP FILTER_SPEC.
- Объект метки потока IPv6 SENDER_TEMPLATE: Класс = 11, C-тип = 3
Класс SENDER_TSPEC = 12.
- Объект Intserv SENDER_TSPEC: Класс = 12, C-тип = 2
Содержимое и правила кодирования для этого объекта специфицированы в документах, подготовленных рабочей группой int-serv.
Класс ADSPEC = 13.
- Объект Intserv ADSPEC: Класс = 13, C-тип = 2
Содержимое и формат этого объекта специфицированы в документах, подготовленных рабочей группой int-serv.
Класс POLICY_DATA = 14.
- Объект POLICY_DATA: Класс = 14, C-тип = 1
Содержимое этого объекта будет определено в будущем.
Класс Resv_CONFIRM = 15.
- Объект IPv4 RESV_CONFIRM: Класс = 15, C-тип = 1
Объект характеризует 4-байтовый IP-адрес получателя (Ipv4).
- Объект IPv6 RESV_CONFIRM: Класс = 15, C-тип = 2
Объект характеризует 15-байтовый IP-адрес получателя (Ipv6).
Содержание раздела