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 章
   283   284   285   286   287   288   289   290   291   292   293