說白了,CND就是增加了一層網絡結構
什么是CDN?
CDN的全稱是內容分發網絡。其目的是通過在現有的Internet中增加一層新的網絡架構,將網站的內容發布到最接近用戶的網絡“邊緣”,使用戶可以就近取得所需的內容,提高用戶訪問網站的響應速度。
CDN有別于鏡像,因為它比鏡像更智能,或者可以做這樣一個比喻:CDN=更智能的鏡像+緩存+流量導流。因而,CDN可以明顯提高Internet網絡中信息流動的效率。從技術上全面解決由于網絡帶寬小、用戶訪問量大、網點分布不均等問題,提高用戶訪問網站的響應速度。
CDN的類型特點
CDN的實現分為三類:鏡像、高速緩存、專線。
鏡像站點(Mirror Site),是最常見的,它讓內容直接發布,適用于靜態和準動態的數據同步。但是購買和維護新服務器的費用較高,還必須在各個地區設置鏡像服務器,配備專業技術人員進行管理與維護。對于大型網站來說,更新所用的帶寬成本也大大提高了。
高速緩存,成本較低,適用于靜態內容。Internet的統計表明,超過80%的用戶經常訪問的是20%的網站的內容,在這個規律下,緩存服務器可以處理大部分客戶的靜態請求,而原始的服務器只需處理約20%左右的非緩存請求和動態請求,于是大大加快了客戶請求的響應時間,并降低了原始服務器的負載。
專線,讓用戶直接訪問數據源,可以實現數據的動態同步。
CDN的實例
舉個例子來說,當某用戶訪問網站時,網站會利用全球負載均衡技術,將用戶的訪問指向到距離用戶最近的正常工作的緩存服務器上,直接響應用戶的請求。當用戶訪問已經使用了CDN服務的網站時,其解析過程與傳統解析方式的最大區別就在于網站的授權域名服務器不是以傳統的輪詢方式來響應本地DNS的解析請求,而是充分考慮用戶發起請求的地點和當時網絡的情況,來決定把用戶的請求定向到離用戶最近同時負載相對較輕的節點服務器上。通過用戶定位算法和服務器健康檢測算法綜合后的數據,可以將用戶的請求就近定向到分布在網絡“邊緣”的服務器上,保證用戶的訪問能得到更及時可靠的響應。由于大量的用戶訪問都由分布在網絡邊緣的CDN節點服務器直接響應了,這就不僅提高了用戶的訪問質量,同時有效地降低了源服務器的負載壓力。
其實,上面這個例子只是CDN應該做到的最起碼的服務,CDN還可以做更多,我們一直認為以前的互聯網只是提供了一個環境,但它是一個松散的、無序的網絡;ヂ摼W之所以發展得這么快,其主要原因便是從一開始的時候它就是按照最低的成本投入來設計,但這樣一來難免也形成一些缺陷。不像電話——電話打不通,大家會立刻想到去找電信局;而在互聯網上郵件收不到、網站上不了……卻沒有誰會覺得不正常。但王松就要改變這種狀況、這種認知,因為互聯網如果要盈利、要收費,就一定要有一個商業保障。只有用CDN保證了網絡的穩定,互聯網才會是一個真正的商用平臺。如今的互聯網要求提供有價值、有保障的服務,但傳統的電信運營商只是提供物理層的建設,ICP只是關注內容,而整個互聯網卻遠遠不止這處于上方的內容層和底部的物理層。在這兩者之間,運營商和ICP都可能會購買CDN的專業服務來為其創造更多的價值。
CDN的技術原理 在描述CDN的實現原理,讓我們先看傳統的未加緩存服務的訪問過程,以便了解CDN緩存訪問方式與未加緩存訪問方式的差別:
由上圖可見,用戶訪問未使用CDN緩存網站的過程為: 1、用戶向瀏覽器提供要訪問的域名;
2、瀏覽器調用域名解析函數庫對域名進行解析,以得到此域名對應的IP地址;
3、瀏覽器使用所得到的IP地址,域名的服務主機發出數據訪問請求;
4、瀏覽器根據域名主機返回的數據顯示網頁的內容。
通過以上四個步驟,瀏覽器完成從用戶處接收用戶要訪問的域名到從域名服務主機處獲取數據的整個過程。CDN網絡是在用戶和服務器之間增加Cache 層,如何將用戶的請求引導到Cache上獲得源服務器的數據,主要是通過接管DNS實現,下面讓我們看看訪問使用CDN緩存后的網站的過程:
通過上圖,我們可以了解到,使用了CDN緩存后的網站的訪問過程變為: 1、用戶向瀏覽器提供要訪問的域名;
2、瀏覽器調用域名解析庫對域名進行解析,由于CDN對域名解析過程進行了調整,所以解析函數庫一般得到的是該域名對應的CNAME記錄,為了得到實際IP地址,瀏覽器需要再次對獲得的CNAME域名進行解析以得到實際的IP地址;在此過程中,使用的全局負載均衡DNS解析,如根據地理位置信息解析對應的IP 地址,使得用戶能就近訪問。
3、此次解析得到CDN緩存服務器的IP地址,瀏覽器在得到實際的IP地址以后,向緩存服務器發出訪問請求;
4、緩存服務器根據瀏覽器提供的要訪問的域名,通過Cache內部專用DNS解析得到此域名的實際IP地址,再由緩存服務器向此實際IP地址提交訪問請求;
5、緩存服務器從實際IP地址得得到內容以后,一方面在本地進行保存,以備以后使用,二方面把獲取的數據返回給客戶端,完成數據服務過程;
6、客戶端得到由緩存服務器返回的數據以后顯示出來并完成整個瀏覽的數據請求過程。 通過以上的分析我們可以得到,為了實現既要對普通用戶透明(即加入緩存以后用戶客戶端無需進行任何設置,直接使用被加速網站原有的域名即可訪問),又要在為指定的網站提供加速服務的同時降低對ICP的影響,只要修改整個訪問過程中的域名解析部分,以實現透明的加速服務,下面是CDN網絡實現的具體操作過程。