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

Appendix A. Lite and Full Implementations (Lite 実装と Full 実装)

ICE は 2 種類の実装を可能にします。Full 実装は、セッションにおける controlling および controlled の役割をサポートし、アドレス収集も実行できます。対照的に、Lite 実装は、STUN チェックに応答する以外はほとんど何もしない最小限の実装です。

ICE がいずれかのエンドポイントに利益をもたらすには、両方のエンドポイントが ICE をサポートする必要があるため、ネットワークへの ICE の段階的な導入はより複雑になります。多くのセッションには、それ自体が NAT の背後になく、NAT トラバーサルを心配しないエンドポイントが含まれます。非常に一般的なケースは、NAT トラバーサルを必要とするエンドポイント(VoIP ハードウェア電話やソフトフォンなど)が、これらのデバイスの 1 つに電話をかける場合です。電話が Full ICE 実装をサポートしていても、他のデバイスがサポートしていなければ、ICE はまったく使用されません。Lite 実装は、これらのデバイスに低コストのエントリーポイントを提供します。これらが Lite 実装をサポートすると、Full 実装はそれらに接続し、ICE の完全な利点を得ることができます。

その結果、Lite 実装は、常に パブリックインターネットに接続され、任意の通信相手からパケットを受信できるパブリック IP アドレスを持つデバイスにのみ適しています。Lite 実装が NAT の背後に配置されている場合、ICE は機能しません。

ICE では、Lite 実装が単一の IPv4 host 候補と複数の IPv6 アドレスを持つことができます。その場合、候補ペアは、この仕様で推奨されている RFC 3484 のような静的アルゴリズムを使用して、controlling エージェントによって選択されます。ただし、静的なアドレス選択メカニズムは、実際のトポロジを反映できず、接続性を実際に保証することもできないため、常にエラーが発生しやすくなります。これらは常にヒューリスティックです。したがって、エージェントが IPv4 アドレスと IPv6 アドレスの選択のみを目的として ICE を実装しており、IP アドレスのいずれも NAT の背後にない場合でも、可能な限り最も堅牢なアドレス選択形式を提供するために、Full ICE の使用が依然として RECOMMENDED されます。

Lite 実装が Full 実装への足がかりを提供するためにこの仕様に追加されたことに注意することが重要です。単一の IPv4 アドレスだけで常にパブリックインターネットに接続されているデバイスであっても、達成可能であれば Full 実装が望ましいです。Full 実装では、ICE の aggressive モードを使用できるため、コールセットアップ時間が短縮されます。Full 実装は、NAT トラバーサルとは無関係な ICE のセキュリティ上の利点も得られます。特に、セクション 18 で説明されている voice hammer 攻撃は、Lite ではなく Full 実装に対してのみ防止されます。最後に、今日パブリックアドレスを持っているデバイスが、明日には NAT の背後にあるネットワークに配置されることがよくあります。デバイスまたは製品の寿命を通じて、常にパブリックインターネットで使用されることを確実に知ることは困難です。Full 実装は、通信が常に機能することを保証します。