WebRTC(Web Real-Time Communication)は、ブラウザやアプリケーション間で音声、映像、データをリアルタイムに送受信するためのオープンソースプロジェクトであり、プラグインなしでP2P通信を実現します。この技術の核心となるのが、NATやファイアウォールを越えて接続を確立するためのプロトコル群です。
ICE(Interactive Connectivity Establishment)は、これらのプロトコルを統合的に管理するフレームワークです。ICEは複数の接続候補を収集し、最適な通信経路を選択する役割を担います。まずホスト候補(ローカルIPアドレス)を収集し、次にSTUNサーバーを利用してサーバーリフレクシブ候補(公開IPアドレス)を取得します。STUN(Session Traversal Utilities for NAT)は、NAT背後のデバイスが自分の公開アドレスを発見するための軽量プロトコルであり、RFC 8489で標準化されています。
直接接続が不可能な場合、ICEはTURN(Traversal Using Relays around NAT)サーバーをリレー候補として使用します。TURNはRFC 8656で標準化され、メディアストリームをサーバー経由で中継することで、対称NATなどの厳格なネットワーク環境でも通信を可能にします。これらの候補が収集されると、ICEは接続性チェックを実行し、最も効率的な経路を選択します。
セキュリティ面では、DTLS(Datagram Transport Layer Security)がUDP上で暗号化鍵交換を行い、SRTP(Secure Real-time Transport Protocol)がメディアストリームの暗号化を担当します。2025年3月には、WebRTCのHTTPベースインジェストを標準化するWHIP(RFC 9725)が発表され、ライブストリーミング配信の簡素化が進んでいます。これらの技術はW3CとIETFによって継続的に標準化され、現代のリアルタイム通信インフラの基盤となっています。