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. 这提供最佳连接性, 但隐私性最低.
Mode 2: 仅默认路由 (Default route only, Recommended default)
仅收集与 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.