CDN基本工作過程 (轉)
使用CDN會極大地簡化網站的系統維護工作量,網站維護人員只需將網站內容注入CDN的系統,通過CDN部署在各個物理位置的伺服器進行全網分發,就可以實現跨運營商、跨地域的使用者覆蓋。由於CDN將內容推送到網路邊緣,大量的使用者訪問被分散在網路邊緣,不再構成網站出口、互聯互通點的資源擠佔,也不再需要跨越長距離IP路由了。
CDN是如何工作的呢?讓我們先看看沒有CDN服務時,一個網站是如何向使用者提供服務的。
今天我們看到的網站系統基本上都是基於B/S架構的。B/S架構,即Browser-Server(瀏覽器 伺服器)架構,是對傳統C/S架構的一種變化或者改進架構。在這種架構下,使用者只需使用通用瀏覽器,主要業務邏輯在伺服器端實現。B/S架構,主要是利用了不斷成熟的WWW瀏覽器技術,結合瀏覽器的多種Script語言(VBScript、JavaScript等)和ActiveX等技術,在通用瀏覽器上實現了C/S架構下需要複雜的軟體才能實現的強大功能。
使用者通過瀏覽器等方式訪問網站的過程如圖1-2所示。
①使用者在自己的瀏覽器中輸入要訪問的網站域名。
②瀏覽器向本地DNS伺服器請求對該域名的解析。
③本地DNS伺服器中如果快取有這個域名的解析結果,則直接響應使用者的解析請求。
④本地DNS伺服器中如果沒有關於這個域名的解析結果的快取,則以遞迴方式向整個DNS系統請求解析,獲得應答後將結果反饋給瀏覽器。
⑤瀏覽器得到域名解析結果,就是該域名相應的服務裝置的IP地址。
⑥瀏覽器向伺服器請求內容。
⑦伺服器將使用者請求內容傳送給瀏覽器。
在網站和使用者之間加入CDN以後,使用者不會有任何與原來不同的感覺。最簡單的CDN網路有一個DNS伺服器和幾臺快取伺服器就可以執行了。一個典型的CDN使用者訪問排程流程如圖1-3所示。
①當使用者點選網站頁面上的內容URL,經過本地DNS系統解析,DNS系統會最終將域名的解析權交給CNAME指向的CDN專用DNS伺服器。
②CDN的DNS伺服器將CDN的全域性負載均衡裝置IP地址返回使用者。
③使用者向CDN的全域性負載均衡裝置發起內容URL訪問請求。
④CDN全域性負載均衡裝置根據使用者IP地址,以及使用者請求的內容URL,選擇一臺使用者所屬區域的區域負載均衡裝置,告訴使用者向這臺裝置發起請求。
⑤區域負載均衡裝置會為使用者選擇一臺合適的快取伺服器提供服務,選擇的依據包括:根據使用者IP地址,判斷哪一臺伺服器距使用者最近;根據使用者所請求的URL中攜帶的內容名稱,判斷哪一臺伺服器上有使用者所需內容;查詢各個伺服器當前的負載情況,判斷哪一臺伺服器尚有服務能力。基於以上這些條件的綜合分析之後,區域負載均衡裝置會向全域性負載均衡裝置返回一臺快取伺服器的IP地址。
⑥全域性負載均衡裝置把伺服器的IP地址返回給使用者。
⑦使用者向快取伺服器發起請求,快取伺服器響應使用者請求,將使用者所需內容傳送到使用者終端。如果這臺快取伺服器上並沒有使用者想要的內容,而區域均衡裝置依然將它分配給了使用者,那麼這臺伺服器就要向它的上一級快取伺服器請求內容,直至追溯到網站的源伺服器將內容拉到本地。
DNS伺服器根據使用者IP地址,將域名解析成相應節點的快取伺服器IP地址,實現使用者就近訪問。使用CDN服務的網站,只需將其域名解析權交給CDN的GSLB裝置,將需要分發的內容注入CDN,就可以實現內容加速了。
相關文章
- 智慧CDN(上):CDN的訪問過程和加速原理
- FreeBSD DHCP的工作過程(轉)
- mysql儲存過程基本函式(轉)MySql儲存過程函式
- OAuth 2.0以及它的工作過程工作過程OAuth
- DMA的工作過程
- [譯] Redux 的工作過程Redux
- CDN是如何工作的?
- Java 垃圾回收01(基本過程)Java
- 儲存過程基本語法儲存過程
- Hadoop之 MapReducer工作過程Hadoop
- 編譯器的工作過程編譯
- oracle的undo的工作過程Oracle
- CDN相關知識及CDN繞過
- Oracle儲存過程基本語法Oracle儲存過程
- 編譯器的編譯基本過程編譯
- 配置oracle Datagurad的基本過程Oracle
- CDN運作的基本原理
- [個體軟體過程]之過程改進 (轉)
- 編寫儲存過程基本注意事項儲存過程
- vxlan基本原理及裸搭過程
- 談談 ajax 工作過程那點事
- 編譯器的工作過程和原理編譯
- Activiti配置工作流結束過程
- CDN和負載均衡的基本瞭解負載
- JAVA儲存過程(轉)Java儲存過程
- 網站入侵過程(轉)網站
- dbx除錯過程 (轉)除錯
- Web前端效能優化_CDN(內容釋出網路)、CDN工作原理Web前端優化
- Vuejs基本知識(四)【頁面渲染過程 】VueJS
- Mysql加鎖過程詳解(1)-基本知識MySql
- python中try語句的工作過程Python
- 【Android原始碼】BroadcastReceiver的工作過程Android原始碼AST
- 轉:DNS解析過程詳解DNS
- 專案管理過程概述 (轉)專案管理
- glade 編譯過程 (轉)編譯
- 我的dns配置過程(轉)DNS
- MySql特性發展過程(轉)MySql
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle