インタラクティブ接続確立( ICE ) は、コンピュータ ネットワークで使用される技術で、ピアツーピアネットワークで 2 台のコンピュータが可能な限り直接的に通信する方法を見つけるために使用されます。これは、 Voice over Internet Protocol (VoIP)、ピアツーピア通信、ビデオ、インスタント メッセージングなどのインタラクティブ メディアで最もよく使用されます。このようなアプリケーションでは、中央サーバーを介した通信は遅くてコストがかかりますが、インターネット上のクライアント アプリケーション間の直接通信は、ネットワーク アドレス変換(NAT)、ファイアウォール、およびその他のネットワーク障壁のために非常に困難です。
ICEはインターネット技術特別調査委員会MMUSICワーキンググループによって開発され、2018年8月現在RFC 8445として公開されており[1]、RFC 5245 [2]とRFC 4091 [3]は廃止されています。
概要
ネットワーク アドレス変換(NAT) は、インターネット プロトコル バージョン 4の使用可能なアドレス プールの枯渇を遅らせる効果的な手法になりました。このプールは、本質的に約 40 億の一意のアドレスに制限されています。NAT ゲートウェイは、プライベート ネットワークからの送信要求を追跡し、確立された各接続の状態を維持して、後でパブリック ネットワーク上のピアからプライベート ネットワーク内のピアへの応答を直接送信します。この応答は、直接アドレス指定することはできません。
VoIP、ピアツーピア、および他の多くのアプリケーションでは、インターネット プロトコル パケット ヘッダーだけでなく、接続のデータ ストリーム内で通信ピアのアドレス情報が必要です。たとえば、セッション開始プロトコル(SIP)は、ロケーション サービスに登録するためのネットワーク クライアントのIP アドレスを伝達し、電話呼び出しを登録済みクライアントにルーティングできるようにします。ICE は、通信ピアがパブリック IP アドレスを検出して伝達し、他のピアが到達できるようにするフレームワークを提供します。
Session Traversal Utilities for NAT (STUN) は、NAT 分類を含むアドレス検出のための標準化されたプロトコルです。Traversal Using Relays around NAT (TURN) は、ピア間の直接メディア トラフィックがファイアウォールによって許可されていない場合に、サードパーティ サーバーを配置して 2 つのクライアント間でメッセージを中継します。
IETF仕様
- RFC 5389: NAT 用のセッション トラバーサル ユーティリティ (STUN)。
- RFC 8656: NAT を迂回するリレーを使用したトラバーサル (TURN): STUN へのリレー拡張。
- RFC 6544: インタラクティブ接続確立 (ICE) を備えた TCP 候補
- RFC 8445: インタラクティブ接続確立 (ICE): ネットワーク アドレス変換 (NAT) トラバーサルのプロトコル
参照
- レルム固有の IP (RSIP)
- ミドルボックス(ミドルボックス コミュニケーションまたは MIDCOM)
- ユニバーサル プラグ アンド プレイ(UPnP)
- NAT ポート マッピング プロトコル(NAT-PMP)
- ポート制御プロトコル(PCP)
- ウェブRTC
参考文献
- ^ RFC 8445、インタラクティブ接続確立 (ICE): ネットワーク アドレス変換 (NAT) トラバーサルのプロトコル、A. Keranen、C. Holmberg Ericsson、J. Rosenberg (2018 年 7 月)
- ^ RFC 5245、インタラクティブ接続確立 (ICE): オファー/アンサー プロトコルのネットワーク アドレス変換 (NAT) トラバーサルのプロトコル、J. Rosenberg (2010 年 4 月)
- ^ RFC 4091、セッション記述プロトコル (SDP) グループ化フレームワークの代替ネットワーク アドレス タイプ (ANAT) セマンティクス、G. Camarillo、J. Rosenberg (2005 年 6 月)
外部リンク
- ICEに関するIETFジャーナルの記事
- MMUSICワーキンググループ
- BEHAVEワーキンググループ
- PJNATH - オープンソースの ICE、STUN、TURN ライブラリ。2020 年 11 月 11 日にWayback Machineにアーカイブされました。
- libnice: GLib ICE ライブラリ
- libjuice: オープンソースの UDP ICE ライブラリ
- coturn: TURN および STUN サーバーのオープンソース実装
