IP ヘッダーのあとに、ESP または AH を呼び出してデータグラムを保護するとき、これをトランスポートモードといいます。たとえば、パケットが次のように始まる場合です。
トランスポートモードで、ESP は次のようにデータを保護します。
トランスポートモードでは、AH は次のようにデータを保護します。
AH はデータがデータグラムに出現する前に、実際データを保護します。その結果、AH による保護は、トランスポートモードでも、IP ヘッダーの一部をカバーします。
データグラム全体が IPsec ヘッダーの保護下にあるとき、これをトンネルモードといいます。AH はその前にあるほとんどの IP を保護するため、トンネルモードは通常は ESP だけで実行します。先の例のデータグラムは、次のようにトンネルモードで保護されます。
トンネルモードでは、外部 (保護されていない) IP ヘッダーのソースアドレスと宛先アドレスが、内部 (保護されている) IP ヘッダーのものと異なることがよくあります。それでも、IPsec-aware ネットワークプログラムで ESP 付きの自己カプセル化を使用すれば、内部と外部の IP ヘッダーを一致させることができます。これは、ESP で保護する必要のある IP ヘッダーオプションの場合に行われます。
IPsec の Solaris 実装は基本的にトランスポートモード IPsec 実装であり、トンネルモードはトランスポートモードの特殊ケースとして実装されます。そのため、IP-in-IP トンネルを特殊なトランスポートプロバイダとして処理します。ifconfig(1M) 設定オプションを使用してトンネルを設定する場合、オプションは、ソケットのプログラミングでソケットごとの IPsec を使用可能にするときに使用するオプションとほぼ同じです。また、トンネルモードは、ソケットごとの IPsec で使用可能にできます。