10. 配对新收集的本地候选地址 (Pairing Newly Gathered Local Candidates)
当Trickle ICE代理收集本地候选地址时,它需要形成候选地址对; 这按照ICE规范 [RFC8445] 中的描述工作,但有以下条件:
- Trickle ICE代理禁止 (MUST NOT) 在本地候选地址被逐步传递给远程方之前对其进行配对。
- 一旦代理将本地候选地址传递给远程方,代理将检查此相同流和组件当前是否已知任何远程候选地址。如果没有,代理仅将新候选地址添加到本地候选地址列表 (不配对)。
- 否则,如果代理已经获知此流和组件的一个或多个远程候选地址,则它会尝试如ICE规范 [RFC8445] 中所述配对新的本地候选地址。
- 如果新形成的候选地址对具有类型为服务器反射的本地候选地址,则代理必须 (MUST) 在完成相关冗余测试之前用其基础替换本地候选地址。
- 代理通过遵循 [RFC8445] 的 第6.1.2.4节 中的规则来修剪冗余候选地址对,但仅检查具有等待 (Waiting) 或冻结 (Frozen) 状态的现有候选地址对; 这避免了移除连接性检查正在进行中的候选地址对 (处于进行中 (In-Progress) 状态) 或连接性检查已经产生明确结果的候选地址对 (处于成功 (Succeeded) 或失败 (Failed) 状态)。
- 如果在完成相关冗余测试后,要添加候选地址对的检查列表已包含最大数量的候选地址对 (根据 [RFC8445] 默认为100),则代理应该 (SHOULD) 丢弃处于失败状态的任何候选地址对以为新候选地址对腾出空间。如果没有这样的候选地址对,代理应该 (SHOULD) 丢弃优先级低于新候选地址对的候选地址对,以便为新候选地址对腾出空间,直到候选地址对的数量等于最大候选地址对数量。此处理与 [RFC8445] 的 第6.1.2.5节 一致。