跳到主要内容

4. 要求

本节列出两个浏览器之间 Peer-to-Peer (P2P) 数据通道的要求. 请注意, 本节仅供参考.

要求 1: 必须支持多个同时存在的数据通道. 请注意, 在同一 PeerConnection 中, 可能有零个或多个 SRTP 媒体流与数据通道并行存在, 并且这些 SRTP 媒体流的数量和状态 (active/inactive) 可能随时变化.

要求 2: 必须同时支持可靠和不可靠的数据通道.

要求 3: PeerConnection 的数据通道必须单独地, 作为一个类别, 或与该 PeerConnection 的 SRTP 媒体流一起进行拥塞控制. 这可确保数据通道不会给这些 SRTP 媒体流造成拥塞问题, 并确保 WebRTC PeerConnection 在与 TCP 连接并行运行时不会造成过度问题.

要求 4: 应用应能提供每个数据通道相对于彼此以及相对于 SRTP 媒体流的相对优先级指引. 这会与拥塞控制算法交互.

要求 5: 数据通道必须受到保护, 以提供机密性, 完整性和源认证. 详细信息见 [RFC8826] 和 [RFC8827].

要求 6: 数据通道必须提供消息分片支持, 使得无论 JavaScript 应用传入要发送的消息有多大, 都能避免 IP 层分片. 它还必须确保大型数据通道传输不会不适当地延迟其他数据通道上的流量.

要求 7: 数据通道传输协议禁止在其协议字段内编码本地 IP 地址; 这样做会暴露潜在的私有信息, 并且如果依赖该地址, 会导致失败.

要求 8: 数据通道传输协议应在应用层支持无界长度的 "messages" (即虚拟套接字流), 用于图像文件传输等场景; 实现可以强制执行合理的消息大小限制.

要求 9: 数据通道传输协议应避免 IP 分片. 它必须支持 Path MTU (PMTU) 发现, 并且不得依赖 ICMP 或 ICMPv6 的生成或回传, 尤其是不得依赖它们进行 PMTU 发现.

要求 10: 必须能够在用户应用空间中实现该协议栈.