3.3.1. Субструктура предложения
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 0 (last) or 2 ! RESERVED ! Proposal Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Proposal # ! Protocol ID ! SPI Size !# of Transforms!
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ SPI (variable) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! !
~ <Transforms> ~
! !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Рисунок 7: Субструктура Proposal
- 0 (последнее) или 2 (не последнее) (1 октет) — показывает, является ли предложение последним в субструктуре предложений элемента SA. Синтаксис унаследован от ISAKMP, не это поле не является необходимым, поскольку последнее предложение можно идентифицировать по размеру SA. Значение 2 соответствует типу элемента Proposal в IKEv1 и первые четыре октета структуры Proposal организованы так, чтобы они выглядели, подобно заголовку Payload.
- Резерв (1 октет) — должно устанавливаться в 0 при передаче и игнорироваться на приеме.
- Proposal Length (2 октета) — размер данного предложения, включая все входящие в него преобразования и атрибуты.
- Proposal # (1 октет) — номер предложения. Первое предложение в элементе SA должно иметь номер 1, а номера последующих должны совпадать с номером предшественника (И — пересечение двух предложений) или быть на 1 больше (ИЛИ — объединение двух предложений). Когда предложение принимается, все номера предложений в элементе SA должны совпадать и соответствовать номеру переданного предложения, которое было принято.
- Protocol ID (1 октет) — Задает идентификатор протокола IPsec для текущего согласования. Определенные значения идентификаторов показаны в таблице.
Protocol |
Protocol ID |
Резерв |
0 |
IKE |
1 |
AH |
2 |
ESP |
4 |
Резерв IANA |
4 - 200 |
Частное применение |
201 - 255 |
- SPI Size (1 октет) — для начального согласования IKE_SA это поле должно иметь нулевое значение; значение SPI получается из внешнего заголовка. При последующих согласованиях это поле показывает размер (в октетах) SPI для соответствующего протокола (8 для IKE, 4 для ESP и AH).
- # of Transforms (1 октет) — показывает число преобразований в данном предложении.
- SPI (переменный размер) — SPI передающей стороны. Даже если значение SPI Size не кратно 4, для элементов данных не используется заполнения. При нулевом значении SPI Size это поле не включается в элемент SA.
- Transforms (переменный размер) — одна или множество субструктур преобразований.