4. Terminology (术语)
本文档中的关键词"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY"和"OPTIONAL"应按照BCP 14 [RFC2119] [RFC8174]中所述进行解释, 当且仅当它们以全大写形式出现时。
读者需要熟悉[RFC5389]和UDP的NAT行为要求 [RFC4787]中定义的术语。
本规范使用以下附加术语:
ICE会话 (ICE Session): ICE会话包括所有与ICE相关的操作, 从候选收集开始, 然后是ICE代理之间的交互 (候选交换、连通性检查、提名和保活), 直到释放所有候选或触发ICE重启。
ICE代理、代理 (ICE Agent, Agent): ICE代理 (有时简称为"代理") 是参与ICE候选交换的协议实现。典型的候选交换中涉及两个代理。
发起对等方、发起代理、发起方 (Initiating Peer, Initiating Agent, Initiator): 发起代理是启动ICE候选交换过程的ICE代理。
响应对等方、响应代理、响应方 (Responding Peer, Responding Agent, Responder): 响应代理是接收并响应由发起代理启动的候选交换过程的ICE代理。
ICE候选交换、候选交换 (ICE Candidate Exchange, Candidate Exchange): ICE代理交换执行ICE所需的信息 (例如, 候选和密码) 的过程。使用SDP编码的Offer/Answer [RFC3264] 是可用于交换候选信息的协议的一个示例。
对等方 (Peer): 从会话中一个ICE代理的角度来看, 其对等方是另一个代理。具体来说, 从发起代理的角度来看, 对等方是响应代理。从响应代理的角度来看, 对等方是发起代理。
传输地址 (Transport Address): IP地址和传输协议 (如UDP或TCP) 端口的组合。
数据、数据流、数据会话 (Data, Data Stream, Data Session): 当ICE用于建立数据会话时, 数据使用某种协议传输。媒体通常通过RTP传输, 由RTP数据包流组成。数据会话是指在使用ICE创建和测试的路径上的对等方之间交换的数据包。
候选、候选信息 (Candidate, Candidate Information): 作为接收数据的潜在联系点的传输地址。候选还具有属性 -- 其类型 (服务器反射、中继或主机)、优先级、基础和基础地址。
组件 (Component): 组件是数据流的一部分。数据流可能需要多个组件, 每个组件都必须工作才能使整个数据流工作。对于RTP/RTCP数据流, 除非RTP和RTCP在同一端口上多路复用, 否则每个数据流有两个组件 -- 一个用于RTP, 一个用于RTCP。组件具有候选对, 其他组件不能使用该候选对。
主机候选 (Host Candidate): 通过从主机上的IP地址绑定到特定端口获得的候选。这包括物理接口和逻辑接口上的IP地址, 例如通过VPN获得的地址。
服务器反射候选 (Server-Reflexive Candidate): 其IP地址和端口是ICE代理通过NAT向服务器 (如STUN服务器) 发送数据包后NAT为其分配的绑定的候选。
对等反射候选 (Peer-Reflexive Candidate): 其IP地址和端口是ICE代理通过NAT向其对等方发送数据包后NAT为其分配的绑定的候选。
中继候选 (Relayed Candidate): 从中继服务器 (如TURN服务器) 获得的候选。
基础 (Base): ICE代理为特定候选发送数据时使用的传输地址。对于主机、服务器反射和对等反射候选, 基础与主机候选相同。对于中继候选, 基础与中继候选相同 (即, TURN服务器用于发送的传输地址)。
相关地址和端口 (Related Address and Port): 与候选相关的传输地址, 可用于诊断和其他目的。如果候选是服务器或对等反射, 则相关地址和端口等于该服务器或对等反射候选的基础。如果候选是中继, 则相关地址和端口等于为客户端提供该中继候选的Allocate响应中的映射地址。如果候选是主机候选, 则相关地址和端口与主机候选相同。
基础标识 (Foundation): 在冻结算法中用于分组相似候选的任意字符串。对于具有相同类型、基础IP地址、协议 (UDP、TCP等) 和STUN或TURN服务器的两个候选, 它是相同的。如果其中任何一个不同, 则基础标识将不同。
本地候选 (Local Candidate): ICE代理获得并可能发送给其对等方的候选。
远程候选 (Remote Candidate): ICE代理从其对等方接收的候选。
默认目标/候选 (Default Destination/Candidate): 数据流组件的默认目标是不支持ICE的ICE代理将使用的传输地址。组件的默认候选是其传输地址与该组件的默认目标匹配的候选。
候选对 (Candidate Pair): 包含本地候选和远程候选的对。
检查、连通性检查、STUN检查 (Check, Connectivity Check, STUN Check): 用于验证连通性的STUN Binding请求。检查从本地候选的基础发送到候选对的远程候选。
检查列表 (Checklist): ICE代理将用于生成检查的候选对的有序集合。
普通检查 (Ordinary Check): 由ICE代理作为定期触发的计时器的结果生成的连通性检查, 指示它发送检查。
触发检查 (Triggered Check): 作为从对等方接收连通性检查的结果生成的连通性检查。
有效对 (Valid Pair): 其本地候选等于成功的连通性检查响应的映射地址, 其远程候选等于连通性检查请求发送到的目标地址的候选对。
有效列表 (Valid List): 已通过成功的STUN事务验证的数据流的候选对的有序集合。
检查列表集 (Checklist Set): 所有检查列表的有序列表。顺序由每个ICE用法确定。
完整实现 (Full Implementation): 执行本规范定义的完整功能集的ICE实现。
Lite实现 (Lite Implementation): 省略某些功能的ICE实现, 仅实现对于不是lite实现的对等方获得ICE好处所必需的功能。Lite实现不维护任何状态机, 也不生成连通性检查。
控制代理 (Controlling Agent): 提名候选对的ICE代理。在任何会话中, 始终有一个控制代理和一个受控代理。
受控代理 (Controlled Agent): 等待控制代理提名候选对的ICE代理。
提名 (Nomination): 控制代理向受控代理指示ICE代理将用于发送和接收数据的候选对的过程。本规范中定义的提名过程在RFC 5245中被称为"常规提名"。RFC 5245中称为"激进提名"的提名过程在本规范中已被弃用。
已提名、提名标志 (Nominated, Nominated Flag): 一旦候选对的提名成功, 候选对就变为已提名, 其提名标志的值设置为true。
选定对、选定候选对 (Selected Pair, Selected Candidate Pair): 用于为数据流的组件发送和接收数据的候选对称为"选定对"。在为数据流生成选定对之前, 与数据流组件相关联的任何有效对都可用于为该组件发送和接收数据。一旦数据流的每个组件都有提名对, 提名对就成为数据流的选定对。与选定对相关联的候选称为"选定候选"。
使用协议、ICE用法 (Using Protocol, ICE Usage): 使用ICE进行NAT穿越的协议。用法规范定义了如何将此处定义的过程应用于该协议的特定于协议的详细信息。
计时器Ta (Timer Ta): 用于生成新的STUN或TURN事务的计时器。
计时器RTO (重传超时) (Timer RTO, Retransmission Timeout): 给定STUN或TURN事务的重传计时器。