原文链接:https://datatracker.ietf.org/doc/html/rfc8445#section-6
6、ICE Candidate Processing 【ICE 候选处理】
Once an ICE agent has gathered its candidates and exchanged candidates with its peer (Section 5), it will determine its own role. In addition, full implementations will form checklists and begin performing connectivity checks with the peer.
一旦 ICE 代理收集了其候选人并与其对等方交换了候选人(第 5 节),它将确定自己的角色。 此外,完整的实现将形成检查表并开始与对等方执行连接检查。
6.1. Procedures for Full Implementation【完整实现的过程】
6.1.1. Determining Role【确定角色】
For each session, each ICE agent (initiating and responding) takes on a role. There are two roles – controlling and controlled.
对于每个会话,每个 ICE 代理(发起和响应)都扮演一个角色。 共有两个角色——控制者和被控者。
The controlling agent is responsible for the choice of the final candidate pairs used for communications.
控制代理负责选择用于通信的最终候选对。
The sections below describe in detail the actual procedures followed by controlling and controlled agents.The rules for determining the role and the impact on behavior are as follows:
以下部分详细描述了控制和受控代理遵循的实际程序。确定角色和对行为的影响的规则如下:
-
Both agents are full: 【两个代理都是完整实现的】
The initiating agent that started the ICE processing MUST take the controlling role, and the other MUST take the controlled role. Both agents will form checklists, run the ICE state machines, and generate connectivity checks.
启动 ICE 处理的发起代理必须承担控制角色,另一个必须承担受控角色。 两个代理都将形成检查表,运行 ICE 状态机,并生成连接检查。
The controlling agent will execute the logic in Section 8.1 to nominate pairs that will become (if the connectivity checks associated with the nominations succeed) the selected pairs, and then both agents end ICE as described in Section 8.1.2.
控制代理将执行 [第 8.1 节] 中的逻辑将以提名的对作为(如果与提名相关联的连接检查成功)选定对,然后两个代理按照 [第 8.1.2 节] 中的描述结束 ICE。 -
One agent full, one lite: 【一个代理完整实现,一个代理精简实现】
The full agent MUST take the controlling role, and the lite agent MUST take the controlled role.
完整代理必须承担控制角色,精简代理必须承担受控角色。
The full agent will form checklists, run the ICE state machines, and generate connectivity checks. That agent will execute the logic in Section 8.1 to nominate pairs that will become (if the connectivity checks associated with the nominations succeed) the selected pairs and use the logic in Section 8.1.2 to end ICE.
完整的代理将形成检查表,运行 ICE 状态机,并生成连接检查。 该代理将执行 [第 8.1 节] 中的逻辑将以提名的对作为(如果与提名相关联的连接检查成功)选定对,然后两个代理按照 [第 8.1.2 节] 中的描述结束 ICE。The lite implementation will just listen for connectivity checks, receive them and respond to them, and then conclude ICE as described in Section 8.2. For the lite implementation, the stateof ICE processing for each data stream is considered to be Running, and the state of ICE overall is Running.
精简实现的代理将只侦听连接检查,接收它们并响应它们,然后按照第 8.2 节中的描述结束 ICE。 对于精简实现,每个数据流的ICE处理状态被认为是Running,ICE整体的状态是Running。 -
Both lite: 【两个都是精简实现的】
The initiating agent that started the ICE processing MUST take the controlling role, and the other MUST take the controlled role. In this case, no connectivity checks are ever sent.
启动 ICE 处理的发起代理必须承担控制角色,另一个必须承担受控角色。在这种情况下,不会发送任何连接检查。
Rather, once the candidates are exchanged, each agent performs the processing described in Section 8 without connectivity checks. It is possible that both agents will believe they are controlled or controlling.
相反,一旦交换了候选对象,每个代理就会执行第 8 节中描述的处理,而无需进行连接检查。两个代理都可能认为他们受到控制或控制。
In the latter case, the conflict is resolved through glare detection capabilities in the signaling protocol enabling the candidate exchange. The state of ICE processing for each data stream is considered to be Running, and the state of ICE overall is Running.
在后一种情况下,通过启用候选交换的信令协议中的glare探测功能解决冲突。 每个数据流的ICE处理状态被认为是Running,ICE整体的状态是Running。
Once the roles are determined for a session, they persist throughout the lifetime of the session. The roles can be redetermined as part of an ICE restart (Section 9), but an ICE agent MUST NOT redetermine the role as part of an ICE restart unless one or more of the following criteria is fulfilled:
一旦为会话确定了角色,它们将在会话的整个生命周期中持续存在。 角色可以作为 ICE 重启的一部分重新确定(第 9 节),但除非满足以下一项或多项标准,否则 ICE 代理不得在ICE 重启时重新确定角色:
- Full becomes lite: If the controlling agent is full, and switches to lite, the roles MUST be redetermined if the peer agent is also full.
完整实现变成了精简实现:如果控制代理是完整实现的,而且转变成了精简实现,那么当另一个代理也是完整实现的时,角色必须转换。 - Role conflict: If the ICE restart causes a role conflict, the roles might be redetermined due to the role conflict procedures in Section 7.3.1.1.
角色冲突:如果 ICE 重启导致角色冲突,参考[第 7.3.1.1 节]中的角色冲突过程,角色可能会重新确定。 - NOTE: There are certain Third Party Call Control (3PCC) [[RFC3725]] scenarios where an ICE restart might cause a role conflict.
注意:在某些第三方呼叫控制 (3PCC) [[[RFC3725]] 场景中,ICE 重启可能会导致角色冲突。 - NOTE: The agents need to inform each other whether they are full or lite before the roles are determined.
注意:在确定角色之前,代理需要相互通知他们是完整实现还是精简实现。
The mechanism for that is specific to the signaling protocol and outside the scope of the document. An agent MUST accept if the peer initiates a redetermination of the roles even if the criteria for doing so are not fulfilled. This can happen if the peer is compliant with RFC 5245.
该机制特定于信令协议并且超出了文档的范围。如果对等方发起角色的重新确定,即使不满足这样做的标准,代理也必须接受。 如果对等方符合 [RFC 5245],则可能会发生这种情况。
6.1.2. Forming the Checklists【形成检查表】
There is one checklist for each data stream.
每个数据流都有一个checklist。
To form a checklist, initiating and responding ICE agents form candidate pairs, compute pair priorities, order pairs by priority, prune pairs, remove lower-priority pairs, and set checklist states.
为了形成一个检查表,启动和响应 ICE 代理形成候选对,计算对优先级,按优先级排序对,精简对,删除较低优先级对,并设置检查表状态。
If candidates are added to a checklist (e.g., due to detection of peer-reflexive candidates), the agent will re-perform these steps for the updated checklist.
如果候选人被添加到checklist中(例如,由于检测到peer-reflexive candidates),代理将为更新的checklist重新执行这些步骤。
6.1.2.1 . Checklist State【清单检查表】
Each checklist has a state, which captures the state of ICE checks for the data stream associated with the checklist. The states are:
每个检查表都有一个状态,它捕获与检查表关联的数据流的 ICE 检查的状态。 这些状态是:
- Running: The checklist is neither Completed nor Failed yet. Checklists are initially set to the Running state.
正在运行:检查表既未完成也未失败。 检查表最初设置为运行状态。 - Completed: The checklist contains a nominated pair for each component of the data stream.
已完成:检查表包含数据流每个组件的指定对。 - Failed: The checklist does not have a valid pair for each component of the data stream, and all of the candidate pairs in the checklist are in either the Failed or the Succeeded state. In other words, at least one component of the checklist has candidate pairs that are all in the Failed state, which means the component has failed, which means the checklist has failed.
失败:检查表没有数据流的每个组件的有效对,检查表中的所有候选对都处于失败或成功状态。 换句话说,检查表的至少一个组件具有全部处于失败状态的候选对,这意味着该组件已失败,这意味着该检查表已失败。
6.1.2.2. Forming Candidate Pairs【形成候选对】
The ICE agent pairs each local candidate with each remote candidate for the same component of the same data stream with the same IP address family.
ICE 代理将具有相同 IP 地址族的相同数据流的相同组件的每个本地候选与每个远程候选配对。
It is possible that some of the local candidates won’t get paired with remote candidates, and some of the remote candidates won’t get paired with local candidates.
有可能一些本地候选无法与远程候选配对,而一些远程候选无法与本地候选配对。
This can happen if one agent doesn’t include candidates for all of the components for a data stream.
这种情况一般发生在代理不包含数据流的所有组件的候选对象时。
If this happens, the number of components for that data stream is effectively reduced and is considered to be equal to the minimum across both agents of the maximum component ID provided by each agent across all components for the data stream.
如果发生这种情况,该数据流的组件数量将有效减少,并且被视为等于每个代理跨数据流所有组件提供的最大组件 ID 的最小值。
In the case of RTP, this would happen when one agent provides candidates for RTCP, and the other does not.
在 RTP 的情况下,当一个代理为 RTCP 提供候选而另一个不提供时,就会发生这种情况。
As another example, the initiating agent can multiplex RTP and RTCP on the same port[RFC5761]. However, since the initiating agent doesn’t know if the peer agent can perform such multiplexing, it includes candidates for RTP and RTCP on separate ports.
另一个例子,发起代理可以在同一个端口上复用 RTP 和 RTCP[RFC5761]。但是,由于发起代理不知道对等代理是否可以执行这种多路复用,因此它在不同的端口上使用 RTP 和 RTCP 的候选对象。
If the peer agent can perform such multiplexing, it would include just a single component for each candidate – for the combined RTP/RTCP mux.
如果对等代理可以执行这样的多路复用,它将只使用每个候选的单个组件——用于组合的 RTP/RTCP 多路复用器。
ICE would end up acting as if there was just a single component for this candidate.
ICE 最终会表现得好像这个候选只有一个组成部分。
With IPv6, it is common for a host to have multiple host candidates for each interface. To keep the amount of resulting candidate pairs reasonable and to avoid candidate pairs that are highly unlikely to work, IPv6 link-local addresses MUST NOT be paired with other than link-local addresses.
对于 IPv6,主机通常为每个接口有多个候选主机。为了保持结果候选对的数量合理并避免极不可能工作的候选对,IPv6 链路本地地址不得与链路本地地址以外的其他地址配对。
The candidate pairs whose local and remote candidates are both the default candidates for a particular component is called the “default candidate pair” for that component.
本地和远程候选都是特定组件的默认候选的候选对称为该组件的“默认候选对”。
This is the pair that would be used to transmit data if both agents had not been ICE aware.
如果两个代理都没有察觉到 ICE,这对候选将用于传输数据。
Figure 5 shows the properties of and relationships between transport addresses, candidates, candidate pairs, and checklists.
图 5 显示了传输地址、候选、候选对和检查表的属性和关系。
The ICE agent computes a priority for each candidate pair. Let G be the priority for the candidate provided by the controlling agent.Let D be the priority for the candidate provided by the controlled agent. The priority for a pair is computed as follows:
ICE 代理计算每个候选对的优先级。 设 G 为控制代理提供的候选的优先级。设 D 为受控代理提供的候选的优先级。 一对的优先级计算如下:
pair priority = 2^32MIN(G,D) + 2MAX(G,D) + (G>D?1:0)
The agent sorts each checklist in decreasing order of candidate pair priority. If two pairs have identical priority, the ordering amongst them is arbitrary.
代理按照候选对优先级的降序对每个检查表进行排序。 如果两对具有相同的优先级,则它们之间的排序是任意的。
6.1.2.4. Pruning the Pairs【精简候选对】
This sorted list of candidate pairs is used to determine a sequence of connectivity checks that will be performed. Each check involves sending a request from a local candidate to a remote candidate.
候选对的排序列表用于确定将执行的连接检查序列。每次检查都涉及从本地候选向远程候选发送请求。
Since an ICE agent cannot send requests directly from a reflexive candidate (server reflexive or peer reflexive), but only from its base, the agent next goes through the sorted list of candidate pairs.
由于 ICE 代理不能直接从reflexive候选(server reflexive 或peer reflexive)发送请求,而只能从其base发送请求,因此该代理接下来会通过候选对的排序列表。
For each pair where the local candidate is reflexive, the candidate MUST be replaced by its base.
对于本地候选是reflexive的每一对,候选必须被它的base替换。
The agent prunes each checklist. This is done by removing a candidate pair if it is redundant with a higher-priority candidate pair in the same checklist.
代理精简每个清单。 这是通过删除与同一检查表中更高优先级的候选对冗余的候选对来完成的。
Two candidate pairs are redundant if their local candidates have the same base and their remote candidates are identical.
如果两个候选对的本地候选具有相同的base并且它们的远程候选相同,则两个候选对是冗余的。
The result is a sequence of ordered candidate pairs, called the “checklist” for that data stream.
结果是一系列有序的候选对,称为该数据流的“checklist”。
6.1.2.5. Removing Lower-Priority Pairs【删除低优先级对】
In order to limit the attacks described in Section 19.5.1, an ICE agent MUST limit the total number of connectivity checks the agent performs across all checklists in the checklist set.
为了限制[第 19.5.1 节]中描述的攻击,ICE 代理必须限制代理在检查表集中的所有检查表中执行的连接检查的总数。
This is done by limiting the total number of candidate pairs in the checklist set. The default limit of candidate pairs for the checklist set is 100, but the value MUST be configurable.
这是通过限制检查表集中候选对的总数来完成的。检查表集的候选对的默认限制是 100,但该值是可配置的。
The limit is enforced by, within in each checklist, discarding lower-priority candidate pairs until the total number of candidate pairs in the checklist set is smaller than the limit value.
该限制是通过在每个检查表中丢弃较低优先级的候选对来强制执行的,直到检查表集中候选对的总数小于限制值。
The discarding SHOULD be done evenly so that the number of candidate pairs in each checklist is reduced the same amount.
丢弃应该均匀进行,以便每个检查表中候选对的数量减少相同的数量。
It is RECOMMENDED that a lower-limit value than the default is picked when possible, and that the value is set to the maximum number of plausible candidate pairs that might be created in an actual deployment configuration.
建议尽可能选择低于默认值的下限值,并将该值设置为可能在实际部署配置中创建的最大可能候选对数。
The requirement for configuration is meant to provide a tool for fixing this value in the field if, once deployed, it is found to be problematic.
配置要求旨在提供一种工具,用于在部署后发现有问题的情况下在现场修复此值。
6.1.2.6. Computing Candidate Pair States【计算候选对状态】
Each candidate pair in the checklist has a foundation (the combination of the foundations of the local and remote candidates in the pair) and one of the following states:
检查表中的每个候选对都有一个foundation(该候选对的本地和远程候选的foundation的组合)和以下状态之一:
- Waiting: A check has not been sent for this pair, but the pair is not Frozen.
等待中:尚未为此候选对发送检查,但该对未冻结。 - In-Progress: A check has been sent for this pair, but the transaction is in progress.
进行中:已为此候选对发送检查,但事物正在进行中。 - Succeeded: A check has been sent for this pair, and it produced a successful result.
成功:已为此候选对发送检查,并产生了成功的结果。 - Failed: A check has been sent for this pair, and it failed (a response to the check was never received, or a failure response was received).
失败:已为此候选对发送检查,但失败(从未收到对检查的响应,或收到失败响应)。 - Frozen: A check for this pair has not been sent, and it cannot be sent until the pair is unfrozen and moved into the Waiting state.
冻结:尚未为此候选对发送检查,直到该对解冻并进入等待状态后才能发送。
Pairs move between states as shown in Figure 6.
对在状态之间转换如图 6 所示。
The initial states for each pair in a checklist are computed by performing the following sequence of steps:
checklist中每一对的初始状态是通过执行以下步骤序列来计算的:
- The checklists are placed in an ordered list (the order is determined by each ICE usage), called the “checklist set”.
将checklist放在一个有序列表中(顺序由每个ICE的使用情况决定),称为“checklist set”。 - The ICE agent initially places all candidate pairs in the Frozen state.
ICE 代理最初将所有候选对置于 Frozen 状态。 - The agent sets all of the checklists in the checklist set to the Running state.
代理将检查表集中的所有检查表设置为运行状态。 - For each foundation, the agent sets the state of exactly one candidate pair to the Waiting state (unfreezing it). The candidate pair to unfreeze is chosen by finding the first candidate pair (ordered by the lowest component ID and then the highest priority if component IDs are equal) in the first checklist (according to the usage-defined checklist set order) that has that foundation.
对于每个foundation,代理将一个候选对的状态设置为等待状态(将其解冻)。 通过在具有该foundation的第一个检查表(根据使用定义的检查表集顺序)中找到第一个候选对(按最低的组件 ID 排序,如果组件 ID 相等,则按最高优先级排序)来选择要解冻的候选对 .
NOTE: The procedures above are different from RFC 5245, where only candidate pairs in the first checklist were initially placed in the Waiting state.
注意:上述过程与 [RFC 5245] 不同,其中只有第一个检查表中的候选对最初处于等待状态。
Now it applies to candidate pairs in the first checklist that have that foundation, even if the checklist is not the first one in the checklist set.
现在它适用于具有该foundation的第一个检查表中的候选对,即使检查表不是检查表集中的第一个。
The table below illustrates an example.Table legend:
下表说明了一个示例。表图例:
Each row (m1, m2,…) represents a checklist associated with a data stream. m1 represents the first checklist in the checklist set.
每行 (m1, m2,…) 代表一个与数据流相关联的检查表。 m1 代表检查表集中的第一个检查表。
Each column (f1, f2,…) represents a foundation. Every candidate pair within a given column share the same foundation.
每列 (f1, f2,…) 代表一个foundation。 给定列中的每个候选对共享相同的foundation。
f-cp represents a candidate pair in the Frozen state.
f-cp 表示处于冻结状态的候选对。
w-cp represents a candidate pair in the Waiting state.
w-cp 表示处于 Waiting 状态的候选对。
-
The agent sets all of the pairs in the checklist set to the Frozen state.
代理将检查表中的所有候选对设置为 Frozen 状态。
-
For each foundation, the candidate pair with the lowest component ID is placed in the Waiting state, unless a candidate pair associated with the same foundation has already been put in the Waiting state in one of the other examined checklists in the checklist set.
对于每个foundation,具有最低组件 ID 的候选对被置于等待状态,除非与同一foundation关联的候选对已经在检查清单集中的其他检查清单之一中置于等待状态。
表 1:配对状态示例
In the first checklist (m1), the candidate pair for each foundation is placed in the Waiting state, as no pairs for the same foundations have yet been placed in the Waiting state.
在第一个检查表 (m1) 中,每个foundation的候选对都处于等待状态,因为尚未将相同foundation的任何对置于等待状态。
In the second checklist (m2), the candidate pair for foundation f4 is placed in the Waiting state. The candidate pair for foundations f1, f2, and f3 are kept in the Frozen state, as candidate pairs for those foundations have already been placed in the Waiting state (within checklist m1).
在第二个检查表 (m2) 中,f4 的候选对被置于 Waiting 状态。 f1、f2 和 f3 的候选对保持在 Frozen 状态,因为这些foundation的候选对已经被置于 Waiting 状态(在清单 m1 内)。
In the third checklist (m3), the candidate pair for foundation f5 is placed in the Waiting state. The candidate pair for foundation f1 is kept in the Frozen state, as a candidate pair for that foundation has already been placed in the Waiting state (within checklist m1).
在第三个检查表(m3)中,f5 的候选对被置于 Waiting 状态。 f1 的候选对保持在 Frozen 状态,因为该foundation的候选对已经被置于 Waiting 状态(在清单 m1 内)。
Once each checklist have been processed, one candidate pair for each foundation in the checklist set has been placed in the Waiting state.
处理完每个检查表后,检查表集中每个foundation的一个候选对已被置于等待状态。
6.1.3. ICE State【ICE状态】
The ICE agent has a state determined by the state of the checklists. The state is Completed if all checklists are Completed, Failed if all checklists are Failed, or Running otherwise.
ICE 代理的状态由检查表的状态确定。 如果所有检查表都已完成,则状态为 Completed,如果所有清单都失败,则状态为 Failed,否则状态为 Running。
6.1.4. Scheduling Checks【调度检查】
6.1.4.1. Triggered-Check Queue【触发检查队列】
Once the ICE agent has computed the checklists and created the checklist set, as described in Section 6.1.2, the agent will begin performing connectivity checks (ordinary and triggered).
一旦 ICE 代理计算了检查表并创建了检查表集,如 [Section 6.1.2] 中所述,代理将开始执行连接检查(普通和触发)。
For triggered connectivity checks, the agent maintains a FIFO queue for each checklist, referred to as the “triggered-check queue”, which contains candidate pairs for which checks are to be sent at the next available opportunity.
对于触发连接检查,代理为每个检查列表维护一个 FIFO 队列,称为“触发检查队列”,其中包含将在下一个可用机会发送检查的候选对。
The triggered-check queue is initially empty.
触发检查队列最初是空的。
6.1.4.2. Performing Connectivity Checks【执行连接检查】
The generation of ordinary and triggered connectivity checks is governed by timer Ta.
普通连接检查和触发连接检查的生成由定时器 Ta 控制。
As soon as the initial states for the candidate pairs in the checklist set have been set, a check is performed for a candidate pair within the first checklist in the Running state, following the procedures in Section 7.
一旦检查表集中候选对的初始状态已经设置,就会按照 [第 7 节] 中的过程对处于运行状态的第一个检查表中的候选对执行检查。
After that, whenever Ta fires the next checklist in the Running state in the checklist set is picked, and a check is performed for a candidate within that checklist.
之后,每当 Ta 触发检查列表集中处于运行状态的下一个检查列表时,都会选择该检查列表中的候选者。
After the last checklist in the Running state in the checklist set has been processed, the first checklist is picked again, etc.
处理完清单集中处于运行状态的最后一个清单后,再次选取第一个清单,以此类推
Whenever Ta fires, the ICE agent will perform a check for a candidate pair within the checklist that was picked by performing the following steps:
每当 Ta 触发时,ICE 代理将对通过执行以下步骤选择的清单中的候选对执行检查:
- If the triggered-check queue associated with the checklist contains one or more candidate pairs, the agent removes the top pair from the queue, performs a connectivity check on that pair, puts the candidate pair state to In-Progress, and aborts the subsequent steps.
如果与检查表关联的触发检查队列包含一个或多个候选对,则代理会从队列中删除顶部对,对该对执行连接性检查,将候选对状态置于进行中,并中止后续步骤 . - If there is no candidate pair in the Waiting state, and if there are one or more pairs in the Frozen state, the agent checks the foundation associated with each pair in the Frozen state.
如果没有处于 Waiting 状态的候选对,并且如果有一对或多对处于 Frozen 状态,则代理检查与处于 Frozen 状态的每一对关联的foundation。
For a given foundation, if there is no pair (in any checklist in the checklist set) in the Waiting or In-Progress state, the agent puts the candidate pair state to Waiting and continues with the next step.
对于给定的foundation,如果没有处于 Waiting 或 In-Progress 状态的对(在清单集中的任何清单中),则代理将候选对状态置于 Waiting 并继续下一步。 - If there are one or more candidate pairs in the Waiting state, the agent picks the highest-priority candidate pair (if there are multiple pairs with the same priority, the pair with the lowest component ID is picked) in the Waiting state, performs a connectivity check on that pair, puts the candidate pair state to In-Progress, and aborts the subsequent steps.
如果有一个或多个处于 Waiting 状态的候选对,则代理选择处于 Waiting 状态的优先级最高的候选对(如果有多个具有相同优先级的对,则选择具有最低组件 ID 的对), 执行该对的连通性检查,将候选对状态置于进行中,并中止后续步骤。 - If this step is reached, no check could be performed for the checklist that was picked. So, without waiting for timer Ta to expire again, select the next checklist in the Running state and return to step #1.
如果到了这一步,就不能对拣选的检查表进行检查。 因此,无需等待计时器 Ta 再次到期,选择运行状态下的下一个检查表并返回步骤 #1
If this happens for every single checklist in the Running state, meaning there are no remaining candidate pairs to perform connectivity checks for, abort these steps.
如果处于运行状态的每个检查表都发生这种情况,这意味着没有剩余的候选对来执行连接检查,请中止这些步骤。
Once the agent has picked a candidate pair for which a connectivity check is to be performed, the agent starts a check and sends the Binding request from the base associated with the local candidate of the pair to the remote candidate of the pair, as described in Section 7.2.4.
一旦代理选择了要执行连接性检查的候选对,代理就会开始检查并将绑定请求从与该对的本地候选相关联的base发送到该对的远程候选,如中所述 [第 7.2.4 节]。
Based on local policy, an agent MAY choose to terminate performing the connectivity checks for one or more checklists in the checklist set at any time. However, only the controlling agent is allowed to conclude ICE (Section 8).
根据本地策略,代理可以随时选择终止对检查表集中的一个或多个检查表执行连接检查。但是,只有控制代理人才被允许协商ICE(第 8 节)。
To compute the message integrity for the check, the agent uses the remote username fragment and password learned from the candidate information obtained from its peer.
为了计算检查的消息完整性,代理使用从对等方获得的候选信息中学习的远程用户名片段和密码。
The local username fragment is known directly by the agent for its own candidate.
本地用户名片段由其自己的候选者的代理直接知道。
6.2. Lite Implementation Procedures【精简版实施过程】
Lite implementations skip most of the steps in Section 6 except for verifying the peer’s ICE support and determining its role in the ICE processing.
Lite 实现跳过了 [第 6 节] 中的大部分步骤,除了验证对等方的 ICE 支持并确定其在 ICE 处理中的角色。
If the lite implementation is the controlling agent (which will only happen if the peer ICE agent is also a lite implementation), it selects a candidate pair based on the ones in the candidate exchange (for IPv4, there is only ever one pair) and then updates the peer with the new candidate information reflecting that selection, if needed (it is never needed for an IPv4-only host).
如果 lite 实现是控制代理(仅当对等 ICE 代理也是 lite 实现时才会发生),它会根据候选交换中的那些选择一个候选对(对于 IPv4,只有一对)和 然后根据需要用反映该选择的新候选信息更新peer(仅 IPv4 的主机从不需要它)。