CDN網絡加速原理

2021.07.31

CDN的全稱是Content Delivery Network,即內容分發網絡。其目的是通過在現有的Internet中增加一層新的網絡架構,將網站的內容髮佈到最接近用戶的網絡“邊緣”,使用戶可以就近取得所需的內容,提高用戶訪問網站的響應速度。


本文轉載自微信公眾號「程序員小飯」,作者飯米粒 。轉載本文請聯繫程序員小飯公眾號。

 

CDN

CDN的全稱是Content Delivery Network,即內容分發網絡。其目的是通過在現有的Internet中增加一層新的網絡架構,將網站的內容髮佈到最接近用戶的網絡“邊緣”,使用戶可以就近取得所需的內容,提高用戶訪問網站的響應速度。 CDN有別於鏡像,因為它比鏡像更智能,或者可以做這樣一個比喻:CDN=更智能的鏡像+緩存+流量導流。因而,CDN可以明顯提高Internet網絡中信息流動的效率。從技術上全面解決由於網絡帶寬小、用戶訪問量大、網點分佈不均等問題,提高用戶訪問網站的響應速度。下面是一個簡單的CND示意圖


如上圖所示,是CDN一個常見的架構示意圖,其工作流程可以總結為:當用戶訪問已經加入CDN服務的網站時,首先通過DNS重定向技術確定最接近用戶的最佳CDN節點,同時將用戶的請求指向該節點。當用戶的請求到達指定節點時,CDN的服務器(節點上的高速緩存)負責將用戶請求的內容提供給用戶。具體流程為: 用戶在自己的瀏覽器中輸入要訪問的網站的域名,瀏覽器向本地DNS請求對該域名的解析,本地DNS將請求發到網站的主DNS,主DNS根據一系列的策略確定當時最適當的CDN節點,並將解析的結果(IP地址)發給用戶,用戶向給定的CDN節點請求相應網站的內容

 

工作原理

CDN網絡是在用戶和服務器之間增加Cache層,主要是通過接管DNS實現,將用戶的請求引導到Cache上獲得源服務器的數據,從而降低網絡的訪問時間。

 

未加緩存服務的訪問過程

 首先,讓我們看一下傳統的未加緩存服務的訪問過程:


如圖可以看出,傳統的網絡訪問的流程如下:

1:用戶輸入訪問的域名,操作系統向 LocalDns 查詢域名的ip地址;2:LocalDns ROOT DNS 查詢域名的授權服務器(這裡假設LocalDns緩存過期);3:ROOT DNS將域名授權dns記錄回應給 LocalDns;4:LocalDns得到域名的授權dns記錄後,繼續向域名授權dns查詢域名的ip地址;5:域名授權dns 查詢域名記錄後,回應給 LocalDns;6:LocalDns 將得到的域名ip地址,回應給用戶端;7:用戶得到域名ip地址後,訪問站點服務器;8:站點服務器應答請求,將內容返回給客戶端.

使用CDN緩存後的網站的訪問過程


如上圖,是使用CDN緩存後的網絡訪問流程:

1:用戶輸入訪問的域名,操作系統向 LocalDns 查詢域名的ip地址;

2:LocalDns ROOT DNS 查詢域名的授權服務器(這裡假設LocalDns緩存過期);

3:ROOT DNS將域名授權dns記錄回應給 LocalDns;

4:LocalDns得到域名的授權dns記錄後,繼續向域名授權dns查詢域名的ip地址;

5:域名授權dns 查詢域名記錄後(一般是CNAME),回應給 LocalDns;

6:LocalDns 得到域名記錄後,向智能調度DNS查詢域名的ip地址;

7:智能調度DNS 根據一定的算法和策略(比如靜態拓撲,容量等),將最適合的CDN節點ip地址回應給 LocalDns;

8:LocalDns 將得到的域名ip地址,回應給用戶端;

9:用戶得到域名ip地址後,訪問站點服務器。宗上,CDN網絡是在用戶和服務器之間增加Cache層,主要是通過接管DNS實現,將用戶的請求引導到Cache上獲得源服務器的數據,從而降低網絡的訪問的速度。