CDN架构以及原理分析
詳見: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp61?
在不同地域的用戶訪問網(wǎng)站的響應(yīng)速度存在差異,為了提高用戶訪問的響應(yīng)速度、優(yōu)化現(xiàn)有Internet中信息的流動,需要在用戶和服務(wù)器間加入中間層CDN. 使用戶能以最快的速度,從最接近用戶的地方獲得所需的信息,徹底解決網(wǎng)絡(luò)擁塞,提高響應(yīng)速度,是目前大型網(wǎng)站使用的流行的應(yīng)用方案.
1. CDN 概述
- CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其目的是通過在現(xiàn)有的Internet中增加一層新的CACHE(緩存)層,將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)"邊緣"的節(jié)點,使用戶可以就近取得所需的內(nèi)容,提高用戶訪問網(wǎng)站的響應(yīng)速度。從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶訪問量大、網(wǎng)點分布不均等原因,提高用戶訪問網(wǎng)站的響應(yīng)速度。
?
?
- Cache層的技術(shù),消除數(shù)據(jù)峰值訪問造成的結(jié)點設(shè)備阻塞。Cache服務(wù)器具有緩存功能,所以大部分網(wǎng)頁對象(Web page object),如html, htm, php等頁面文件,gif,tif,png,bmp等圖片文件,以及其他格式的文件,在有效期(TTL)內(nèi),對于重復(fù)的訪問,不必從原始網(wǎng)站重新傳送文件實體, 只需通過簡單的認(rèn)證(Freshness Validation)- 傳送幾十字節(jié)的Header,即可將本地的副本直接傳送給訪問者。由于緩存服務(wù)器通常部署在靠近用戶端,所以能獲得近似局域網(wǎng)的響應(yīng)速度,并有效減少廣域帶寬的消耗。不僅能提高響應(yīng)速度,節(jié)約帶寬,對于加速Web服務(wù)器,有效減輕源服務(wù)器的負(fù)載是非常有效的。
?
- 根據(jù)加速對象不同,分為 客戶端加速 和 服務(wù)器加速
?
- 客戶端加速?: Cache部署在網(wǎng)絡(luò)出口處,把常訪問的內(nèi)容緩存在本地,提高響應(yīng)速度和節(jié)約帶寬;
- 服務(wù)器加速?: Cache部署在服務(wù)器前端,作為Web服務(wù)器的代理緩存機,提高Web服務(wù)器的性能,加速訪問速度?
如果多臺Cache加速服務(wù)器且分布在不同地域,需要通過有效地機制管理Cache網(wǎng)絡(luò),引導(dǎo)用戶就近訪問(比如通過DNS引導(dǎo)用戶),全局負(fù)載均衡流量,這是CDN內(nèi)容傳輸網(wǎng)絡(luò)的基本思想.?
- CDN對網(wǎng)絡(luò)的優(yōu)化作用主要體現(xiàn)在如下幾個方面 - 解決服務(wù)器端的“第一公里”問題 - 緩解甚至消除了不同運營商之間互聯(lián)的瓶頸造成的影響 - 減輕了各省的出口帶寬壓力 - 緩解了骨干網(wǎng)的壓力 - 優(yōu)化了網(wǎng)上熱點內(nèi)容的分布
2. CDN 的工作原理
2.1. 傳統(tǒng)訪問過程(未加速緩存服務(wù))
我們先看傳統(tǒng)的未加緩存服務(wù)的訪問過程,以便了解CDN緩存訪問方式與未加緩存訪問方式的差別:
由上圖可見,用戶訪問未使用CDN緩存網(wǎng)站的過程為:
2.2. CDN訪問過程(使用緩存服務(wù))
CDN網(wǎng)絡(luò)是在用戶和服務(wù)器之間增加Cache層,主要是通過接管DNS實現(xiàn),將用戶的請求引導(dǎo)到Cache上獲得源服務(wù)器的數(shù)據(jù)
下面讓我們看看訪問使用CDN緩存后的網(wǎng)站的過程:
通過上圖,我們可以了解到,使用了CDN緩存后的網(wǎng)站的訪問過程變?yōu)?#xff1a;
通過以上的分析我們可以得到,為了實現(xiàn)對普通用戶透明(使用緩存后用戶客戶端無需進行任何設(shè)置)訪問,需要使用DNS(域名解析)來引導(dǎo)用戶來訪問Cache服務(wù)器,以實現(xiàn)透明的加速服務(wù). 由于用戶訪問網(wǎng)站的第一步就是?域名解析?,所以通過修改dns來引導(dǎo)用戶訪問是最簡單有效的方式.
2.3. CDN網(wǎng)絡(luò)的組成要素
對于普通的Internet用戶,每個CDN節(jié)點就相當(dāng)于一個放置在它周圍的網(wǎng)站服務(wù)器.?
通過對dns的接管,用戶的請求被透明地指向離他最近的節(jié)點,節(jié)點中CDN服務(wù)器會像網(wǎng)站的原始服務(wù)器一樣,響應(yīng)用戶的請求.?
由于它離用戶更近,因而響應(yīng)時間必然更快.
從上面圖中 虛線圈起來的那塊,就是CDN層,這層是位于 用戶端 和 站點服務(wù)器之間.
- 智能調(diào)度DNS(比如f5的3DNS)
?
智能調(diào)度DNS是CDN服務(wù)中的關(guān)鍵系統(tǒng).當(dāng)用戶訪問加入CDN服務(wù)的網(wǎng)站時,域名解析請求將最終由 智能調(diào)度DNS 負(fù)責(zé)處理.
它通過一組預(yù)先定義好的策略,將當(dāng)時最接近用戶的節(jié)點地址提供給用戶,使用戶可以得到快速的服務(wù).
同時它需要與分布在各地的CDN節(jié)點保持通信,跟蹤各節(jié)點的健康狀態(tài),容量等,確保將用戶的請求分配到就近可用的節(jié)點上.?
- 緩存功能服務(wù)
- 負(fù)載均衡設(shè)備(如lvs,F5的BIG/IP)
- 內(nèi)容Cache服務(wù)器(如squid)
- 共享存儲(根據(jù)緩存數(shù)據(jù)量多少決定是否需要)
3. CDN 智能調(diào)度Dns 實例分析
- 分析img.alibaba.com域名
?
在系統(tǒng)中,執(zhí)行dig命令,輸出如下:?
#dig img.alibaba.com ; 部分省略;; QUESTION SECTION:;img.alibaba.com. IN A;; ANSWER SECTION:img.alibaba.com. 600 IN CNAME img.alibaba.com.edgesuite.net.img.alibaba.com.edgesuite.net. 7191 IN CNAME img.alibaba.com.georedirector.akadns.net.img.alibaba.com.georedirector.akadns.net. 3592 IN CNAME a1366.g.akamai.net.a1366.g.akamai.net. 12 IN A 204.203.18.145a1366.g.akamai.net. 12 IN A 204.203.18.160; 部分省略 從上面查詢結(jié)果可以看出 img.alibaba.com. CNAME img.alibaba.com.edgesuite.net. 后面的CNAME是由 Akamai(CDN服務(wù)商) 去跳轉(zhuǎn)到 智能調(diào)度器上的.?
- 分析www.discovery.com域名
?
在系統(tǒng)中,繼續(xù)執(zhí)行dig命令,輸出如下: #dig www.discovery.com; 部分省略;; QUESTION SECTION:;www.discovery.com. IN A;; ANSWER SECTION:www.discovery.com. 1077 IN CNAME www.discovery.com.edgesuite.net.www.discovery.com.edgesuite.net. 21477 IN CNAME a212.g.akamai.net.a212.g.akamai.net. 20 IN A 204.203.18.154a212.g.akamai.net. 20 IN A 204.203.18.147; 部分省略 從上面查詢結(jié)果可以看出?www.discovery.com. IN CNAME www.discovery.com.edgesuite.net. 后面的CNAME是由 Akamai(CDN服務(wù)商) 去跳轉(zhuǎn)到 智能調(diào)度器上的.?
總結(jié):一般來說,網(wǎng)站需要使用到CDN服務(wù)時,一般都是將需要加速訪問的域名 CNAME到 CDN服務(wù)商的域名上.
緩存服務(wù)和調(diào)度功能都是由服務(wù)商來完成.
4. CDN的 智能調(diào)度Dns 簡化實現(xiàn)
4.1. 調(diào)度策略說明
在用戶請求解析域名的時候,智能DNS判斷用戶的LocalDns的IP,然后跟DNS服務(wù)器內(nèi)部的IP表范圍匹配一下,看看用戶是電信還是網(wǎng)通用戶,然后給用戶返回對應(yīng)的IP地址?
這里使用的是靜態(tài)拓?fù)涞姆椒?只是判斷LocalDns的IP.要想使用更復(fù)雜的調(diào)度算法可以考慮商業(yè)產(chǎn)品,如F5的3DNS.
4.2. 假設(shè)CDN節(jié)點規(guī)劃
在這里我們將使用 BIND 的View功能來實現(xiàn)運營商的區(qū)分,假設(shè)我們在每個運營商的機房都放有一個CDN節(jié)點,列表如下:
| www.cdntest.com | 網(wǎng)通(CNC) | 192.168.0.1 |
| www.cdntest.com | 電信(TELECOM) | 192.168.0.2 |
| www.cdntest.com | 教育網(wǎng)(EDU) | 192.168.0.3 |
| www.cdntest.com | 默認(rèn)(ANY) | 192.168.0.4 |
4.3. bind view 配置
- 以下是named.conf配置文件的部分截取,只是涉及到?View?的部分,其他細(xì)節(jié)可參考互聯(lián)網(wǎng).
?
acl "cnc_iprange"{ //定義ip范圍(網(wǎng)通)192.168.1.0/24; 192.168.2.0/24;//此處只是示例,其他省略}; acl "tel_iprange"{ //定義ip范圍(電信)192.168.3.0/24; 192.168.4.0/24;//其他省略};acl "edu_iprange"{ //定義ip范圍(教育網(wǎng))192.168.5.0/24; 192.168.6.0/24;//其他省略};acl "default_iprange"{ //定義ip范圍(默認(rèn))192.168.7.0/24; 192.168.8.0/24;//其他省略}; view "CNC" {Match-clients{cnc_iprange};zone "." IN {type hint;file "named.root";};zone "localhost" IN {type master;file "localhost.zone";allow-update { none; };};zone "cdntest.com" IN {type master;file "cnc_cdntest.zone";};};view "TEL" {Match-clients{tel_iprange};zone "." IN {type hint;file "named.root";};zone "localhost" IN {type master;file "localhost.zone";allow-update { none; };};zone "cdntest.com" IN {type master;file "tel_cdntest.zone";};};view "EDU" {Match-clients{edu_iprange};zone "." IN {type hint;file "named.root";};zone "localhost" IN {type master;file "localhost.zone";allow-update { none; };};zone "cdntest.com" IN {type master;file "edu_cdntest.zone";};};view "DEFAULT" {Match-clients{default_iprange};zone "." IN {type hint;file "named.root";};zone "localhost" IN {type master;file "localhost.zone";allow-update { none; };};zone "cdntest.com" IN {type master;file "default_cdntest.zone";};}; - zone文件的配置說明
?
這4個zone配置文件(cnc_cdntest.zone,tel_cdntest.zone,edu_cdntest.zone,default_cdntest.zone)中,只有www.cndtest.com的A記錄不一樣,其他的都是一樣.?
| www.cdntest.com | cnc_cdntest.zone | 192.168.0.1 |
| www.cdntest.com | tel_cdntest.zone | 192.168.0.2 |
| www.cdntest.com | edu_cdntest.zone | 192.168.0.3 |
| www.cdntest.com | default_cdntest.zone | 192.168.0.4 |
以上只列出了?www.cdntest.com?的A記錄地址,其他關(guān)于zone的語法 請參考互聯(lián)網(wǎng).
- 域名解析流程簡要說明
?
?
說明:再此過程中,我們簡化了主DNS?到?智能DNS?之間的CNAME過程(為了簡要說明問題).?這里使用的是靜態(tài)拓?fù)?根據(jù)ip范圍)的方法,也稱為地域化方法,只是判斷LocalDns的IP.
?
- 此簡化方案中的存在的問題
?
5. 總結(jié)(Summary)
在建立CDN網(wǎng)路時,最關(guān)鍵的就是?智能調(diào)度DNS,這個是CND網(wǎng)絡(luò)總協(xié)調(diào),通過高效的調(diào)度算法,可以使用戶得到最佳的訪問體驗.
其次就是 CND節(jié)點的管理,比如涉及到 內(nèi)容的同步機制,配置文件的更新等等,都需要有一套機制來保證.
當(dāng)然在大型網(wǎng)站中,也要考建設(shè)CDN體系的成本和回報率.
轉(zhuǎn)自:http://www.51know.info/system_performance/cdn/cdn.html
轉(zhuǎn)載于:https://www.cnblogs.com/grefr/p/5046310.html
總結(jié)
以上是生活随笔為你收集整理的CDN架构以及原理分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支付宝转账到银行卡多久到账?支付宝到账时
- 下一篇: 省呗打电话审核吗?如果接到电话就这么应对