Page 309 - Web性能权威指南
P. 309
• 在连接的生命周期中,浏览器中的媒体和网络引擎会动态调整流的品质,以适
应不断变化的网络环境,比如带宽波动、丢包、网络抖动,等等。换句话说,
WebRTC 会生成自适应的比特流(参见 6.4.2 节中的“自适应比特流”)。
WebRTC 不能保证应用提供的高清视频流会以最高品质交付,因为端到端之间的带宽
可能不够用,而且丢包现象很常见。换句话说,引擎会适应网络条件交付提供的流。
虽然实际交付的音频或视频流的品质可能比应用最初取得的流的品质低,
但反过来则不会:WebRTC 不会提升流的品质。如果应用设置了 360p 的
视频约束,那么也就设定了交付视频时占用带宽的上限。
WebRTC 是怎么优化和调整媒体流的品质的呢? WebRTC 实际上并不是通过 IP 网
络实时交付音频和视频的第一个应用。WebRTC 只是重用了 VoIP 电话使用的传输
协议、通信网关和各种商业或开源的通信服务:
• 安全实时传输协议(SRTP,Secure Real-time Transport Protocol)
通过 IP 网络交付音频和视频等实时数据的标准安全格式。
• 安全实时控制传输协议(SRTCP,Secure Real-time Control Transport Protocol)
通过 SRTP 流交付发送和接收方统计及控制信息的安全控制协议。
实时传输协议(RTP,Real-Time Transport Protocol)由 RFC 3550 定义。
然而,WebRTC 要求传输中的所有数据都必须加密。因此,WebRTC 使用
的是 RTP 的“安全版”(RFC 3711)。SRTP 和 SRTCP 前面那个 S,就是
Secure(安全)。
SRTP 为通过 IP 网络交付音频和视频定义了标准的分组格式(图 18-14)。SRTP 本
身并不对传输数据的及时性、可靠性或数据恢复提供任何保证机制,它只负责把数
字化的音频采样和视频帧用一些元数据封装起来,以辅助接收方处理这些流。
࿋
৫ࢁૌ႙ Ⴞࡽ
้क़م
ཞօᇸDŽSSRCLjSynchronization sourceDžՔ๎ޙ
֖ᇑᇸDŽCSRCLjContributing sourceDžՔ๎ޙDŽDž
RTPકቛDŽDž
ेڦRTP৫ࢁ
SRTP MKIDŽDž+ණኤՔധDŽDž
图 18-14:SRTP 首部(12 字节 + 净荷及可选字段)
WebRTC | 299