天天看點

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

作者:中科三方

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的加速原理)。

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

圖1 CDN的加速原理

注:

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

步驟10與步驟11,如果CDN節點并沒有使用者所需的緩存資源或是資源已經失效,節點将向源服務機叢集送出請求,CDN節點将結合使用者定制的緩存政策将源伺服器叢集傳回的資源緩存至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 内容管理詳情):

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

表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的加速原理):

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

圖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的加速通路。