3. Обработка идентификационного заголовка AH
3.1. Местоположение AH
AH может работать в двух режимах — транспортном и туннельном. Более подробное описание этих режимов и рекомендации по выбору приводится в документе, посвященном архитектуре защиты.
3.1.1. Транспортный режим
В транспортном режиме AH помещается между заголовком IP и заголовком протокола следующего уровня (например, TCP, UDP, ICMP и т.п.) или перед другими заголовками IPsec, если они имеются. В контексте IPv4 это говорит о размещении AH после заголовка IP (и всех опций этого заголовка), но перед заголовком протокола следующего уровня.
На рисунке показан заголовок типичного пакета IPv4 до защиты и положение заголовка AH при работе в транспортном режиме:
До применения AH
----------------------------
IPv4 |Исх. заг. IP | | |
| (опции) | TCP | Data |
----------------------------
После применения AH
-------------------------------------------------------
IPv4 |Исходный заголовок IP (опции) | AH | TCP | Data |
-------------------------------------------------------
|<- Обраб. переменного поля -->|<-- неизменые поля -->|
|<------ идентифицировано кроме перемен. полей ------>|
В контексте IPv6 заголовок AH представляется, как передаваемые «насквозь» данные и, следовательно, ему надлежит размещаться после заголовков расширения (hop-by-hop, routing, fragmentation). Опции получателя в расширенном заголовке могут располагаться перед заголовком AH, после него или по обе стороны, в зависимости от желаемой семантики. На приведенном ниже рисунке показано размещение AH для транспортного режима в типичном пакете IPv6.
До применения AH
---------------------------------------
IPv6 | | расш. заг| | |
| Исх. заг. IP|если есть | TCP |Данные|
---------------------------------------
После применения AH
------------------------------------------------------------
IPv6 | |hop-by-hop, dest*, | | dest | | |
| Исх. заг. IP|routing, fragment. | AH | opt* | TCP | Data |
------------------------------------------------------------
|<--- Обраб. переменного поля --->|<--- неизменые поля --->|
|<-------- идентифицировано кроме перемен. полей --------->|
* = при наличии может располагаться перед AH, после AH или в обоих местах