跳到主要内容

3.1.1. Transport Mode (传输模式)

在传输模式下, AH 插入在 IP 头部之后和下一层协议头部 (例如, TCP, UDP, ICMP 等) 之前, 或者在已经插入的任何其他 IPsec 头部之前。在 IPv4 的上下文中, 这要求将 AH 放置在 IP 头部 (及其包含的任何选项) 之后, 但在下一层协议之前。(请注意, 术语 "传输" 模式不应被误解为仅限于 TCP 和 UDP 的使用。) 下图说明了典型 IPv4 数据包的 AH 传输模式定位, 基于 "应用前后" 的对比。

               BEFORE APPLYING AH
----------------------------
IPv4 |orig IP hdr | | |
|(any options)| TCP | Data |
----------------------------

AFTER APPLYING AH
-------------------------------------------------------
IPv4 |original IP hdr (any options) | AH | TCP | Data |
-------------------------------------------------------
|<- mutable field processing ->|<- immutable fields ->|
|<----- authenticated except for mutable fields ----->|

在 IPv6 的上下文中, AH 被视为端到端载荷 (end-to-end payload), 因此应该出现在逐跳 (hop-by-hop), 路由 (routing) 和分片 (fragmentation) 扩展头之后。目标选项 (destination options) 扩展头可以出现在 AH 头部之前或之后, 或者同时出现在 AH 头部之前和之后, 这取决于所需的语义。下图说明了典型 IPv6 数据包的 AH 传输模式定位。

                    BEFORE APPLYING AH
---------------------------------------
IPv6 | | ext hdrs | | |
| orig IP hdr |if present| TCP | Data |
---------------------------------------

AFTER APPLYING AH
------------------------------------------------------------
IPv6 | |hop-by-hop, dest*, | | dest | | |
|orig IP hdr |routing, fragment. | AH | opt* | TCP | Data |
------------------------------------------------------------
|<--- mutable field processing -->|<-- immutable fields -->|
|<---- authenticated except for mutable fields ----------->|

* = if present, could be before AH, after AH, or both

ESP 和 AH 头部可以以多种模式组合。IPsec 架构文档描述了必须支持的安全关联组合。

请注意, 在传输模式下, 对于安全架构文档中定义的 "bump-in-the-stack" 或 "bump-in-the-wire" 实现, 入站和出站 IP 分片可能需要 IPsec 实现执行额外的 IP 重组/分片, 以便既符合本规范又提供透明的 IPsec 支持。当使用多个接口时, 需要特别小心在这些实现中执行此类操作。