Page 287 - Web性能权威指南
P. 287
• 不保证消息交付
不确认,不重传,无超时。
• 不保证交付顺序
不设置包序号,不重排,不会发生队首阻塞。
• 不跟踪连接状态
不必建立连接或重启状态机。
• 不需要拥塞控制
不内置客户端或网络反馈机制。
进一步讨论之前,建议大家回顾一下第 3 章,特别是 3.1 节“无协议服
务”,以重温 UDP 的工作原理。
UDP 不保证数据的可靠性或者次序,只要有包到来就直接交给应用。事实上, UDP
只是对 IP 层的简单封装。
WebRTC 就使用 UDP 作为传输层协议:低延迟和及时性才是关键。因此,只要打
开音频、视频,应用就会发送 UDP 包,然后就搞定了?还没那么简单。我们还是需
要一些机制,穿透层层 NAT 和防火墙,为每个流协商参数,对用户数据进行加密,
实现拥塞和流量控制,等等。
UDP 是浏览器实时通信的基础,但要完全达到 WebRTC 的要求,浏览器还需要位
于其上的大量协议和服务的支持(图 18-3)。
ࣷࣆ֫DŽDTLSDžǖՂႴ
ࣷࣆ֫DŽTLSDžǖ a a
د֫DŽTCPDž د֫DŽUDPDž
ྪஏ֫DŽIPDž
图 18-3:WebRTC 的协议分层
WebRTC | 277