標籤:
傳統的未加快取服務的訪問過程: 使用者提交網域名稱→瀏覽器對網域名稱進行解釋→得到目的主機的IP地址→根據IP地址訪問發出請求→得到請求資料並回複由上可見,使用者訪問未使用CDN緩衝網站的過程為:1)、使用者向瀏覽器提供要訪問的網域名稱;2)、瀏覽器調用網域名稱解析函數庫對網域名稱進行解析,以得到此網域名稱對應的IP地址;3)、瀏覽器使用所得到的IP地址,向網域名稱的服務主機發出資料訪問請求;4)、瀏覽器根據網域名稱主機返回的資料顯示網頁的內容。通過以上四個步驟,瀏覽器完成從使用者處接收使用者要訪問的網域名稱到從網域名稱服務 (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網路實現的具體操作過程: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伺服器時,還需要維護一台授權伺服器,控制哪些網域名稱可以進行緩衝,而哪些又不進行緩衝,以免發生開放代理的情況。
1.使用者向瀏覽器輸入www.web.com這個網域名稱,瀏覽器第一次發現本地沒有dns緩衝,則向網站的DNS伺服器請求;
2.網站的DNS網域名稱解析器設定了CNAME,指向了www.web.51cdn.com,請求指向了CDN網路中的智能DNS負載平衡系統;
3.智能DNS負載平衡系統解析網域名稱,把對使用者響應速度最快的IP節點返回給使用者;
4.使用者向該IP節點(CDN伺服器)發出請求;
5.由於是第一次訪問,CDN伺服器會向原web網站請求,並緩衝內容;
6.請求結果發給使用者。
CDN網路是在使用者和伺服器之間增加Cache層,如何將使用者的請求引導到Cache上獲得原始伺服器的資料,主要是通過接管DNS實現,這就是CDN的最基本的原理,當然很多細節沒有涉及到,比如第1步,首先向本地的DNS伺服器請求。第5步,內容淘汰機制(根據TTL)等。但原理大體如此。
當使用者訪問加入CDN服務的網站時,網域名稱解析請求將最終交給全域負載平衡DNS進行處理。全域負載平衡DNS通過一組預先定義好的策略,將當時最接近用 戶的節點地址提供給使用者,使使用者能夠得到快速的服務。同時,它還與分布在世界各地的所有CDNC節點保持通訊,搜集各節點的通訊狀態,確保不將使用者的請求 分配到停用CDN節點上,實際上是通過DNS做全域負載平衡。
對於普通的Internet使用者來講,每個CDN節點就相當於一個放置在它周圍的WEB。通過全域負載平衡DNS的控制,使用者的請求被透明地指向離他最近的節點,節點中CDN伺服器會像網站的原始伺服器一樣,響應使用者的請求。由於它離使用者更近,因而回應時間必然更快。
每個CDN節點由兩部分組成:負載平衡裝置和快取伺服器
負載平衡裝置負責每個節點中各個Cache的負載平衡,保證節點的工作效率;同時,負載平衡裝置還負責收集節點與周圍環境的資訊,保持與全域負載DNS的通訊,實現整個系統的負載平衡。CDN的管理系統是整個系統能夠正常運轉的保證。它不僅能對系統中的各個子系統和裝置進行即時監控,對各種故障產生相應的警示,還可以即時監測到系統中 總的流量和各節點的流量,並儲存在系統的資料庫中,使網管人員能夠方便地進行進一步分析。通過完善的網管系統,使用者可以對系統配置進行修改。
理論上,最簡單的CDN網路有一個負責全域負載平衡的DNS和各節點一台Cache,即可運行。DNS支援根據使用者源IP位址解析不同的IP,實現 就近訪問。為了保證高可用性等,需要監視各節點的流量、健康情況等。一個節點的單台Cache承載數量不夠時,才需要多台Cache,多台Cache同時 工作,才需要負載平衡器,使Cache群協同工作。
參考:
http://www.cnblogs.com/rayray/p/3553696.html
http://blog.csdn.net/coolmeme/article/details/9468743
關於CDN的認識