CDN簡介
CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。CDN是構(gòu)建在現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)之上的智能虛擬網(wǎng)絡(luò),依靠部署在各地的邊緣服務(wù)器,通過中心平臺的負(fù)載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問響應(yīng)速度和命中率。CDN的關(guān)鍵技術(shù)主要有內(nèi)容存儲和分發(fā)技術(shù)。
簡而言之,就是將數(shù)據(jù)部署在各地的服務(wù)器中,通過負(fù)載均衡技術(shù),讓用戶就近獲取服務(wù)器中的數(shù)據(jù)。
CDN原理
CDN的基本原理是廣泛采用各種緩存服務(wù)器,將這些緩存服務(wù)器分布到用戶訪問相對集中的地區(qū)或網(wǎng)絡(luò)中,在用戶訪問網(wǎng)站時,利用全局負(fù)載技術(shù)將用戶的訪問指向距離最近的工作正常的緩存服務(wù)器上,由緩存服務(wù)器直接響應(yīng)用戶請求。
全局負(fù)載均衡主要用于在多個區(qū)域擁有自己服務(wù)器的站點,為了使全球用戶只以一個IP地址或域名就能訪問到離自己最近的服務(wù)器,從而獲得最快的訪問速度。
CDN的基本思路是盡可能避開互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母臁⒏€(wěn)定。通過在網(wǎng)絡(luò)各處放置節(jié)點服務(wù)器所構(gòu)成的在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上的一層智能虛擬網(wǎng)絡(luò),CDN系統(tǒng)能夠?qū)崟r地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點的連接、負(fù)載狀況以及到用戶的距離和響應(yīng)時間等綜合信息將用戶的請求重新導(dǎo)向離用戶最近的服務(wù)節(jié)點上。其目的是使用戶可就近取得所需內(nèi)容,解決 Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。
CDN功能 歸納起來,CDN具有以下主要功能:
節(jié)省骨干網(wǎng)帶寬,減少帶寬需求量;
提供服務(wù)器端加速,解決由于用戶訪問量大造成的服務(wù)器過載問題;
服務(wù)商能使用Web Cache技術(shù)在本地緩存用戶訪問過的Web頁面和對象,實現(xiàn)相同對象的訪問無須占用主干的出口帶寬,并提高用戶訪問因特網(wǎng)頁面的相應(yīng)時間的需求;
能克服網(wǎng)站分布不均的問題,并且能降低網(wǎng)站自身建設(shè)和維護(hù)成本;
降低“通信風(fēng)暴”的影響,提高網(wǎng)絡(luò)訪問的穩(wěn)定性。
CDN服務(wù)模式
簡單地說,內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)是一個經(jīng)策略性部署的整體系統(tǒng),包括分布式存儲、負(fù)載均衡、網(wǎng)絡(luò)請求的重定向和內(nèi)容管理4個要件,而內(nèi)容管理和全局的網(wǎng)絡(luò)流量管理(Traffic Management)是CDN的核心所在。通過用戶就近性和服務(wù)器負(fù)載的判斷,CDN確保內(nèi)容以一種極為高效的方式為用戶的請求提供服務(wù)。總的來說,內(nèi)容服務(wù)基于緩存服務(wù)器,也稱作代理緩存(Surrogate),它位于網(wǎng)絡(luò)的邊緣,距用戶僅有"一跳"(Single Hop)之遙。
同時,代理緩存是內(nèi)容提供商源服務(wù)器(通常位于CDN服務(wù)提供商的數(shù)據(jù)中心)的一個透明鏡像。這樣的架構(gòu)使得CDN服務(wù)提供商能夠代表他們客戶,即內(nèi)容供應(yīng)商,向最終用戶提供盡可能好的體驗,而這些用戶是不能容忍請求響應(yīng)時間有任何延遲的。
全局負(fù)載均衡
全局負(fù)載均衡(Global Server Load Balance, GSLB),全局負(fù)載均衡是指對分別放置在不同的地理位置的服務(wù)器群間作負(fù)載均衡。服務(wù)器負(fù)載均衡是指對本地的服務(wù)器群做負(fù)載均衡。主要用于在多個區(qū)域擁有自己服務(wù)器的站點,為了使全球用戶只以一個IP地址或域名就能訪問到離自己最近的服務(wù)器,從而獲得最快的訪問速度。
服務(wù)器群選擇
對于全局負(fù)載均衡而言,其核心就是服務(wù)器群的選擇。對于某個特定的客戶,應(yīng)該將其定向到哪一個服務(wù)群?應(yīng)該使用什么標(biāo)準(zhǔn)來進(jìn)行這種選擇?一般情況下,主要考慮兩個因素:臨近程度和負(fù)載大小。
臨近機(jī)制主要考察服務(wù)器群與用戶之間的物理距離。選擇地理位置最接近用戶的服務(wù)器集群,可以減少服務(wù)響應(yīng)到達(dá)用戶所經(jīng)過的中轉(zhuǎn)次數(shù),從而降低中轉(zhuǎn)節(jié)點對服務(wù)質(zhì)量的影響。常見的有兩種方式,一種是靜態(tài)配置,例如根據(jù)靜態(tài)的IP地址配置表進(jìn)行IP地址到服務(wù)器群的映射。另一種方式是動態(tài)的檢測,例如實時地探測到目標(biāo)IP的距離(可以采用到達(dá)目標(biāo)IP經(jīng)過的跳數(shù)作為度量單位),然后比較探測結(jié)果進(jìn)行選擇。
負(fù)載機(jī)制比較各個服務(wù)器群的負(fù)載,確定由哪一個服務(wù)器群來響應(yīng)請求。在全局負(fù)載均衡中,考察的是服務(wù)器群的負(fù)載,而不是單個服務(wù)器的負(fù)載,因此,需要更多地考慮普遍的問題,比如,需要考慮站點的最大連接數(shù)、站點的平均響應(yīng)時間、服務(wù)質(zhì)量等。
常見的GSLB實現(xiàn)方式有三種:DNS輪詢、HTTP重定向、IP欺騙(又稱三角傳輸)。這三種實現(xiàn)方式都是在用戶通過域名來訪問目標(biāo)服務(wù)器時,由GSLB設(shè)備進(jìn)行智能決策,將用戶引導(dǎo)到一個最佳的服務(wù)IP。
基于DNS的GSLB
用戶訪問某個網(wǎng)站時,需要首先通過域名解析服務(wù)(DNS)獲得網(wǎng)站的IP。域名解析通常不是一次性完成的,常常需要查詢?nèi)舾刹煌挠蛎?wù)器才能找到對應(yīng)的IP。如下圖所示,用戶首先在本地配置一個本地DNS服務(wù)器地址,本地DNS服務(wù)器收到DNS請求后若不能解析,會將請求轉(zhuǎn)發(fā)給更高一級的DNS服務(wù)器直到找到域名對應(yīng)的IP或確定域名不存在。
對于加入了GSLB的情況,一個GSLB設(shè)備(可能是一個4層交換機(jī))會最終代替DNS服務(wù)器完成域名解析。下圖展示兩種流程的不同。
基于DNS的GSLB優(yōu)缺點
優(yōu)點是:實現(xiàn)簡單、實施容易、成本低。
缺點是:當(dāng)GSLB設(shè)備采用“用戶就近訪問”的原則作為選擇最優(yōu)服務(wù)器的策略時,會存在判斷不準(zhǔn)的現(xiàn)象。原因是在這種策略下,GSLB設(shè)備是根據(jù)用戶IP地址和內(nèi)容服務(wù)器IP地址比較來判斷其就近性的,但由于DNS響應(yīng)是通過本地DNS服務(wù)器到達(dá)用戶的,GSLB設(shè)備實際上只能得到用戶的本地DNS服務(wù)器地址,若用戶指定的DNS服務(wù)器IP不能正確代表用戶的實際位置,就會出現(xiàn)判斷不準(zhǔn)的現(xiàn)象。
基于HTTP重定向的GSLB
為了解決基于DNS實現(xiàn)方式判斷不準(zhǔn)的問題,又出現(xiàn)了基于HTTP重定向的GSLB。這種方案中GSLB使用HTTP重定向技術(shù),將用戶訪問重定向到最合適的服務(wù)器上。
使用基于HTTP重定向方案,首先在DNS中將GSLB設(shè)備的IP地址登記為域名的A記錄(既域名對應(yīng)的IP)。如上圖所示,用戶首先通過DNS得到GSLB設(shè)備的IP地址,此時用戶以為這就是站點服務(wù)器的IP,并向其發(fā)送HTTP請求。GSLB設(shè)備收到HTTP請求后使用一定策略選擇一個最合適的服務(wù)器,然后GSLB設(shè)備向用戶發(fā)送一個HTTP重定向指令(HTTP302),并附上選出的服務(wù)器的IP地址。最后,用戶根據(jù)重定向IP訪問站點的服務(wù)器。
基于HTTP重定向的GSLB優(yōu)缺點
優(yōu)點:由于直接向用戶發(fā)送HTTP重定向指令,可以得到用戶的真實IP,從而解決了判斷不準(zhǔn)確的問題。
缺點是只能為HTTP訪問重定向。
基于IP欺騙的GSLB
HTTP重定向方案解決了判斷不準(zhǔn)確的問題,但只能針對HTTP協(xié)議應(yīng)用使用。對于HTTP協(xié)議以外的訪問,就需要使用基于IP欺騙(又稱三角傳輸)的GSLB。
基于IP欺騙的方案同樣需要首先將GSLB設(shè)備的IP地址在DNS中登記為域名的A記錄,這樣用戶對該域名的請求包都會先發(fā)送到GSLB設(shè)備。如上圖所示,GSLB設(shè)備首次收到服務(wù)請求包后,會選擇一個最合適的服務(wù)器,并將服務(wù)請求包發(fā)送到該服務(wù)器。服務(wù)器在向用戶發(fā)送響應(yīng)包時,將其源IP地址字段改為GSLB設(shè)備的IP,發(fā)送給用戶。
這樣,整個過程對用戶來說,感覺到的只是GSLB設(shè)備在為其提供服務(wù),并不知道其中經(jīng)歷這樣一個三角傳輸?shù)倪^程。而且這種方案可以對所有類型的訪問如HTTP、FTP等進(jìn)行重定向,但其速度和效率相對比前兩種方案要差一點,因為用戶所有的訪問請求都通過三個點才能響應(yīng),經(jīng)歷了更多的路徑和處理,所以其主要作為HTTP重定向方案的補(bǔ)充方案在同一GSLB設(shè)備中實現(xiàn)。
服務(wù)器群選擇策略
上文中介紹的三種方案,解決了如何將用戶引導(dǎo)到指定服務(wù)器群的問題,而在此之前首先需要使用某種方式選出最適合用戶的服務(wù)器群,也就是GSLB在選擇服務(wù)器群時所采用的策略。接下來介紹一些常用的GSLB策略。
1)地理區(qū)域或用戶自定義區(qū)域:將若干條IP地址前綴劃分一個區(qū)域為。根據(jù)用戶本地DNS的IP地址,將特定IP范圍的用戶優(yōu)先分配到某個通過健康檢查的站點。
2)IP地址權(quán)重:可以為DNS應(yīng)答中的每個IP地址分配權(quán)重,權(quán)重決定與其他候選IP相比分配到該IP的流量比例。
3)往返時間(Round Trip Time, RTT):RTT策略是基于區(qū)域之外最常用的策略。有兩種模式的RTT測量:Active RTT測量與Passive RTT測量。在實際部署中,由于網(wǎng)絡(luò)限制和性能原因,Active RTT往往無法使用,Passive RTT更實用一些。
a) Active RTT 測量:
當(dāng)GSLB Controller收到來自LDNS的DNS請求時,GSLB Controller會通知所有站點負(fù)載均衡設(shè)備對該LDNS進(jìn)行RTT測量。根據(jù)采集到的RTT值,GSLB Controller會選擇RTT值最小的站點的VIP返回給LDNS。
由于Active RTT采用DNS Query或ICMP進(jìn)行RTT測量,在有些網(wǎng)絡(luò)中可能會被安全策略所過濾而無法工作。
Active RTT測量會產(chǎn)生額外的DNS Query或ICMP流量,在有些網(wǎng)絡(luò)中用戶不希望有太多類似的非用戶流量。
b) Passive RTT測量:
Passive RTT測量指從內(nèi)容站點收到一個用戶發(fā)出連接請求(發(fā)送TCN SYN)到接收到用戶的確認(rèn)(收到TCP ACK)所經(jīng)歷的時間。而不是簡單的PING的響應(yīng)時間,可以更精確的衡量訪問最快的站點。
Passive RTT測量不會主動去進(jìn)行測量,也不會產(chǎn)生額外的數(shù)據(jù)流量,而是在用戶向返回的VIP建立連接時進(jìn)行采集。
Passive RTT的測量值真正反映了用戶的上網(wǎng)感受,在運營商網(wǎng)絡(luò)中也不會產(chǎn)生額外流量。也不會受到其他運營商或網(wǎng)絡(luò)的安全策略的影響。
審核編輯:湯梓紅
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9017瀏覽量
85182 -
CDN
+關(guān)注
關(guān)注
0文章
312瀏覽量
28772 -
負(fù)載均衡
+關(guān)注
關(guān)注
0文章
105瀏覽量
12358
原文標(biāo)題:全局負(fù)載均衡與CDN內(nèi)容分發(fā)
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論