跳到主要内容

1. 引言

在 WebRTC 框架中, 各方之间的通信由媒体 (例如音频和视频) 以及非媒体数据组成. 媒体使用安全实时传输协议 (Secure Real-time Transport Protocol, SRTP) 发送, 此处不再进一步规定. 非媒体数据通过封装在 DTLS 中的流控制传输协议 (Stream Control Transmission Protocol, SCTP) [RFC4960] 处理. DTLS 1.0 在 [RFC4347] 中定义; 当前最新版本 DTLS 1.2 在 [RFC6347] 中定义; 即将推出的版本 DTLS 1.3 在 [TLS-DTLS13] 中定义.

+----------+
| SCTP |
+----------+
| DTLS |
+----------+
| ICE/UDP |
+----------+

Figure 1: 基本栈图

在 ICE/UDP (参见 [RFC8445]) 之上通过 DTLS (参见 [RFC8261]) 封装 SCTP, 提供了一种 NAT 穿越解决方案, 同时提供机密性, 源认证和受完整性保护的传输. 此数据传输服务与 SRTP 媒体传输并行运行, 它们最终都可以共享单个 UDP 端口号.

SCTP 按 [RFC4960] 规定, 并结合 [RFC3758] 中定义的部分可靠性扩展 (partial reliability extension, PR-SCTP) 以及 [RFC7496] 中定义的附加策略, 原生提供多个流, 并为用户消息提供可靠以及相关的部分可靠递送模式. 使用 [RFC6525] 中定义的重配置扩展, 可以在 SCTP 关联的生命周期内增加流的数量, 并允许重置单个 SCTP 流. 使用 [RFC8260] 可以交错传输大消息以避免独占, 并增加对 SCTP 流优先级排序的支持.

本文档其余部分组织如下: Section 3 和 Section 4 提供不可靠和可靠的对等数据通道的用例和需求; Section 5 讨论 UDP 上的 DTLS 上的 SCTP; Section 6 规定 WebRTC 协议框架应如何使用 SCTP 在 Web 浏览器之间传输非媒体数据.