Zum Hauptinhalt springen

13. Generating an End-of-Candidates Indication (Generierung einer End-of-Candidates-Anzeige)

Sobald das gesamte Sammeln von Kandidaten für eine ICE-Sitzung, die mit einem bestimmten Datenstrom verbunden ist, abgeschlossen ist oder abläuft, generiert der Agent eine „End-of-Candidates"-Anzeige für diese Sitzung und übermittelt sie über den Signalisierungskanal an den entfernten Agent. Obwohl die genaue Form der Anzeige vom verwendenden Protokoll abhängt, MUSS (MUST) die Anzeige die Generation (Kombination aus Username-Fragment und Passwort) angeben, damit ein Agent die End-of-Candidates-Anzeige mit einer bestimmten ICE-Sitzung korrelieren kann. Die Anzeige kann auf folgende Weise übermittelt werden:

  • Als Teil einer Initiierungsanfrage (was typischerweise bei der anfänglichen ICE-Beschreibung für Half Trickle der Fall wäre)
  • Zusammen mit dem letzten Kandidaten, den ein Agent für einen Stream senden kann
  • Als eigenständige Benachrichtigung (z. B. nachdem STUN-Binding-Anfragen oder TURN-Allocate-Anfragen an einen Server eine Zeitüberschreitung aufweisen und der Agent keine Kandidaten mehr aktiv sammelt)

Die rechtzeitige Übermittlung einer End-of-Candidates-Anzeige ist wichtig, um Unklarheiten zu vermeiden und den Abschluss der ICE-Verarbeitung zu beschleunigen. Insbesondere:

  • Ein kontrollierter Trickle-ICE-Agent SOLLTE (SHOULD) eine End-of-Candidates-Anzeige übermitteln, nachdem er das Sammeln für einen Datenstrom abgeschlossen hat, es sei denn, die ICE-Verarbeitung wird beendet, bevor der Agent die Gelegenheit hatte, das Sammeln abzuschließen.
  • Ein kontrollierender Agent KANN (MAY) die ICE-Verarbeitung vor der Übermittlung von End-of-Candidates-Anzeigen für alle Streams abschließen. Es wird jedoch EMPFOHLEN (RECOMMENDED), dass ein kontrollierender Agent End-of-Candidates-Anzeigen wann immer möglich übermittelt, um der Konsistenz willen und um Middleboxen und kontrollierte Agents über den Status der ICE-Verarbeitung auf dem Laufenden zu halten.

Bei der Übermittlung einer End-of-Candidates-Anzeige während des Tricklens (und nicht als Teil der anfänglichen ICE-Beschreibung oder einer Antwort darauf) liegt es in der Verantwortung des verwendenden Protokolls, Methoden zur Zuordnung der Anzeige zu einem oder mehreren bestimmten Datenströmen zu definieren.

Ein Agent KANN (MAY) auch wählen, eine End-of-Candidates-Anzeige zu generieren, bevor das Sammeln von Kandidaten tatsächlich abgeschlossen ist, wenn der Agent feststellt, dass das Sammeln länger als einen akzeptablen Zeitraum fortgesetzt wurde. Ein Agent DARF (MUST NOT) jedoch keine weiteren Kandidaten übermitteln, nachdem er eine End-of-Candidates-Anzeige übermittelt hat.

Beim Ausführen von Half Trickle SOLLTE (SHOULD) ein Agent eine End-of-Candidates-Anzeige zusammen mit seiner anfänglichen ICE-Beschreibung übermitteln, es sei denn, er plant möglicherweise zusätzliche Kandidaten zu tricklen (z. B. falls die entfernte Partei Trickle ICE unterstützt).

Nachdem ein Agent die End-of-Candidates-Anzeige übermittelt hat, aktualisiert er den Zustand der entsprechenden Checkliste wie in Abschnitt 8 erläutert. Von diesem Punkt an DARF (MUST NOT) ein Agent keine neuen Kandidaten innerhalb dieser ICE-Sitzung mehr tricklen. Daher ist das Hinzufügen neuer Kandidaten zur Verhandlung nur durch einen ICE-Neustart möglich (siehe Abschnitt 15).

Diese Spezifikation überschreibt nicht die reguläre ICE-Semantik für den Abschluss der ICE-Verarbeitung. Daher muss ein Agent auch dann noch die Paar-Nominierung durchlaufen, wenn End-of-Candidates-Anzeigen übermittelt wurden. Auch wenn Paare für Komponenten und Datenströme nominiert wurden, KANN (MAY) die ICE-Verarbeitung noch abgeschlossen werden, selbst wenn End-of-Candidates-Anzeigen nicht für alle Streams empfangen wurden. In allen Fällen DARF (MUST NOT) ein Agent keine neuen Kandidaten innerhalb einer ICE-Sitzung nach der Nominierung eines Kandidatenpaares gemäß Abschnitt 8.1.1 von [RFC8445] trickeln.