關於CDN的認識

2022-10-10 20:00:15 字數 2692 閱讀 4038

傳統的未加快取服務的訪問過程:

使用者提交網域名稱→瀏覽器對網域名稱進行解釋→得到目的主機的ip位址→根據ip位址訪問發出請求→得到請求資料並回覆

由上可見,使用者訪問未使用cdn快取**的過程為:

1)、使用者向瀏覽器提供要訪問的網域名稱;

2)、瀏覽器呼叫網域名稱解析函式庫對網域名稱進行解析,以得到此網域名稱對應的ip位址;

3)、瀏覽器使用所得到的ip位址,向網域名稱的服務主機發出資料訪問請求;

4)、瀏覽器根據網域名稱主機返回的資料顯示網頁的內容。

通過以上四個步驟,瀏覽器完成從使用者處接收使用者要訪問的網域名稱到從網域名稱服務主機處獲取資料的整個過程。

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群協同工作。

參考:

cdn簡單理解 關於CDN的理解與思考

關於 cdn的理解與思考魏穎 摘要 摘要 首先給出了 cdn的概念,cdn的主要發展趨勢。然後以圖示 方式展示了融合 cdn體系結構,融合 cdn流 系統結構,內容儲存 cdn結構。主要系統直觀的提出了雲計算模式 cdn的一種解決方案。最後給予了 思考與理解。期刊名稱 科技創業月刊 年卷 期 201...

關於CDN快取問題

問題場景 顧客反饋,使用者登入返回的不是當前使用者資訊,使用者的選單也不一樣。問題原因 申請網域名稱時,申請了cdn,使用者請求時,沒有回源站獲取內容。解決方案 1.修改cdn策略,改為a標記。臨時解決問題。2.反饋頭資訊增加cache control引數,no cache。3.在nginx伺服器,...

關於CDN那些事

對於前端效能優化我們不得不了解的幾個知識點 cdn http header資訊 今天我就來談談我對cdn的理解 1 cdn是什麼 cdn全稱是content delivery network,即內容分發網路。將 內容發布到接近使用者的伺服器上。使用者訪問 時,使用者訪問就近伺服器,然後載入這些資源。...