16. Half Trickle (Half Trickle)
Bei Half Trickle übermittelt der Initiator die anfängliche ICE-Beschreibung mit einer verwendbaren, aber nicht unbedingt vollständigen Generation von Kandidaten. Dies stellt sicher, dass die ICE-Beschreibung von einem regulären ICE-Responder verarbeitet werden kann und ist hauptsächlich für Fälle gedacht, in denen die Unterstützung für Trickle ICE nicht bestätigt werden kann, bevor die anfängliche ICE-Beschreibung übermittelt wird. Die anfängliche ICE-Beschreibung zeigt Unterstützung für Trickle ICE an, sodass der Responder mit weniger als einer vollständigen Generation von Kandidaten antworten und dann den Rest tricklen kann. Die anfängliche ICE-Beschreibung für Half Trickle kann eine Ende-der-Kandidaten-Anzeige enthalten, obwohl dies nicht zwingend erforderlich ist, da der Initiator, wenn Trickle-Unterstützung bestätigt wird, wählen kann, zusätzliche Kandidaten zu tricklen, bevor er eine Ende-der-Kandidaten-Anzeige übermittelt.
Der Half-Trickle-Mechanismus kann in Fällen verwendet werden, in denen ein Agent keine Möglichkeit hat, im Voraus zu überprüfen, ob eine entfernte Partei Trickle ICE unterstützt. Da die anfängliche ICE-Beschreibung eine vollständige Generation von Kandidaten enthält, kann sie von einem regulären ICE-Agent behandelt werden, während einem Trickle-ICE-Agent weiterhin die in dieser Spezifikation definierte Optimierung ermöglicht wird. Dies verhindert, dass die Verhandlung im ersteren Fall fehlschlägt, während im letzteren Fall immer noch etwa die Hälfte der Trickle-ICE-Vorteile gewährt wird.
Die Verwendung von Half Trickle ist nur während eines anfänglichen Austauschs von ICE-Beschreibungen erforderlich. Nachdem beide Parteien eine ICE-Beschreibung von ihrem Peer erhalten haben, können sie jeweils zuverlässig die Trickle-ICE-Unterstützung bestimmen und sie für alle nachfolgenden Austausche verwenden (siehe Abschnitt 15).
In einigen Fällen kann die Verwendung von Half Trickle mehr als nur die Hälfte der Verbesserung in Bezug auf die Benutzererfahrung bringen. Dies kann passieren, wenn ein Agent beginnt, Kandidaten aufgrund von Benutzeroberflächenhinweisen zu sammeln, dass der Benutzer bald eine Interaktion initiieren wird, wie z. B. Aktivität auf einer Tastatur oder das Abnehmen des Telefons. Dies würde bedeuten, dass ein Teil oder die gesamte Kandidatensammlung abgeschlossen werden könnte, bevor der Agent die Kandidateninformationen tatsächlich übermitteln muss. Da der Responder Kandidaten tricklen kann, können beide Agenten Konnektivitätsprüfungen früher starten und die ICE-Verarbeitung früher als mit regulärem ICE abschließen und möglicherweise sogar so früh wie mit vollständigem Trickle.
Eine solche Antizipation ist jedoch nicht immer möglich. Zum Beispiel hätte ein Mehrzweck-User-Agent oder eine WebRTC-Webseite, bei der Kommunikation eine nicht zentrale Funktion ist (z. B. Anrufen einer Support-Hotline bei einem Problem mit den Hauptfunktionen), nicht unbedingt eine Möglichkeit, zwischen Anrufabsichten und anderen Benutzeraktivitäten zu unterscheiden. In solchen Fällen führt die Verwendung von vollständigem Trickle am ehesten zu einer idealen Benutzererfahrung. Dennoch wäre die Verwendung von Half Trickle eine Verbesserung gegenüber regulärem ICE, da sie zu einer besseren Erfahrung für Responder führen würde.