1. Introduction (はじめに)
インタラクティブ接続確立 (Interactive Connectivity Establishment, ICE) [RFC8445]は、リアルタイムトランスポートプロトコル (Real-time Transport Protocol, RTP) [RFC3550]のようなメディアプロトコルが、ネットワークアドレス変換器 (Network Address Translators, NAT)およびその他の中間ネットワーク要素の存在下でピア間のIPセッションを確立および維持できるようにするメカニズムを定義しています。ICEでは、候補(通信に使用できる可能性のあるトランスポートアドレス)がICEエージェントによって収集され、その後、通信セッションを確立する試みが実際に行われる前に完全に交換されます。
IPv6ネットワークが必要な場合、この手順の全体的な遅延は大きくなる可能性があります。また、一方または両方のエージェントに複数のネットワークインターフェース(例:ワイヤレスおよび有線)があり、単一のインターフェースに複数のアドレス(例:IPv4とIPv6)があり、STUN (Session Traversal Utilities for NAT) [RFC5389]またはTURN (Traversal Using Relays around NAT) [RFC5766]トラバーサルを使用するように設定されていることも一般的です。このようなシナリオでは、収集に相当な時間がかかる可能性があり、ユーザーおよびアプリケーションの観点から、コール全体の確立が長くなります。
このドキュメントで定義されている「Trickle ICE」プロトコルは、ICEを拡張することでセッション確立の遅延を削減します。ICEエージェントが利用可能になったときに候補情報を送信できるようにします(したがって「trickle」という用語、「滴る」または「徐々に流れる」を意味します)。このようにして、ICEエージェントは、ピアがすべての候補を収集するのを待つことなく、ピアから受信した候補との接続性チェックを即座に開始できます。
Trickle ICEは、いくつかのモードとそれらの使用を管理するルールも指定します。「Full Trickle」(フルトリクル)は最も一般的な動作モデルであり、ICEエージェントは候補を段階的または一度にすべて交換することを選択できます。「Half Trickle」(ハーフトリクル)は、一方のエージェントが候補を完全に交換し、もう一方のエージェントが段階的な候補交換に従事するモードです。このモードは、両方の当事者がこのプロトコルをサポートしているかどうかが不明なシナリオで特に役立ちます。
この仕様は、ICEエージェントの動作のみを定義し、候補収集メカニズム、および候補がICEエージェント間でどのように送信されるかの詳細には影響しません。ICE全般と同様に、この仕様はフォーマットとセマンティクスに焦点を当て、トランスポート方法には焦点を当てません。そのような特定の使用は別途定義されます(例えば、[RFC8840]はSIP [RFC3261]での使用を定義し、[XEP-0176]はXMPP [RFC6120]での使用を定義します)。