Zum Hauptinhalt springen

1. Introduction (Einleitung)

Das Interactive Connectivity Establishment (ICE)-Protokoll [RFC8445] beschreibt, wie ein ICE-Agent Kandidaten sammelt, Kandidaten mit einem Peer-ICE-Agent austauscht und Kandidatenpaare erstellt. Sobald die Paare gesammelt wurden, führt der ICE-Agent Konnektivitätsprüfungen durch und nominiert und wählt schließlich Paare aus, die zum Senden und Empfangen von Daten innerhalb einer Kommunikationssitzung verwendet werden.

Das Befolgen der Verfahren in [RFC8445] kann zu etwas längeren Aufbauzeiten für Kommunikationssitzungen führen, da das Sammeln von Kandidaten häufig das Abfragen von Session Traversal Utilities for NAT (STUN)-Servern [RFC5389] und das Zuweisen von Relay-Kandidaten auf Traversal Using Relay NAT (TURN)-Servern [RFC5766] umfasst. Obwohl viele ICE-Verfahren parallel durchgeführt werden können, müssen die Taktanforderungen (Pacing Requirements) aus [RFC8445] weiterhin befolgt werden.

Dieses Dokument definiert „Trickle ICE", einen ergänzenden Betriebsmodus von ICE, bei dem Kandidaten schrittweise ausgetauscht werden können, sobald sie verfügbar werden (und gleichzeitig mit dem Sammeln anderer Kandidaten). Konnektivitätsprüfungen können auch beginnen, sobald Kandidatenpaare erstellt wurden. Da Trickle ICE das Sammeln von Kandidaten und Konnektivitätsprüfungen parallel ermöglicht, kann die Methode den Prozess des Aufbaus einer Kommunikationssitzung erheblich beschleunigen.

Dieses Dokument definiert auch, wie die Unterstützung für Trickle ICE erkannt wird, wie die Verfahren in [RFC8445] bei Verwendung von Trickle ICE geändert oder ergänzt werden und wie ein Trickle-ICE-Agent mit einem [RFC8445]-konformen ICE-Agent interoperieren kann.

Dieses Dokument definiert keine protokollspezifische Verwendung von Trickle ICE. Stattdessen werden protokollspezifische Details für Trickle ICE in separaten Verwendungsdokumenten definiert. Beispiele für solche Dokumente sind [RFC8840] (das die Verwendung mit dem Session Initiation Protocol (SIP) [RFC3261] und dem Session Description Protocol (SDP) [RFC4566] definiert) und [XEP-0176] (das die Verwendung mit dem Extensible Messaging and Presence Protocol (XMPP) [RFC6120] definiert). Einige der Beispiele im Dokument verwenden jedoch SDP und das Angebot/Antwort-Modell (Offer/Answer Model) [RFC3264], um die zugrunde liegenden Konzepte zu erklären.

Das folgende Diagramm veranschaulicht einen erfolgreichen Trickle-ICE-Austausch mit einem verwendenden Protokoll, das dem Angebot/Antwort-Modell folgt:

     Alice                                            Bob
| Angebot |
|---------------------------------------------->|
| Zusätzliche Kandidaten |
|---------------------------------------------->|
| Antwort |
|<----------------------------------------------|
| Zusätzliche Kandidaten |
|<----------------------------------------------|
| Zusätzliche Kandidaten und Konnektivitätsprüfungen |
|<--------------------------------------------->|
|<========== VERBINDUNG HERGESTELLT ============>|

Abbildung 1: Ablauf (Flow)

Der Hauptteil dieses Dokuments ist so strukturiert, dass das Verhalten von Trickle-ICE-Agents in ungefähr der Reihenfolge der Operationen und Interaktionen während einer ICE-Sitzung beschrieben wird:

  1. Bestimmung der Unterstützung für Trickle ICE
  2. Generierung der anfänglichen ICE-Beschreibung
  3. Verarbeitung der anfänglichen ICE-Beschreibung und Generierung der anfänglichen ICE-Antwort
  4. Verarbeitung der anfänglichen ICE-Antwort
  5. Bildung von Checklisten, Beschneiden von Kandidaten, Durchführung von Konnektivitätsprüfungen usw.
  6. Sammeln und Übermitteln von Kandidaten nach der anfänglichen ICE-Beschreibung und -Antwort
  7. Verarbeitung eingehender Trickle-Kandidaten
  8. Generierung und Verarbeitung der End-of-Candidates-Anzeige
  9. Verarbeitung von ICE-Neustarts

Es gibt beträchtliche Betriebserfahrung mit der Technik hinter Trickle ICE, die bis ins Jahr 2005 zurückreicht (als die XMPP-Jingle-Erweiterung einen „dribble mode" definierte, wie in [XEP-0176] spezifiziert); dieses Dokument enthält Feedback von denen, die die Technik über die Jahre hinweg implementiert und eingesetzt haben.