跳到主要内容

3. 术语 (Terminology)

本文档中的关键词 "必须", "不得", "要求", "SHALL", "SHALL NOT", "应该", "不应该", "推荐", "可以", 和 "可选" 应按 RFC 2119 [RFC2119] 中的说明解释.

读者应熟悉 offer/answer 模型 [RFC3264], STUN [RFC5389], 以及 UDP 的 NAT 行为要求 [RFC4787] 中定义的术语.

本规范使用以下附加术语:

  • Agent (代理): 如 RFC 3264 所定义, agent 是参与 offer/answer 交换的协议实现. 一个 offer/answer 交换涉及两个 agent.

  • Peer (对等方): 从会话中某个 agent 的视角看, 其 peer 是另一个 agent. 具体而言, 从 offerer 的视角看, peer 是 answerer. 从 answerer 的视角看, peer 是 offerer.

  • Transport Address (传输地址): IP 地址和传输协议端口, 例如 UDP 或 TCP 端口, 的组合.

  • Candidate (候选项): 一个传输地址, 可作为接收媒体的潜在接触点. Candidate 还具有若干属性: 类型 (server reflexive, relayed 或 host), priority, foundation 和 base.

  • Component (组件): Component 是媒体流中需要单一传输地址的一部分; 一个媒体流可能需要多个 component, 且每个 component 都必须可用, 整个媒体流才能工作. 对基于 RTP 的媒体流, 每个媒体流有两个 component: 一个用于 RTP, 一个用于 RTCP.

  • Host Candidate (主机候选项): 通过在主机上某个 IP 地址的特定端口上绑定而获得的 candidate. 这包括物理接口和逻辑接口上的 IP 地址, 例如通过 Virtual Private Network (VPN) 和 Realm Specific IP (RSIP) [RFC3102] 获得的地址, 后者位于操作系统层.

  • Server Reflexive Candidate (服务器反射候选项): 当 agent 通过 NAT 向服务器发送分组时, NAT 为该 agent 分配的绑定所形成的 IP 地址和端口. Server reflexive candidate 可以由 STUN server 使用 Binding request 学到, 也可以由 TURN server 提供; TURN server 同时提供 relayed candidate 和 server reflexive candidate.

  • Peer Reflexive Candidate (对等反射候选项): 当 agent 通过 NAT 向其 peer 发送 STUN Binding request 时, NAT 为该 agent 分配的绑定所形成的 IP 地址和端口.

  • Relayed Candidate (中继候选项): 通过从 host candidate 向 TURN server 发送 TURN Allocate request 而获得的 candidate. Relayed candidate 驻留在 TURN server 上, TURN server 将分组中继回 agent.

  • Base (基址): Server reflexive candidate 的 base 是派生出它的 host candidate. Host candidate 也被认为具有 base, 其 base 等于该 candidate 本身. 类似地, relayed candidate 的 base 是该 candidate 本身.

  • Foundation (基础): 一个任意字符串. 当两个 candidate 具有相同的类型, base IP 地址, 协议 (UDP, TCP 等), 以及 STUN 或 TURN server 时, 它们具有相同的 foundation. 如果其中任何一项不同, foundation 就不同. 具有相同 foundation 的两个 candidate pair 很可能具有相似的网络特性. Foundation 用于 frozen algorithm.

  • Local Candidate (本地候选项): Agent 已获得并包含在其发送的 offer 或 answer 中的 candidate.

  • Remote Candidate (远端候选项): Agent 从其 peer 发送的 offer 或 answer 中收到的 candidate.

  • Default Destination/Candidate (默认目的地/候选项): 媒体流某个 component 的 default destination 是不感知 ICE 的 agent 会使用的传输地址. 对 RTP component, 默认 IP 地址位于 SDP 的 c line 中, 端口位于 m line 中. 对 RTCP component, 若存在 rtcp attribute, 则位于该属性中; 若不存在, IP 地址位于 c line 中, 端口为 m line 中端口加 1. 某个 component 的 default candidate 是其传输地址与该 component 的 default destination 匹配的 candidate.

  • Candidate Pair (候选项对): 包含一个 local candidate 和一个 remote candidate 的配对.

  • Check, Connectivity Check, STUN Check (检查, 连接检查, STUN 检查): 用于验证连通性的 STUN Binding request 事务. Check 从 candidate pair 的 local candidate 发送到 remote candidate.

  • Check List (检查列表): Agent 将用于生成 checks 的有序 candidate pair 集合.

  • Ordinary Check (普通检查): Agent 因周期性触发的定时器而生成的 connectivity check, 该定时器指示其发送一个 check.

  • Triggered Check (触发检查): 因从 peer 收到 connectivity check 而生成的 connectivity check.

  • Valid List (有效列表): 媒体流中已通过成功 STUN 事务验证的 candidate pair 的有序集合.

  • Full (完整实现): 执行本规范定义的完整功能集的 ICE 实现.

  • Lite (轻量实现): 省略某些功能的 ICE 实现, 只实现必要功能, 以便 full peer implementation 能够获得 ICE 的收益. Lite implementation 不维护任何状态机, 也不生成 connectivity checks.

  • Controlling Agent (控制代理): 负责选择最终 candidate pair, 并在需要时通过 STUN 和 updated offer 发信令通知这些选择的 ICE agent. 在任意会话中, 总有一个 agent 是 controlling. 另一个是 controlled agent.

  • Controlled Agent (受控代理): 等待 controlling agent 选择最终 candidate pair 的 ICE agent.

  • Regular Nomination (常规提名): 先用一个 STUN request 验证某个有效 candidate pair, 然后再通过发送第二个带有标志的 STUN request 指示其被 nominated, 从而为媒体流量选择该有效 pair 的过程.

  • Aggressive Nomination (激进提名): 在每个 STUN request 中都包含一个标志, 使第一个产生有效 candidate pair 的 check 被用于媒体流量的选择过程.

  • Nominated (已提名): 如果某个有效 candidate pair 的 nominated flag 被置位, 表示 ICE 可以选择它用于发送和接收媒体.

  • Selected Pair, Selected Candidate (选定对, 选定候选项): ICE 为发送和接收媒体所选择的 candidate pair 称为 selected pair, 其中每个 candidate 称为 selected candidate.