Page 288 - Web性能权威指南
P. 288
• ICE,即 Interactive Connectivity Establishment(RFC 5245)
STUN,即 Session Traversal Utilities for NAT(RFC 5389)
TURN,即 Traversal Using Relays around NAT(RFC 5766)
• SDP,即 Session Description Protocol(RFC 4566)
• DTLS,即 Datagram Transport Layer Security(RFC 6347)
• SCTP,即 Stream Control Transport Protocol(RFC 4960)
• SRTP,即 Secure Real-Time Transport Protocol(RFC 3711)
ICE、STUN 和 TURN 是通过 UDP 建立并维护端到端连接所必需的。DTLS 用于保
障传输数据的安全,毕竟加密是 WebRTC 强制的功能。最后,SCTP 和 SRTP 属于
应用层协议,用于在 UDP 之上提供不同流的多路复用、拥塞和流量控制,以及部分
可靠的交付和其他服务。
没错,这么多层是有点复杂,但为了更好地理解端到端通信的性能,我们还必须先
弄清楚这些层的作用。而这正是本章后面所要讨论的重点。好吧,开始。
不要忘了 SDP !后面会提到,SDP 是一种数据格式,用于端到端连接时协
商参数。可是,SDP 的“提议与应答”(Offer/Answer)并不在系统内部,
所以前面图中才没有体现它。
RTCPeerConnection API简介
尽管用于建立和维护端到端连接涉及的协议很多,但浏览器中的应用 API 相对简
单。其中,RTCPeerConnection 接口(图 18-4)就负责维护每一个端到端连接的完整
生命周期:
• RTCPeerConnection 管理穿越 NAT 的完整 ICE 工作流;
• RTCPeerConnection 发送自动(STUN)持久化信号;
• RTCPeerConnection 跟踪本地流;
• RTCPeerConnection 跟踪远程流;
• RTCPeerConnection 按需触发自动流协商;
• RTCPeerConnection 提供必要的 API,以生成连接提议,接收应答,允许我们查询
连接的当前状态,等等。
278 | 第 18 章