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
   302   303   304   305   306   307   308   309   310   311   312