跳到主要内容

5. 详细设计 (Detailed Design)

5. 详细设计 (Detailed Design)

本文档定义了 user agents 可以实现的若干 "IP handling modes". 这些 modes 决定收集和暴露哪些 ICE candidates.

Mode 1: 枚举所有地址 (Enumerate all addresses, Default for trusted apps)

收集所有 host, server reflexive 和 relay candidates. 这提供最佳连接性, 但隐私性最低.

仅收集与 default route (用于访问 internet 的 interface) 关联的 candidate.

  • Default public IP: 暴露.
  • Associated private IP: 与 default route 关联的 private IP MAY 使用 mDNS (Multicast DNS) 隐藏.

Mode 3: 仅 Relay (Relay only, High privacy)

仅收集 relay candidates (TURN).

  • Host/Reflexive candidates: 被抑制.
  • Privacy: 高. 不会向 peer 直接暴露 local 或 public IP; traffic 通过 TURN server.
  • Cost: 需要 TURN server resources 并增加 latency.

Mode 4: 仅公共接口 (Public interfaces only)

仅收集 public IP addresses 的 host candidates. Private addresses 会被忽略.

用于 Host Candidates 的 mDNS (mDNS for Host Candidates)

为了在不暴露实际 private IP address 的情况下允许 local LAN connectivity, browsers 可以使用 mDNS hostnames (例如 [uuid].local) 作为 ICE candidates. 如果 peer 位于同一网络, browser 会在本地解析这些 hostnames, 从而允许直接连接且不向应用程序暴露 numeric IP.