什麼是CDN?CDN的原理和作用是什麼?

youbingke發表於2022-11-09

CDN(Content Delivery Network, 內容分發網路)是為加快網路訪問速度而建立在現有網路之上的分散式網路,它依靠部署在全球各地邊緣節點的伺服器群,透過負載均衡,內容釋出,內容管理和內容儲存的功能,由CDN伺服器叢集分擔源站點伺服器叢集的壓力,使使用者可以就近獲取已快取的訪問資源,避免網路擁堵,加快訪問速度。與此同時,CDN是基於DNS解析進行管理的,其利用DNS技術和HTTPS協議確保了傳輸內容的安全性,保障使用者的訪問內容的安全性。

一、CDN的訪問過程/加速原理

CDN的基本原理是依靠部署在各個區域大量快取伺服器的響應。當使用者訪問網站時,不需要訪問站點的DNS伺服器,而是利用全域性負載技術將使用者的請求直接指向最近的快取伺服器上,且保證伺服器是正常工作的,訪問的路徑和內容是傳輸安全的,由此快取伺服器直接響應客戶的請求。訪問快取伺服器可以儘可能地避免網路擁堵狀況,使傳輸的內容更加迅速和穩定。

CDN的訪問過程依賴於DNS的重定向技術,即將使用者定向至地理位置上距離其最近的邊緣CDN節點伺服器上。使用者首先向根DNS伺服器傳送域名解析請求,根DNS伺服器向授權DNS伺服器傳送域名解析請求,請求中包含了根伺服器的IP地址,當域名解析伺服器/根DNS伺服器接受到一個CNAME類的DNS記錄,域名解析伺服器會重定向到CDN節點網路層中的智慧CDN域名伺服器上,CDN域名伺服器將進行一系列的智慧解析操作,根據本地DNS域名解析伺服器的IP地址,分析各個網路線路的擁堵情況和負載情況,將最適合的CDN節點伺服器IP地址返還給根DNS伺服器,使用者接受到CDN節點的IP地址後,直接向CDN節點伺服器傳送請求獲取網站內容(圖1, CDN的加速原理)。

圖1 CDN的加速原理

注:

步驟2與步驟3,若本地DNS中的資料快取過期或已經失效,本地伺服器向根伺服器發出請求,根伺服器返回可查詢的授權DNS伺服器地址;若本地DNS伺服器快取中可直接查詢到IP地址,無需像根伺服器發出請求。

步驟10與步驟11,如果CDN節點並沒有使用者所需的快取資源或是資源已經失效,節點將向源服務機叢集*發出請求,CDN節點將結合使用者定製的快取策略將源伺服器叢集返回的資源快取至CDN節點,再返回內容給使用者;若訪問的CDN節點可調取快取資源,將直接返回使用者訪問內容。

二、CDN的系統構成

CDN的系統構成具體如下表:

表1 CDN的系統構成

三、CDN的核心技術

一、內容路由(負載均衡技術)

每個CDN節點層都配備智慧DNS伺服器,即負載均衡裝置,其作用是使Cache協同工作,它根據使用者源IP地址解析導向整個CDN節點層中的最佳節點。最佳節點的選擇是根據CDN管理系統決定的,而負載均衡系統是整個CDN的核心,一般來說負載均衡分為兩個層次,第一層是全域性負載均衡負責給使用者定向至最近的CDN節點或區域,第二層是本地負載均衡,CDN節點層中的智慧CDN伺服器會負責對本地系統及子系統進行實時監測,並將各節點流量儲存至資料庫,對系統中監測到系統狀況產生故障告警,給使用者定向至最優(離客戶訪問距離近,內容傳輸速度快,訪問時間短,內容穩定性高)的CDN節點。

由於域名解析器對DNS有快取作用,在使用者訪問頁面被直接定向到邊緣節點伺服器的過程中,負載均衡裝置會直接讀取域名快取器中的快取DNS記錄,這樣造成的後果是可能定向不到最合適的邊緣節點,是因為在此過程中CDN網路節點的狀況也是在不斷更新的,所以為了保證定向到最優的CDN節點,域名伺服器會將快取DNS記錄的TTL值設定得很小。CDN網路對DNS伺服器是絕對的依賴關係。

二、內容儲存

內容儲存是CDN的另一個關鍵技術,內容儲存決定了使用者訪問網站內容的速度和質量。CDN的內容儲存需要考慮兩個方面,站點源伺服器的儲存功能和Cache節點中的儲存功能。站點源伺服器叢集需儲存大量資料,並且內容吞吐量巨大,需要向CDN節點有規律性的,有目的性的不斷更新CDN節點的儲存內容,以方便使用者對快取內容的讀取,因此,多運用海量儲存架構實現大資料儲存。對於Cache節點的儲存需支援各種檔案格式的儲存和讀取,並且具備高檔案吞吐率,強可靠性和高穩定性的特徵。

三、內容釋出

內容釋出是藉助索引,快取,流分裂,組播等技術,將內容由內容源分發到CDN邊緣的整個快取過程,內容分發技術主要是PUSH(主動分發技術)和PULL(被動分發技術)。PUSH一般是由供應商或是CDN的內容管理人員從站點源伺服器或媒體的資源庫直接向各個CDN節點主動分發的一些熱點內容,或是客戶指定的內容。PULL則是客戶向節點請求快取中沒有儲存的內容時,Cache從源伺服器或是其他CDN節點請求獲取內容。

四、內容管理

內容管理即CDN本地內容管理,主要針對CDN節點層進行。內容管理主要包含(表2 內容管理詳情):

表2 內容管理詳情

內容管理利用內容感知度的排程,一定程度上提高了負載均衡的效率,提高了內容服務的效率和本地節點儲存空間的利用率。

四、CDN的未來發展方向

一、中心思想:

利用CDN網路來發布域名的DNS記錄,承載域名解析伺服器的功能,即CDN網路中的智慧CDN伺服器可以直接返回給客戶邊緣節點CDN伺服器的IP網址。

二、發展方向:

首先,CDN的重定向技術是根據域名解析伺服器的IP地址給使用者返回距離最近的CDN邊緣節點伺服器,而不是根據使用者的實際IP地址重定向,這可能導致返回給使用者的CDN節點並不是最佳IP地址,與此同時,現有的DNS構建框架很容易受到DDoS的攻擊和網路攻擊,針對這些問題,可部署一些節點伺服器,這些節點伺服器應用IP Anycast技術使域名伺服器可以向任何一個可正常工作的節點伺服器請求域名解析,調取DNS記錄,同時,這些節點伺服器上的部分資源被用於DNS記錄快取,提高了伺服器應對DDoS攻擊和網路攻擊的能力。

然而,這些這項技術仍然存在一些需要克服的問題:現有的域名解析器使用IP Anycast路由,共享快取,主動獲取DNS記錄等技術提高域名解析的服務質量,這些技術的應用是基於DNS的快取記錄,為了維持記錄的時效性,快取機制的TTL值被設定的很小,這對CDN節點伺服器和DNS源伺服器之間的資料傳輸壓力很大;此外,由於使用者的域名解析是基於IP Anycast伺服器解析的而不是根DNS伺服器提供IP地址,CDN網路的內容釋出的質量,跨域通訊量和負載均衡機制都將受到衝擊。

因此,一種新型的域名解析系統被提出(理想型模型),該系統將根DNS域名解析伺服器和授權DNS伺服器的功能結合於CDN網路的邊緣CDN節點伺服器上,實現高效能的域名解析。針對快取系統的問題,理想型域名解析系統利用CDN網路作為DNS記錄的釋出和管理系統,各域名權威的DNS記錄將被髮布和複製到CDN邊緣節點伺服器上,此時CDN邊緣節點伺服器就相當於現在DNS架構中域名伺服器的功能;針對IP地址問題,利用IP Anycast技術,CND網路邊緣節點的伺服器將對外使用使用者域名解析器所設定的IP地址,相當於現在的DNS架構中根DNS伺服器的功能,響應使用者的域名解析請求,返回地理位置上最近的CDN邊緣節點伺服器IP地址,提供域名解析服務。

三、利用CDN的網路佈局實現DNS雲解析的負載均衡

中科三方下一代DNS雲解析將利用CDN的網路佈局實現DNS雲解析的負載均衡功能,即在城市設定節點伺服器,透過負載均衡技術給使用者返回距離最近的可訪問節點,提高使用者的訪問速度和訪問質量。具體訪問流程如下(圖2 DNS的加速原理):

圖2 DNS的加速原理

1. 使用者向本地域名解析器傳送解析請求以獲取訪問IP地址;

2. 若本地DNS伺服器中沒有快取資料,向根域名伺服器發出解析請求;

3. 根域名伺服器返回可訪問的授權DNS伺服器地址;

4. 本地DNS伺服器向授權DNS伺服器發出域名解析請求;

5. 授權DNS伺服器返回一個CNAME類的DNS記錄;

6. 解析請求根據記錄重定向至城市網路中的智慧DNS系統;

7. 智慧DNS系統對該記錄進行智慧解析,根據域名解析的IP地址,網路擁堵情況,各個可訪問的城市網路節點伺服器的健康狀況,返回最合適的城市網路節點的IP地址。

8. 使用者訪問距離最近的城市B節點伺服器。

CDN網路利用其負載均衡,內容儲存,內容釋出,內容管理技術,解決了大量使用者訪問造成的伺服器擁堵問題,解決了使用者訪問網頁響應時間過長問題,解決了使用者訪問網路不穩定的問題。CDN網路的未來發展是可預見的,而基於CDN網路系統的負載均衡技術,智慧DNS雲解析也有了相應的技術突破,可實現DNS的加速訪問。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996004/viewspace-2922594/,如需轉載,請註明出處,否則將追究法律責任。

相關文章