メインコンテンツまでスキップ

1. Introduction (はじめに)

RFC 3264 [RFC3264] は、マルチメディアセッションの確立を目的とした Session Description Protocol (SDP) メッセージ [RFC4566] の2段階の交換を定義しています。このオファー/アンサーメカニズムは、Session Initiation Protocol (SIP) [RFC3261] などのプロトコルで使用されます。

オファー/アンサーを使用するプロトコルは、ネットワークアドレス変換器 (NAT) を介して操作するのが困難です。それらの目的はメディアパケットのフローを確立することであるため、メッセージ内にメディアソースとシンクの IP アドレスとポートを運ぶ傾向があり、これは NAT を介する場合に問題があることが知られています [RFC3235]。また、これらのプロトコルは、参加者間にアプリケーション層の仲介者が存在しないように、参加者間で直接メディアフローを作成しようとします。これは、メディアの遅延を減らし、パケット損失を減らし、アプリケーションの展開にかかる運用コストを削減するために行われます。しかし、これは NAT を介して達成するのが困難です。この理由の完全な扱いは、この仕様の範囲を超えています。

これらのプロトコルが NAT を介して動作できるようにするために、多数のソリューションが定義されています。これらには、アプリケーション層ゲートウェイ (ALG)、ミドルボックス制御プロトコル [RFC3303]、元の Simple Traversal of UDP Through NAT (STUN) [RFC3489] 仕様、および Realm Specific IP [RFC3102] [RFC3103] と、それらを機能させるために必要なセッション記述拡張、たとえば Real Time Control Protocol (RTCP) [RFC3605] のための Session Description Protocol (SDP) [RFC4566] 属性などが含まれます。残念ながら、これらの手法にはすべて長所と短所があり、特定のネットワークトポロジでは最適ですが、他のトポロジでは不適切な選択となります。その結果、管理者や実装者は、ソリューションが展開されるネットワークのトポロジについて仮定を行っています。これにより、システムに複雑さと脆弱性が導入されます。必要なのは、あらゆる状況でうまく機能するほど柔軟な単一のソリューションです。

この仕様は、オファー/アンサーモデルによって確立された UDP ベースのメディアストリーム (ただし、ICE は TCP [ICE-TCP] などの他のトランスポートプロトコルを処理するように拡張できます) のための NAT トラバーサルの手法として、Interactive Connectivity Establishment (ICE) を定義します。ICE はオファー/アンサーモデルの拡張であり、SDP オファーとアンサーに複数の IP アドレスとポートを含め、ピアツーピア接続チェックによって接続性をテストすることで機能します。SDP に含まれる IP アドレスとポート、および接続チェックは、現在 Session Traversal Utilities for NAT と改名された改訂された STUN 仕様 [RFC5389] を使用して実行されます。新しい名前と新しい仕様は、元の STUN 仕様のようにスタンドアロンの NAT トラバーサルソリューションとしてではなく、他の NAT トラバーサル手法 (つまり ICE) と共に使用されるツールとしての新しい役割を反映しています。ICE はまた、STUN の拡張である Traversal Using Relays around NAT (TURN) [RFC5766] も利用します。ICE は各メディアストリームに対して複数の IP アドレスとポートを交換するため、マルチホームおよびデュアルスタックホストのアドレス選択も可能になり、この理由から RFC 4091 [RFC4091] および [RFC4092] は廃止されます。