16. 半逐步传递 (Half Trickle)
在半逐步传递中,发起方传递初始ICE描述时包含可用但不一定完整的一代候选地址。这确保了ICE描述可以由常规ICE响应方处理,主要用于在传递初始ICE描述之前无法确认对Trickle ICE的支持的情况。初始ICE描述指示对Trickle ICE的支持,以便响应方可以使用少于完整一代的候选地址进行响应,然后逐步传递其余候选地址。半逐步传递的初始ICE描述可以包含候选地址结束指示,尽管这不是强制性的,因为如果确认了逐步传递支持,则发起方可以选择在传递候选地址结束指示之前逐步传递其他候选地址。
半逐步传递机制可以在无法预先验证远程方是否支持Trickle ICE的情况下使用。因为初始ICE描述包含完整的一代候选地址,因此可以由常规ICE代理处理,同时仍允许Trickle ICE代理使用本规范中定义的优化。这可以防止在前一种情况下协商失败,同时在后一种情况下仍然提供大约一半的Trickle ICE优势。
仅在ICE描述的初始交换期间才需要使用半逐步传递。在双方都从对等方接收到ICE描述之后,它们都可以可靠地确定Trickle ICE支持,并在所有后续交换中使用它 (见第15节)。
在某些情况下,使用半逐步传递可能在用户体验方面带来超过一半的改善。这可能发生在代理根据用户界面提示开始收集候选地址的情况下,用户界面提示表明用户很快将发起交互,例如键盘上的活动或电话摘机。这意味着在代理实际需要传递候选地址信息之前,可以完成部分或全部候选地址收集。由于响应方将能够逐步传递候选地址,因此两个代理都将能够开始连接性检查并比使用常规ICE更早地完成ICE处理,甚至可能与使用完全逐步传递一样早。
但是,这种预期并不总是可能的。例如,多用途用户代理或WebRTC网页,其中通信是非中心功能 (例如,在主要功能出现问题时呼叫支持热线),不一定有办法区分呼叫意图和其他用户活动。在这种情况下,使用完全逐步传递最有可能导致理想的用户体验。即便如此,使用半逐步传递也将是对常规ICE的改进,因为它将为响应方带来更好的体验。