什么是CDN?有什么用途?如何使用?

Admin 2023-05-23 群英技術資訊 58 次瀏覽

今天就跟大家聊聊有關“什么是CDN?有什么用途?如何使用?”的內容,可能很多人都不太了解,為了讓大家認識和更進一步的了解,小編給大家總結了以下內容,希望這篇“什么是CDN?有什么用途?如何使用?”文章能對大家有幫助。

CDN-內容推送網絡

前段時間介紹了瀏覽器緩存機制,通過瀏覽器緩存一方面可以改善用戶的體驗,而不用漫長地等待從服務器下載資源;另一方面減輕服務器壓力、節省流量。CDN是另一種可以大幅度優化用戶體驗,且減輕服務器壓力的技術。下面就自己了解的CDN技術分享下。

CDN的實現是一組技術的組合,每個技術都可以單獨成文詳細討論,這里就不深入每個技術。內容目錄:

1.    什么是CDN?    1

2.       CDN技術原理... 1

2.1.       分布式存儲... 1

2.2.       內容管理... 2

2.3.       負載均衡... 2

2.4.       網絡請求的重定向... 2

3.       CDN資源訪問流程... 3

4.       關于CDN的疑問... 3

4.1.       使用CDN后,如何獲取客戶端真實IP?... 3

4.2.       采用CDN服務以后如何保證內容的更新和同步?... 4

 

1.    什么是CDN?

CDN的全稱是Content Delivery Network,即內容分發網絡。其目的是通過在現有的Internet中增加一層新的網絡架構,將網站的內容發布到最接近用戶的網絡"邊緣"(邊緣服務器),使用戶可以就近取得所需的內容,解決Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。從技術上全面解決由于網絡帶寬小、用戶訪問量大、網點分布不均等原因所造成的用戶訪問網站響應速度慢的問題。

2.    CDN技術原理

CDN技術是在美國首先興起并迅速發展起來的一種解決互聯網性能不佳問題的有效手段。其基本思路就是盡可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩。通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡,CDN系統能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。

CDN網絡架構主要由兩大部分,分為中心邊緣兩部分,中心指CDN網管中心和DNS重定向解析中心,負責全局負載均衡,設備系統安裝在管理中心機房;邊緣主要指異地節點,CDN分發的載體,主要由Cache和負載均衡器等組成。

實際上,CDN是一種新型的網絡構建方式,它是為能在傳統的IP網發布寬帶豐富媒體而特別優化的網絡覆蓋層;而從廣義的角度,CDN代表了一種基于質量與秩序的網絡服務模式。簡單地說,CDN是一個經策略性部署的整體系統,包括分布式存儲、負載均衡、網絡請求的重定向內容管理4個要件。

2.1.         分布式存儲

這點顯而易見,CDN網絡將存儲資源分布到各個地理位置、各個網段。存儲系統作為CDN系統密不可分的一部分,將CDN分發的文件和數據庫表記錄內容存儲起來,提供持續服務。存儲系統采用三級存儲架構,包括核心存儲、CDN服務節點分布式緩存和終端本地緩存。任意一個點的存儲崩潰或失效,并不影響系統服務的可用性。

圖:當下云摘CDN的存儲示意圖(其它CDN也是類似)

CDN系統在5大運營商(中國電信、中國網通、中國鐵通、中國移動、中國聯通)以及2大專有網絡(中國教育和科研計算機網、中國科技網)都布有CDN節點。這樣就消除了不同運營商之間互聯的瓶頸造成的影響,實現了跨運營商的網絡加速,保證不同網絡中的用戶都能得到良好的訪問質量。

2.2.         內容管理

內容管理和全局的網絡流量管理(Traffic Management)CDN的核心所在。通過用戶就近性和服務器負載的判斷,CDN確保內容以一種極為高效的方式為用戶的請求提供服務??偟膩碚f,內容服務基于緩存服務器,也稱作代理緩存(Surrogate),它位于網絡的邊緣,距用戶僅有"一跳"(Single Hop)之遙。同時,代理緩存是內容提供商源服務器(通常位于CDN服務提供商的數據中心)的一個透明鏡像。這樣的架構使得CDN服務提供商能夠代表他們客戶,即內容供應商,向最終用戶提供盡可能好的體驗,而這些用戶是不能容忍請求響應時間有任何延遲的。據統計,采用CDN技術,能處理整個網站頁面的 70%95%的內容訪問量,減輕服務器的壓力,提升了網站的性能和可擴展性。

2.3.         負載均衡

CDN負載均衡系統實現CDN內容路由功能。它的作用是將用戶的請求導向整個CDN網絡中的最佳節點。最佳節點的選定可以根據多種策略,例如距離最近、節點負載最輕等。負載均衡系統是整個CDN的核心,負載均衡的準確性和效率直接決定了整個CDN的效率和性能。通常負載均衡可以分為兩個層次:全局負載均衡(GSLB本地負載均衡(SLB。

l  全局負載均衡(GSLB)主要的目的是在整個網絡范圍內將用戶的請求定向到最近的節點(或者區域)。因此,就近性判斷是全局負載均衡的主要功能。

l  本地負載均衡一般局限于一定的區域范圍內,其目標是在特定的區域范圍內尋找一臺最適合的節點提供服務,因此,CDN節點的健康性、負載情況、支持的媒體格式等運行狀態是本地負載均衡進行決策的主要依據。

負載均衡可以通過多種方法實現,主要的方法包括DNS、應用層重定向、傳輸層重定向等等。對于全局負載均衡而言,為了執行就近性判斷,通??梢圆捎脙煞N方式,一種是靜態的配置,例如根據靜態的IP地址配置表進行IP地址到CDN節點的映射。另一種方式是動態的檢測,例如實時地讓CDN節點探測到目標IP的距離(可以采用RRT,Hops作為度量單位),然后比較探測結果進行負載均衡。當然,靜態和動態的方式也可以綜合起來使用。

對于本地負載均衡而言,為了執行有效的決策,需要實時地獲取Cache設備的運行狀態。獲取的方法一般有兩種,一種是主動探測,一種是協議交互。主動探測針對SLB設備和Cache設備沒有協議交互接口的情況,通過ping等命令主動發起探測,根據返回結果分析狀態。另一種是協議交互,即SLB Cache根據事先定義好的協議實時交換運行狀態信息,以便進行負載均衡。比較而言,協議交互比探測方式要準確可靠,但是目前尚沒有標準的協議,各廠家的實現一般僅是私有協議,互通比較困難。

2.4.         網絡請求的重定向

當用戶訪問了使用CDN服務的資源時,DNS域名服務器通過CNAME方式將最終域名請求重定向到CDN系統中的智能DNS負載均衡系統。智能DNS負載均衡系統通過一組預先定義好的策略(如內容類型、地理區域、網絡負載狀況等),將當時能夠最快響應用戶的節點地址提供給用戶,使用戶可以得到快速的服務。

同時,它還與分布在不同地點的所有CDN節點保持通信,搜集各節點的健康狀態,確保不將用戶的請求分配到任何一個已經不可用的節點上。

3.    CDN資源訪問流程

使用了CDN服務后,用戶的訪問流程如下圖所示:

圖:CDN用戶訪問流程圖(摘自:思必達CDN

  1. 用戶向瀏覽器提供要訪問網站的域名,域名解析的請求被發往網站的DNS域名解析服務器;
  2. 由于網站的DNS域名解析服務器對此域名的解析設置了CNAME,請求被指向CDN網絡中的智能DNS負載均衡系統;
  3. 智能DNS負載均衡系統對域名進行智能解析,將響應速度最快的節點IP返回給用戶;
  4. 瀏覽器在得到速度最快節點的IP地址以后,向CDN節點發出訪問請求;
  5. 由于是第一次訪問,CDN節點將回到源站取用戶請求的數據并發給用戶;
  6. 當有其他用戶再次訪問同樣內容時,CDN將直接將數據返回給客戶,完成請求/服務過程。

同時,它還與分布在不同地點的所有CDN節點保持通信,搜集各節點的健康狀態,確保不將用戶的請求分配到任何一個已經不可用的節點上。

4.    關于CDN的疑問

4.1.           使用CDN后,如何獲取客戶端真實IP?

使用CDN服務之后獲得原始IP地址發生變化。因為源服務器的請求都來自CDN節點,不知道客戶原始IP。一般來說,CDN節點會以某種方式將源客戶端的IP傳遞給源服務器,如有的網宿CDN,它是將源IP添加到了一個叫“Cdn-Src-Ip”Http Header里,以C#語言為例,獲得客戶端真實IP的方式如下:(根據不同的CDN提供商可能會有所不同)。

C#代碼

String srcIp = Request.Headers["Cdn-Src-Ip"];   

if(srcIp == null)    {    

    srcIp = Request.UserHostAddress;

}

 

或者從HTTP請求Header中“HTTP_X_FORWARDED_FOR字段獲得。HTTP_X_FORWARDED_FOR的值是:"原始真實IP,1層代理IP,2層代理IP,....."。判斷HTTP_X_FORWARDED_FOR是否為空(沒有使用CDN或代理這個字段為空),不為空把這個作為IP地址。這是一個簡單有效的方法。至于很復雜的情況就不處理了,比如多層代理。

4.2.           采用CDN服務以后如何保證內容的更新和同步?

CDN服務中,CDN節點中的內容與源網站內容的同步主要是靠設置刷新時間策略來實現的。針對不同的內容設置不同的刷新時間,對于更新頻率比較低的內容可以設置較長的刷新時間以減輕回源站的訪問壓力;對頻繁更新的內容,我們可以設置成10分鐘或更短,以此來保證內容的同步。設置刷新時間可以按目錄來設置,也可以按具體URL來設置,或按某個關鍵字段來設置,非常靈活。

現在大家對于什么是CDN?有什么用途?如何使用?的內容應該都有一定的認識了吧,希望這篇能對大家有所幫助。最后,想要了解更多,歡迎關注群英網絡,群英網絡將為大家推送更多相關的文章。 群英智防CDN,智能加速解決方案

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:mmqy2019@163.com進行舉報,并提供相關證據,查實之后,將立刻刪除涉嫌侵權內容。

猜你喜歡

成為群英會員,開啟智能安全云計算之旅

立即注冊
專業資深工程師駐守
7X24小時快速響應
一站式無憂技術支持
免費備案服務
免費撥打  400-678-4567
免費撥打  400-678-4567 免費撥打 400-678-4567 或 0668-2555555
在線客服
微信公眾號
返回頂部
返回頂部 返回頂部
国产在线观看黄AV免费