10. Pairing Newly Gathered Local Candidates (Pairing neu gesammelter lokaler Kandidaten)
Wenn ein Trickle-ICE-Agent lokale Kandidaten sammelt, muss er Kandidatenpaare bilden; dies funktioniert wie in der ICE-Spezifikation [RFC8445] beschrieben, mit den folgenden Bedingungen:
-
Ein Trickle-ICE-Agent darf nicht (MUST NOT) einen lokalen Kandidaten paaren, bis er zur entfernten Partei getricklet wurde.
-
Sobald der Agent den lokalen Kandidaten zur entfernten Partei übermittelt hat, überprüft der Agent, ob derzeit entfernte Kandidaten für denselben Stream und dieselbe Komponente bekannt sind. Wenn nicht, fügt der Agent den neuen Kandidaten lediglich zur Liste der lokalen Kandidaten hinzu (ohne ihn zu paaren).
-
Andernfalls, wenn der Agent bereits von einem oder mehreren entfernten Kandidaten für diesen Stream und diese Komponente erfahren hat, versucht er, den neuen lokalen Kandidaten zu paaren, wie in der ICE-Spezifikation [RFC8445] beschrieben.
-
Wenn ein neu gebildetes Paar einen lokalen Kandidaten hat, dessen Typ serverreflexiv (server-reflexive) ist, muss (MUST) der Agent den lokalen Kandidaten durch seine Basis ersetzen, bevor er die relevanten Redundanztests abschließt.
-
Der Agent beschneidet redundante Paare, indem er den Regeln in Abschnitt 6.1.2.4 von [RFC8445] folgt, überprüft jedoch vorhandene Paare nur, wenn sie einen Zustand Wartend (Waiting) oder Eingefroren (Frozen) haben; dies vermeidet das Entfernen von Paaren, für die Konnektivitätsprüfungen laufen (ein Zustand In Bearbeitung (In-Progress)) oder für die Konnektivitätsprüfungen bereits ein eindeutiges Ergebnis erbracht haben (ein Zustand Erfolgreich (Succeeded) oder Fehlgeschlagen (Failed)).
-
Wenn nach Abschluss der relevanten Redundanztests die Checkliste, zu der das Paar hinzugefügt werden soll, bereits die maximale Anzahl von Kandidatenpaaren enthält (standardmäßig 100 gemäß [RFC8445]), sollte (SHOULD) der Agent alle Paare im Zustand Fehlgeschlagen verwerfen, um Platz für das neue Paar zu schaffen. Wenn es keine solchen Paare gibt, sollte (SHOULD) der Agent ein Paar mit niedrigerer Priorität als das neue Paar verwerfen, um Platz für das neue Paar zu schaffen, bis die Anzahl der Paare gleich der maximalen Anzahl von Paaren ist. Diese Verarbeitung ist konsistent mit Abschnitt 6.1.2.5 von [RFC8445].