CDN內容分發網絡
CDN概念
CDN,Content Delivery.NETwork,即內容分發網絡,其基本思路是盡可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸得更快、更穩定。通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡,CDN系統能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上,其目的是使用戶可就近取得所需內容,解決Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。
CDN基本原理
CDN的基本原理是廣泛采用各種緩存服務器,將這些緩存服務器分布到用戶訪問相對集中的地區或網絡中,在用戶訪問網站時,利用全局負載技術將用戶的訪問指向距離最近的工作正常的緩存服務器上,由緩存服務器直接響應用戶請求。
CDN需要考慮兩個方面的內容存儲問題,一個是內容源的集中存儲,另一個是內容在Cache節點中的分布式存儲。由于內容的規模比較大,內容的吞吐量較大,因此,通常采用海量存儲架構。目前常用的存儲技術主要有:直連附加存儲(DAS)、網絡附加存儲(NAS)和存儲區域網(SAN)。
CDN的關鍵技術
CDN的關鍵技術主要有內容存儲和分發技術。
用戶訪問網站的過程(不使用CDN)
為:用戶提交域名→瀏覽器對域名進行解釋→得到目的主機的IP地址→根據IP地址訪問發出請求→得到請求數據并回復
1、用戶向瀏覽器提供要訪問的域名;
2、瀏覽器調用域名解析函數庫對域名進行解析,以得到此域名對應的IP地址;
3、瀏覽器使用所得到的IP地址,向域名的服務主機發出數據訪問請求;
4、瀏覽器根據域名主機返回的數據顯示網頁的內容。
用戶訪問網站的過程(使用CDN緩存)
1、用戶向瀏覽器提供要訪問的域名;
2、瀏覽器調用域名解析庫對域名進行解析,由于CDN對域名解析過程進行了調整,所以解析函數庫一般得到的是該域名對應的CNAME記錄,為了得到實際IP地址,瀏覽器需要再次對獲得的CNAME域名進行解析以得到實際的IP地址;在此過程中,使用的全局負載均衡DNS解析,如根據地理位置信息解析對應的IP地址,使得用戶能就近訪問。
3、此次解析得到CDN緩存服務器的IP地址,瀏覽器在得到實際的IP地址以后,向緩存服務器發出訪問請求;
4、緩存服務器根據瀏覽器提供的要訪問的域名,通過Cache內部專用DNS解析得到此域名的實際IP地址,再由緩存服務器向此實際IP地址提交訪問請求;
5、緩存服務器從實際IP地址得得到內容以后,一方面在本地進行保存,以備以后使用,另一方面把獲取的數據返回給客戶端,完成數據服務過程;
6、客戶端得到由緩存服務器返回的數據以后顯示出來并完成整個瀏覽的數據請求過程。
CDN網絡實現的具體操作過程
1、作為ICP,只需要把域名解釋權交給CDN運營商,其他方面不需要進行任何的修改;操作時,ICP修改自己域名的解析記錄,一般用cname方式指向CDN網絡Cache服務器的地址。
2、作為CDN運營商,首先需要為ICP的域名提供公開的解析,為了實現sortlist,一般是把ICP的域名解釋結果指向一個CNAME記錄;
3、當需要進行sortlist時,CDN運營商可以利用DNS對CNAME指向的域名解析過程進行特殊處理,使DNS服務器在接收到客戶端請求時可以根據客戶端的IP地址,返回相同域名的不同IP地址;
4、由于從cname獲得的IP地址,并且帶有hostname信息,請求到達Cache之后,Cache必須知道源服務器的IP地址,所以在CDN運營商內部維護一個內部DNS服務器,用于解釋用戶所訪問的域名的真實IP地址;
5、在維護內部DNS服務器時,還需要維護一臺授權服務器,控制哪些域名可以進行緩存,而哪些又不進行緩存,以免發生開放代理的情況。