ICE(WebRTC)(あいす)
最終更新:2026/4/27
ICEは、WebRTCにおいて、ネットワークアドレス変換(NAT)やファイアウォールを透過し、ピア間の直接通信を確立するためのプロトコルである。
別名・同義語 WebRTC ICE
ポイント
ICEは、STUNとTURNという2つのプロトコルを組み合わせて利用することで、様々なネットワーク環境下での通信を可能にする。
ICEの概要
ICE(Interactive Connectivity Establishment)は、WebRTC(Web Real-Time Communication)における重要な要素技術の一つであり、ピアツーピア(P2P)通信を確立するためのフレームワークです。WebRTCは、ブラウザ間で音声、映像、データをリアルタイムに通信することを可能にするAPIですが、インターネット上の多くのデバイスは、NAT(Network Address Translation)やファイアウォールによって保護されています。これらのネットワーク環境下では、直接的なP2P通信は困難となるため、ICEがその役割を果たします。
ICEの動作原理
ICEは、以下の2つの主要なプロトコルを組み合わせて動作します。
- STUN (Session Traversal Utilities for NAT): STUNサーバーは、クライアントのパブリックIPアドレスとポート番号を特定するために使用されます。クライアントはSTUNサーバーにリクエストを送信し、自身のネットワークアドレス情報を取得します。
- TURN (Traversal Using Relays around NAT): TURNサーバーは、クライアント間の直接通信が不可能な場合に、中継サーバーとして機能します。クライアントはTURNサーバーを介してデータを送受信します。
ICEは、まずSTUNを使用して直接通信が可能かどうかを試みます。直接通信が不可能な場合は、TURNサーバーを使用して中継通信を行います。ICEは、これらの複数の通信経路を同時に試み、最適な経路を選択することで、信頼性の高いP2P通信を実現します。
ICEの利用例
ICEは、WebRTCを利用する様々なアプリケーションで使用されています。
- ビデオ会議: Google Meet、Zoomなどのビデオ会議アプリケーション
- オンラインゲーム: ブラウザベースのオンラインゲーム
- ファイル共有: ブラウザベースのファイル共有アプリケーション
ICEの課題
ICEは、NATやファイアウォールを透過するための効果的なプロトコルですが、TURNサーバーの運用コストや、TURNサーバーの負荷分散などが課題として挙げられます。