一分鐘快速理解 CDN 加速原理

一、是什麼

CDN (全稱 Content Delivery Network),即內容分發網絡

構建在現有網絡基礎之上的智能虛擬網絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。CDN 的關鍵技術主要有內容存儲和分發技術

簡單來講,CDN就是根據用戶位置分配最近的資源

於是,用戶在上網的時候不用直接訪問源站,而是訪問離他 “最近的” 一個 CDN 節點,術語叫「邊緣節點」,其實就是緩存了源站內容的代理服務器。如下圖:

二、原理分析

在沒有應用CDN時,我們使用域名訪問某一個站點時的路徑爲

用戶提交域名→瀏覽器對域名進行解釋→DNS 解析得到目的主機的 IP 地址→根據 IP 地址訪問發出請求→得到請求數據並回復

應用CDN後,DNS 返回的不再是 IP 地址,而是一個CNAME(Canonical Name) 別名記錄,指向CDN的全局負載均衡

CNAME實際上在域名解析的過程中承擔了中間人(或者說代理)的角色,這是CDN實現的關鍵

負載均衡系統

由於沒有返回IP地址,於是本地DNS會向負載均衡系統再發送請求  ,則進入到CDN的全局負載均衡系統進行智能調度:

結合上面的因素,得到最合適的邊緣節點,然後把這個節點返回給用戶,用戶就能夠就近訪問CDN的緩存代理

整體流程如下圖:

緩存代理

緩存系統是 CDN的另一個關鍵組成部分,緩存系統會有選擇地緩存那些最常用的那些資源

其中有兩個衡量CDN服務質量的指標:

緩存系統也可以劃分出層次,分成一級緩存節點和二級緩存節點。一級緩存配置高一些,直連源站,二級緩存配置低一些,直連用戶

回源的時候二級緩存只找一級緩存,一級緩存沒有才回源站,可以有效地減少真正的回源

現在的商業 CDN命中率都在 90% 以上,相當於把源站的服務能力放大了 10 倍以上

三、總結

CDN 目的是爲了改善互聯網的服務質量,通俗一點說其實就是提高訪問速度

CDN 構建了全國、全球級別的專網,讓用戶就近訪問專網裏的邊緣節點,降低了傳輸延遲,實現了網站加速

通過CDN的負載均衡系統,智能調度邊緣節點提供服務,相當於CDN服務的大腦,而緩存系統相當於CDN的心臟,緩存命中直接返回給用戶,否則回源

參考文獻

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/UZwo2Z9ggMfSy1YoLevZvg