Skip to main content

8. Performing Connectivity Checks (执行连接性检查)

🇨🇳 中文

如 [RFC8445] 中所述,每当计时器Ta触发时,只有处于运行 (Running) 状态的检查列表才会在调度候选地址对的连接性检查时被选中。因此,Trickle ICE代理必须 (MUST) 保持每个检查列表处于运行状态,只要它期望候选地址对将增量添加到检查列表中。之后,检查列表状态根据 [RFC8445] 中的过程设置。

每当计时器Ta触发并选中空检查列表时,不对该列表执行任何操作。代理无需等待计时器Ta再次过期,而是根据 [RFC8445] 的第6.1.4.2节选择处于运行状态的下一个检查列表。

[RFC8445] 的第7.2.5.4节要求代理在完成连接性检查事务后更新检查列表和计时器状态。在此类更新期间,如果满足以下两个条件,常规ICE代理会将检查列表的状态设置为失败 (Failed):

  • 检查列表中的所有候选地址对都处于失败 (Failed) 状态或成功 (Succeeded) 状态;并且

  • 数据流的每个组件在有效列表中都没有候选地址对。

对于Trickle ICE,即使未来的检查很可能成功,但当候选地址收集和渐进式交换仍在进行时,上述情况也经常会发生。因此,Trickle ICE代理在上述列表中添加以下条件:

  • 所有候选地址收集已完成,并且代理不期望发现任何新的本地候选地址;并且

  • 远程代理已如第13节所述为该检查列表传递了候选地址结束指示 (end-of-candidates indication)。


🇬🇧 English

As specified in [RFC8445], whenever timer Ta fires, only checklists in the Running state will be picked when scheduling connectivity checks for candidate pairs. Therefore, a Trickle ICE agent MUST keep each checklist in the Running state as long as it expects candidate pairs to be incrementally added to the checklist. After that, the checklist state is set according to the procedures in [RFC8445].

Whenever timer Ta fires and an empty checklist is picked, no action is performed for the list. Without waiting for timer Ta to expire again, the agent selects the next checklist in the Running state, in accordance with Section 6.1.4.2 of [RFC8445].

Section 7.2.5.4 of [RFC8445] requires that agents update checklists and timer states upon completing a connectivity check transaction. During such an update, regular ICE agents would set the state of a checklist to Failed if both of the following two conditions are satisfied:

  • all of the pairs in the checklist are in either the Failed state or the Succeeded state; and

  • there is not a pair in the valid list for each component of the data stream.

With Trickle ICE, the above situation would often occur when candidate gathering and trickling are still in progress, even though it is quite possible that future checks will succeed. For this reason, Trickle ICE agents add the following conditions to the above list:

  • all candidate gathering has completed, and the agent is not expecting to discover any new local candidates; and

  • the remote agent has conveyed an end-of-candidates indication for that checklist as described in Section 13.


🇯🇵 日本語

[RFC8445] で規定されているように、タイマーTaが発火するたびに、候補ペアの接続性チェックをスケジュールする際には、実行中 (Running) 状態のチェックリストのみが選択されます。したがって、Trickle ICEエージェントは、候補ペアがチェックリストに段階的に追加されることを期待している限り、各チェックリストを実行中状態に保たなければなりません (MUST)。その後、チェックリストの状態は [RFC8445] の手順に従って設定されます。

タイマーTaが発火して空のチェックリストが選択された場合、そのリストに対してアクションは実行されません。タイマーTaが再び期限切れになるのを待たずに、エージェントは [RFC8445] の第6.1.4.2節に従って、実行中状態の次のチェックリストを選択します。

[RFC8445] の第7.2.5.4節では、接続性チェックトランザクションを完了した際にエージェントがチェックリストとタイマー状態を更新することを要求しています。このような更新中、通常のICEエージェントは、次の2つの条件が両方とも満たされている場合、チェックリストの状態を失敗 (Failed) に設定します:

  • チェックリスト内のすべてのペアが失敗 (Failed) 状態または成功 (Succeeded) 状態のいずれかである;および

  • データストリームの各コンポーネントについて、有効なリストにペアが存在しない。

Trickle ICEでは、候補の収集とトリクルがまだ進行中の場合、将来のチェックが成功する可能性が高いにもかかわらず、上記の状況がしばしば発生します。このため、Trickle ICEエージェントは上記のリストに次の条件を追加します:

  • すべての候補収集が完了し、エージェントが新しいローカル候補を発見することを期待していない;および

  • 第13節で説明されているように、リモートエージェントがそのチェックリストに対して候補終了表示 (end-of-candidates indication) を伝達した。


🇫🇷 Français

Comme spécifié dans [RFC8445], chaque fois que le temporisateur Ta se déclenche, seules les listes de vérification dans l'état En cours (Running) seront sélectionnées lors de la planification des vérifications de connectivité pour les paires de candidats. Par conséquent, un agent Trickle ICE doit (MUST) maintenir chaque liste de vérification dans l'état En cours tant qu'il s'attend à ce que des paires de candidats soient ajoutées de manière incrémentale à la liste. Après cela, l'état de la liste de vérification est défini selon les procédures dans [RFC8445].

Chaque fois que le temporisateur Ta se déclenche et qu'une liste de vérification vide est sélectionnée, aucune action n'est effectuée pour la liste. Sans attendre que le temporisateur Ta expire à nouveau, l'agent sélectionne la liste de vérification suivante dans l'état En cours, conformément à la section 6.1.4.2 de [RFC8445].

La section 7.2.5.4 de [RFC8445] exige que les agents mettent à jour les listes de vérification et les états de temporisateur lors de la finalisation d'une transaction de vérification de connectivité. Lors d'une telle mise à jour, les agents ICE réguliers définiraient l'état d'une liste de vérification sur Échec (Failed) si les deux conditions suivantes sont satisfaites :

  • toutes les paires dans la liste de vérification sont soit dans l'état Échec (Failed) soit dans l'état Réussi (Succeeded) ; et

  • il n'y a pas de paire dans la liste valide pour chaque composant du flux de données.

Avec Trickle ICE, la situation ci-dessus se produirait souvent lorsque la collecte et le trickle de candidats sont toujours en cours, même s'il est tout à fait possible que les vérifications futures réussissent. Pour cette raison, les agents Trickle ICE ajoutent les conditions suivantes à la liste ci-dessus :

  • toute la collecte de candidats est terminée, et l'agent ne s'attend pas à découvrir de nouveaux candidats locaux ; et

  • l'agent distant a transmis une indication de fin de candidats pour cette liste de vérification comme décrit dans la section 13.


🇩🇪 Deutsch

Wie in [RFC8445] spezifiziert, werden bei jedem Auslösen des Timers Ta nur Checklisten im Zustand Laufend (Running) ausgewählt, wenn Konnektivitätsprüfungen für Kandidatenpaare geplant werden. Daher muss (MUST) ein Trickle-ICE-Agent jede Checkliste im Zustand Laufend halten, solange er erwartet, dass Kandidatenpaare schrittweise zur Checkliste hinzugefügt werden. Danach wird der Checklistenzustand gemäß den Verfahren in [RFC8445] festgelegt.

Wann immer der Timer Ta ausgelöst wird und eine leere Checkliste ausgewählt wird, wird keine Aktion für die Liste ausgeführt. Ohne darauf zu warten, dass der Timer Ta erneut abläuft, wählt der Agent die nächste Checkliste im Zustand Laufend gemäß Abschnitt 6.1.4.2 von [RFC8445] aus.

Abschnitt 7.2.5.4 von [RFC8445] verlangt, dass Agents Checklisten und Timer-Zustände beim Abschluss einer Konnektivitätsprüfungstransaktion aktualisieren. Bei einer solchen Aktualisierung würden reguläre ICE-Agents den Zustand einer Checkliste auf Fehlgeschlagen (Failed) setzen, wenn beide der folgenden Bedingungen erfüllt sind:

  • alle Paare in der Checkliste befinden sich entweder im Zustand Fehlgeschlagen (Failed) oder im Zustand Erfolgreich (Succeeded); und

  • es gibt kein Paar in der gültigen Liste für jede Komponente des Datenstroms.

Bei Trickle ICE würde die obige Situation häufig auftreten, wenn das Sammeln und Tricklen von Kandidaten noch im Gange ist, obwohl es durchaus möglich ist, dass zukünftige Prüfungen erfolgreich sein werden. Aus diesem Grund fügen Trickle-ICE-Agents der obigen Liste die folgenden Bedingungen hinzu:

  • das gesamte Sammeln von Kandidaten ist abgeschlossen, und der Agent erwartet nicht, neue lokale Kandidaten zu entdecken; und

  • der entfernte Agent hat eine End-of-Candidates-Anzeige für diese Checkliste übermittelt, wie in Abschnitt 13 beschrieben.


🇮🇹 Italiano

Come specificato in [RFC8445], ogni volta che il timer Ta si attiva, solo le checklist nello stato In esecuzione (Running) verranno selezionate quando si pianificano i controlli di connettività per le coppie di candidati. Pertanto, un agente Trickle ICE deve (MUST) mantenere ogni checklist nello stato In esecuzione finché si aspetta che le coppie di candidati vengano aggiunte in modo incrementale alla checklist. Successivamente, lo stato della checklist viene impostato secondo le procedure in [RFC8445].

Ogni volta che il timer Ta si attiva e viene selezionata una checklist vuota, non viene eseguita alcuna azione per la lista. Senza attendere che il timer Ta scada nuovamente, l'agente seleziona la checklist successiva nello stato In esecuzione, in conformità con la sezione 6.1.4.2 di [RFC8445].

La sezione 7.2.5.4 di [RFC8445] richiede che gli agenti aggiornino le checklist e gli stati dei timer al completamento di una transazione di controllo di connettività. Durante tale aggiornamento, gli agenti ICE regolari imposterebbero lo stato di una checklist su Fallito (Failed) se entrambe le seguenti condizioni sono soddisfatte:

  • tutte le coppie nella checklist sono nello stato Fallito (Failed) o nello stato Riuscito (Succeeded); e

  • non c'è una coppia nell'elenco valido per ogni componente del flusso di dati.

Con Trickle ICE, la situazione di cui sopra si verificherebbe spesso quando la raccolta e il trickle dei candidati sono ancora in corso, anche se è molto possibile che i controlli futuri abbiano successo. Per questo motivo, gli agenti Trickle ICE aggiungono le seguenti condizioni all'elenco sopra:

  • tutta la raccolta di candidati è completata, e l'agente non si aspetta di scoprire nuovi candidati locali; e

  • l'agente remoto ha trasmesso un'indicazione di fine candidati per quella checklist come descritto nella sezione 13.