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