3. Determining Support for Trickle ICE (确定Trickle ICE支持)
🇨🇳 中文
为了完全支持Trickle ICE,使用协议应该 (SHOULD) 纳入以下机制之一,以便实现能够确定是否支持Trickle ICE:
-
提供能力发现方法,以便代理可以在发起会话之前验证对Trickle ICE的支持(XMPP的服务发现 (Service Discovery) [XEP-0030] 就是这样一种机制)。
-
使对Trickle ICE的支持成为强制性的,以便用户代理可以假定支持。
如果使用协议不提供提前确定是否支持Trickle ICE的方法,代理可以使用第16节中描述的半渐进式过程。
在传递初始ICE描述之前,实现支持能力发现的使用协议的代理可以尝试验证远程方是否支持Trickle ICE。如果代理确定远程方不支持Trickle ICE,它必须 (MUST) 回退到使用常规ICE或放弃整个会话。
即使使用协议不包括能力发现方法,用户代理也可以通过传递'trickle'的ICE选项在ICE描述中提供支持Trickle ICE的指示。此令牌必须 (MUST) 在会话级别提供,或者如果在数据流级别提供,则必须为每个数据流提供(代理禁止 (MUST NOT) 为某些数据流指定Trickle ICE支持而不为其他数据流指定)。注意:'trickle' ICE选项的编码以及用于将其传递给对等方的消息是特定于协议的;例如,SDP [RFC4566] 的编码在 [RFC8840] 中定义。
专用的发现语义和半渐进式仅在ICE会话发起之前需要。在建立ICE会话并为双方确认Trickle ICE支持之后,任何一方都可以在后续交换中使用完全渐进式(另请参见第15节)。
🇬🇧 English
To fully support Trickle ICE, using protocols SHOULD incorporate one of the following mechanisms so that implementations can determine whether Trickle ICE is supported:
-
Provide a capabilities discovery method so that agents can verify support of Trickle ICE prior to initiating a session (XMPP's Service Discovery [XEP-0030] is one such mechanism).
-
Make support for Trickle ICE mandatory so that user agents can assume support.
If a using protocol does not provide a method of determining ahead of time whether Trickle ICE is supported, agents can make use of the half-trickle procedure described in Section 16.
Prior to conveying the initial ICE description, agents that implement using protocols that support capabilities discovery can attempt to verify whether or not the remote party supports Trickle ICE. If an agent determines that the remote party does not support Trickle ICE, it MUST fall back to using regular ICE or abandon the entire session.
Even if a using protocol does not include a capabilities discovery method, a user agent can provide an indication within the ICE description that it supports Trickle ICE by communicating an ICE option of 'trickle'. This token MUST be provided either at the session level or, if at the data stream level, for every data stream (an agent MUST NOT specify Trickle ICE support for some data streams but not others). Note: The encoding of the 'trickle' ICE option, and the message(s) used to carry it to the peer, are protocol specific; for instance, the encoding for SDP [RFC4566] is defined in [RFC8840].
Dedicated discovery semantics and half trickle are needed only prior to initiation of an ICE session. After an ICE session is established and Trickle ICE support is confirmed for both parties, either agent can use full trickle for subsequent exchanges (see also Section 15).
🇯🇵 日本語
Trickle ICEを完全にサポートするために、使用プロトコルは次のメカニズムのいずれかを組み込むべきです (SHOULD)。これにより、実装はTrickle ICEがサポートされているかどうかを判断できます:
-
セッションを開始する前にエージェントがTrickle ICEのサポートを確認できるように、機能発見メソッドを提供する(XMPPのサービス発見 (Service Discovery) [XEP-0030] がそのようなメカニズムの1つです)。
-
Trickle ICEのサポートを必須にして、ユーザーエージェントがサポートを仮定できるようにする。
使用プロトコルがTrickle ICEがサポートされているかどうかを事前に判断する方法を提供しない場合、エージェントは第16節で説明されているハーフトリクル手順を使用できます。
初期ICE記述を伝達する前に、機能発見をサポートする使用プロトコルを実装するエージェントは、リモート側がTrickle ICEをサポートしているかどうかを確認しようと試みることができます。エージェントがリモート側がTrickle ICEをサポートしていないと判断した場合、通常のICEの使用にフォールバックするか、セッション全体を放棄しなければなりません (MUST)。
使用プロトコルに機能発見メソッドが含まれていない場合でも、ユーザーエージェントは、'trickle'のICEオプションを伝達することにより、ICE記述内でTrickle ICEをサポートしていることを示すことができます。このトークンは、セッションレベルで提供されるか、データストリームレベルの場合はすべてのデータストリームに対して提供されなければなりません (MUST)(エージェントは一部のデータストリームに対してTrickle ICEサポートを指定し、他のデータストリームには指定してはなりません (MUST NOT))。注:'trickle' ICEオプションのエンコーディングと、それをピアに伝達するために使用されるメッセージは、プロトコル固有です。たとえば、SDP [RFC4566] のエンコーディングは [RFC8840] で定義されています。
専用の発見セマンティクスとハーフトリクルは、ICEセッションの開始前にのみ必要です。ICEセッションが確立され、両当事者のTrickle ICEサポートが確認された後、いずれのエージェントも後続の交換で完全トリクルを使用できます(第15節も参照)。
🇫🇷 Français
Pour prendre pleinement en charge Trickle ICE, les protocoles d'utilisation devraient (SHOULD) incorporer l'un des mécanismes suivants afin que les implémentations puissent déterminer si Trickle ICE est pris en charge :
-
Fournir une méthode de découverte de capacités afin que les agents puissent vérifier le support de Trickle ICE avant d'initier une session (la découverte de service (Service Discovery) de XMPP [XEP-0030] est l'un de ces mécanismes).
-
Rendre le support de Trickle ICE obligatoire afin que les agents utilisateurs puissent supposer le support.
Si un protocole d'utilisation ne fournit pas de méthode pour déterminer à l'avance si Trickle ICE est pris en charge, les agents peuvent utiliser la procédure half-trickle décrite dans la section 16.
Avant de transmettre la description ICE initiale, les agents qui implémentent des protocoles d'utilisation prenant en charge la découverte de capacités peuvent tenter de vérifier si la partie distante prend en charge Trickle ICE ou non. Si un agent détermine que la partie distante ne prend pas en charge Trickle ICE, il doit (MUST) revenir à l'utilisation d'ICE régulier ou abandonner la session entière.
Même si un protocole d'utilisation n'inclut pas de méthode de découverte de capacités, un agent utilisateur peut fournir une indication dans la description ICE qu'il prend en charge Trickle ICE en communiquant une option ICE de 'trickle'. Ce jeton doit (MUST) être fourni soit au niveau de la session, soit, s'il est au niveau du flux de données, pour chaque flux de données (un agent ne doit pas (MUST NOT) spécifier le support de Trickle ICE pour certains flux de données mais pas pour d'autres). Remarque : L'encodage de l'option ICE 'trickle' et le(s) message(s) utilisé(s) pour le transmettre au pair sont spécifiques au protocole ; par exemple, l'encodage pour SDP [RFC4566] est défini dans [RFC8840].
Les sémantiques de découverte dédiées et le half trickle ne sont nécessaires qu'avant l'initiation d'une session ICE. Après qu'une session ICE est établie et que le support de Trickle ICE est confirmé pour les deux parties, l'un ou l'autre agent peut utiliser le trickle complet pour les échanges ultérieurs (voir également la section 15).
🇩🇪 Deutsch
Um Trickle ICE vollständig zu unterstützen, sollten (SHOULD) verwendende Protokolle einen der folgenden Mechanismen integrieren, damit Implementierungen bestimmen können, ob Trickle ICE unterstützt wird:
-
Eine Fähigkeitsentdeckungsmethode bereitstellen, damit Agents die Unterstützung von Trickle ICE vor dem Initiieren einer Sitzung überprüfen können (XMPPs Service Discovery [XEP-0030] ist ein solcher Mechanismus).
-
Die Unterstützung für Trickle ICE obligatorisch machen, damit User Agents Unterstützung annehmen können.
Wenn ein verwendendes Protokoll keine Methode bereitstellt, um im Voraus zu bestimmen, ob Trickle ICE unterstützt wird, können Agents die in Abschnitt 16 beschriebene Half-Trickle-Prozedur verwenden.
Vor der Übermittlung der anfänglichen ICE-Beschreibung können Agents, die verwendende Protokolle implementieren, die Fähigkeitsentdeckung unterstützen, versuchen zu überprüfen, ob die entfernte Partei Trickle ICE unterstützt oder nicht. Wenn ein Agent feststellt, dass die entfernte Partei Trickle ICE nicht unterstützt, muss (MUST) er auf die Verwendung von regulärem ICE zurückgreifen oder die gesamte Sitzung abbrechen.
Auch wenn ein verwendendes Protokoll keine Fähigkeitsentdeckungsmethode enthält, kann ein User Agent innerhalb der ICE-Beschreibung angeben, dass er Trickle ICE unterstützt, indem er eine ICE-Option von 'trickle' kommuniziert. Dieses Token muss (MUST) entweder auf Sitzungsebene oder, wenn auf Datenstromebene, für jeden Datenstrom bereitgestellt werden (ein Agent darf nicht (MUST NOT) Trickle-ICE-Unterstützung für einige Datenströme angeben, aber nicht für andere). Hinweis: Die Codierung der 'trickle'-ICE-Option und die Nachricht(en), die verwendet werden, um sie an den Peer zu übermitteln, sind protokollspezifisch; zum Beispiel ist die Codierung für SDP [RFC4566] in [RFC8840] definiert.
Dedizierte Entdeckungssemantik und Half Trickle werden nur vor der Initiierung einer ICE-Sitzung benötigt. Nachdem eine ICE-Sitzung hergestellt und Trickle-ICE-Unterstützung für beide Parteien bestätigt wurde, kann jeder Agent für nachfolgende Austausche vollständiges Trickle verwenden (siehe auch Abschnitt 15).
🇮🇹 Italiano
Per supportare completamente Trickle ICE, i protocolli di utilizzo dovrebbero (SHOULD) incorporare uno dei seguenti meccanismi in modo che le implementazioni possano determinare se Trickle ICE è supportato:
-
Fornire un metodo di scoperta delle capacità in modo che gli agenti possano verificare il supporto di Trickle ICE prima di avviare una sessione (la scoperta del servizio (Service Discovery) di XMPP [XEP-0030] è uno di questi meccanismi).
-
Rendere il supporto per Trickle ICE obbligatorio in modo che gli agenti utente possano presumere il supporto.
Se un protocollo di utilizzo non fornisce un metodo per determinare in anticipo se Trickle ICE è supportato, gli agenti possono utilizzare la procedura half-trickle descritta nella sezione 16.
Prima di trasmettere la descrizione ICE iniziale, gli agenti che implementano protocolli di utilizzo che supportano la scoperta delle capacità possono tentare di verificare se la parte remota supporta o meno Trickle ICE. Se un agente determina che la parte remota non supporta Trickle ICE, deve (MUST) ricorrere all'utilizzo di ICE regolare o abbandonare l'intera sessione.
Anche se un protocollo di utilizzo non include un metodo di scoperta delle capacità, un agente utente può fornire un'indicazione all'interno della descrizione ICE che supporta Trickle ICE comunicando un'opzione ICE di 'trickle'. Questo token deve (MUST) essere fornito a livello di sessione o, se a livello di flusso dati, per ogni flusso dati (un agente non deve (MUST NOT) specificare il supporto Trickle ICE per alcuni flussi dati ma non per altri). Nota: La codifica dell'opzione ICE 'trickle' e i messaggi utilizzati per trasmetterla al peer sono specifici del protocollo; ad esempio, la codifica per SDP [RFC4566] è definita in [RFC8840].
Le semantiche di scoperta dedicate e il half trickle sono necessari solo prima dell'avvio di una sessione ICE. Dopo che una sessione ICE è stabilita e il supporto Trickle ICE è confermato per entrambe le parti, uno qualsiasi degli agenti può utilizzare il trickle completo per gli scambi successivi (vedere anche la sezione 15).