要了解使用 CDN 加速如何提高 SSL 效能,让我们首先回顾一下 SSL 连线与常规 TCP 连线有何不同。
典型的 TCP 连线是通过称为三向握手的过程建立的。在其中,客户端发出连线请求 (SYN),接收确认 (SYN/ACK),然后以自己的确认 (ACK) 进行响应。这将关闭回圈并建立连线。
一、二、三……来回。假设没有打嗝,完成握手所需的时间应该正好等於单次往返时间 (RTT) 。
另一方面,协商 SSL/TLS 连线需要一些额外的来回。这是因为浏览器和站群服务器现在还需要:
就一种相互相容的加密方法达成一致。
经历一个相互验证的过程。
生成对称金钥,用于对会话期间交换的所有资讯进行编码和解码。推荐阅读:《CDN 加速的作用都有哪些》
这些额外的互动会增加流程的开销,导致额外的两次往返——或更多,具体取决于您的站群服务器配置。
CDN 加速如何增强 SSL/TLS 效能
例如:如果从旧金山到伦敦站群服务器的往返时间为 50 毫秒,那么建立 SSL/TLS 握手至少需要 150 毫秒。
解决方案:使用 CDN 加速减少往返时间
对于大多数人来说,SSL 安全性的好处远远超过连线时间较长的缺点。尽管如此,开销仍然令人讨厌,这就是为什么许多线上企业站群使用 CDN 加速来补偿一些增加的延迟。
缩短往返时间是 CDN 加速的核心功能,CDN 加速是一项专门设计用于通过减少您的网站与其多用户之间的物理距离来提高响应速度的服务。
通过减少往返时间,CDN 加速还加快了 SSL/TLS 协商过程中的所有互动。因为握手至少需要三次往返,所以 CDN 加速每减少一毫秒,您就会获得三倍的效果。推荐阅读:《在选择 CDN 服务商时要考虑哪些因素》
例如:如果从旧金山到伦敦站群服务器的往返时间为 50 毫秒,那么建立 SSL/TLS 握手至少需要 150 毫秒。
请注意,仅当您的 CDN 加速已与源站群服务器建立开放连线时,上述场景才适用。否则,在 SSL/TLS 连线的第一段就位后,CDN 加速仍需要发起第二次协商过程。在这里,SSL 开销保持不变 (甚至可能更长一些) 。
这里重要的是确保您的 CDN 加速具有保持活动功能,也称为持久连线。通过保持活动,CDN 加速一次在不同多用户会话之间保持与站群服务器的开放连线几分钟。
这意味著,只要您的网站每隔几分钟被访问一次,CDN 加速和源站群服务器就不必重新参与额外的 SSL/TLS 协商。您的所有访客都受益于更快的握手时间。
例如:与 LA 代理建立 SSL 连线后,在没有保活功能的情况下,CDN 加速必须重新开启与伦敦源站群服务器的连线。洛杉矶和伦敦之间的往返时间为 30 毫秒,因此协商第二个 SSL 连线需要 90 毫秒。这使总握手时间回到 150 毫秒。推荐相关阅读:《海外站群服务器 CDN 加速与双线站群服务器有什么不同》