Page 307 - Web性能权威指南
P. 307
记录序号、偏移值和重传计时器让 DTLS 在 UDP 之上实现了握手(图 18-12)。为
保证过程完整,两端都要生成自已签名的证书,然后按照常规的 TLS 握手协议走。
ᆌᆩຕ
ᆌᆩຕ
图 18-12:通过 DTLS 实现端到端的握手
完整的 DTLS 握手需要两次往返,这一点必须牢记。换句话说,建立端到
端的连接会产生额外延迟。
WebRTC 客户端自动为每一端生成自已签名的证书。因此,也就没有证书链需要验
证。DTLS 保证了加密和完整性,但把身份验证工作留给了应用;参见 4.1 节“加
密、身份验证与完整性”。最后,在满足握手要求的基础上,DTLS 为处理常规记录
可能出现的分段和乱序问题,又增加了两条重要的规则:
• DTLS 记录必须刚好放到一个网络分组中;
• 必须有一个分组密码用于加密记录数据。
常规 TLS 记录最大可以达到 16 KB。TCP 可以处理分段和组装,但 UDP 不提供这
些服务。结果,为适应 UDP 协议的乱序发送,也为了最大程度保持其语义,每个携
带应用数据的 DTLS 记录都必须放到一个 UDP 分组中。类似地,由于它们潜在依赖
记录数据的有序发送,因此也不允许使用流密码。
WebRTC | 297