Passa al contenuto principale

4. Requirements (需求)

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

Req. 1: 必须 (MUST) 支持多个同时存在的数据通道。请注意,在同一PeerConnection中,可能存在零个或多个与数据通道并行的SRTP媒体流,并且这些SRTP媒体流的数量和状态 (活动/非活动) 可能随时改变。

Req. 2: 必须 (MUST) 同时支持可靠和不可靠的数据通道。

Req. 3: PeerConnection的数据通道必须 (MUST) 进行拥塞控制,可以单独控制,作为一个类别控制,或与PeerConnection的SRTP媒体流联合控制。这确保数据通道不会对这些SRTP媒体流造成拥塞问题,并且WebRTC PeerConnection在与TCP连接并行运行时不会造成过度问题。

Req. 4: 应用程序应该 (SHOULD) 能够提供关于每个数据通道相对于彼此以及相对于SRTP媒体流的相对优先级的指导。这将与拥塞控制算法交互。

Req. 5: 数据通道必须 (MUST) 是安全的,这允许机密性,完整性和源认证。详细信息请参见 [RFC8826] 和 [RFC8827]。

Req. 6: 数据通道必须 (MUST) 提供消息分片 (Message Fragmentation) 支持,以便无论JavaScript应用程序传递要发送的消息有多大,都可以避免IP层分片。它还必须 (MUST) 确保大型数据通道传输不会过度延迟其他数据通道上的流量。

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

Req. 8: 数据通道传输协议应该 (SHOULD) 在应用层支持无界长度的"消息" (即虚拟套接字流),用于诸如图像文件传输之类的事情,实现可能会强制执行合理的消息大小限制。

Req. 9: 数据通道传输协议应该 (SHOULD) 避免IP分片。它必须 (MUST) 支持路径MTU (Path MTU, PMTU) 发现,并且禁止 (MUST NOT) 依赖ICMP或ICMPv6的生成或传回,特别是对于PMTU发现。

Req. 10: 必须 (MUST) 能够在用户应用程序空间中实现协议栈。