要了解使用 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 加速與雙線站群伺服器有什麼不同》