一文看懂CDN加速原理


隨着互聯網的發展,用戶在使用網絡時對網站的瀏覽速度和效果愈加重視,但由於網民數量激增,網絡訪問路徑過長,從 而使用戶的訪問質量受到嚴重影響。特別是當用戶與網站之間的鏈路被突發的大流量數據擁塞時,對於異地互聯網用戶急速增加的地區來說,訪問質量不良更是一個 急待解決的問題。
很多時候,大家都在談CDN,那么何為CDN,原理是什么,今天就給大家普及普及。
CDN

CDN的全稱是Content Delivery Network,即內容分發網絡。其目的是通過在現有的Internet中增加一層新的網絡架構,將網站的內容發布到最接近用戶的網絡“邊緣”,使用戶可以就近取得所需的內容,提高用戶訪問網站的響應速度。CDN有別於鏡像,因為它比鏡像更智能,或者可以做這樣一個比喻:CDN=更智能的鏡像+緩存+流量導流。因而,CDN可以明顯提高Internet網絡中信息流動的效率。從技術上全面解決由於網絡帶寬小、用戶訪問量大、網點分布不均等問題,提高用戶訪問網站的響應速度。

下面是CDN的一個簡單的示意圖:

 


在這里插入圖片描述

如上圖所示,是CDN一個常見的架構示意圖,其工作流程可以總結為:當用戶訪問已經加入CDN服務的網站時,首先通過DNS重定向技術確定最接近用戶的最佳CDN節點,同時將用戶的請求指向該節點。當用戶的請求到達指定節點時,CDN的服務器(節點上的高速緩存)負責將用戶請求的內容提供給用戶。具體流程為: 用戶在自己的瀏覽器中輸入要訪問的網站的域名,瀏覽器向本地DNS請求對該域名的解析,本地DNS將請求發到網站的主DNS,主DNS根據一系列的策略確定當時最適當的CDN節點,並將解析的結果(IP地址)發給用戶,用戶向給定的CDN節點請求相應網站的內容。
CDN相關技術

CDN的實現需要依賴多種網絡技術的支持,其中最主要的包括負載均衡技術、動態內容分發與復制技術、緩存技術等。
負載均衡技術

負載均衡技術不僅僅應用於CDN中,在網絡的很多領域都得到了廣泛的應用,如服務器的負載均衡、網絡流量的負載均衡。顧名思義,網絡中的負載均衡就是將網絡的流量盡可能均勻分配到幾個能完成相同任務的服務器或網絡節點上,由此來避免部分網絡節點過載。這樣既可以提高網絡流量,又提高了網絡的整體性能。在CDN中,負載均衡又分為服務器負載均衡和服務器整體負載均衡(也有的稱為服務器全局負載均衡)。服務器負載均衡是指能夠在性能不同的服務器之間進行任務分配,既能保證性能差的服務器不成為系統的瓶頸,又能保證性能高的服務器的資源得到充分利用。而服務器整體負載均衡允許Web網絡托管商、門戶站點和企業根據地理位置分配內容和服務。通過使用多站點內容和服務來提高容錯性和可用性,防止因本地網或區域網絡中斷、斷電或自然災害而導致的故障。在CDN的方案中服務器整體負載均衡將發揮重要作用,其性能高低將直接影響整個CDN的性能。
動態分發與復制技術

眾所周知,網站訪問響應速度取決於許多因素,如網絡的帶寬是否有瓶頸、傳輸途中的路由是否有阻塞和延遲、網站服務器的處理能力及訪問距離等。多數情況下,網站響應速度和訪問者與網站服務器之間的距離有密切的關系。如果訪問者和網站之間的距離過遠的話,它們之間的通信一樣需要經過重重的路由轉發和處理,網絡延誤不可避免。一個有效的方法就是利用內容分發與復制技術,將占網站主體的大部分靜態網頁、圖像和流媒體數據分發復制到各地的加速節點上。所以動態內容分發與復制技術也是CDN所需的一個主要技術。
緩存技術

緩存技術已經不是一種新鮮技術。Web緩存服務通過幾種方式來改善用戶的響應時間,如代理緩存服務、透明代理緩存服務、使用重定向服務的透明代理緩存服務等。通過Web緩存服務,用戶訪問網頁時可以將廣域網的流量降至最低。對於公司內聯網用戶來說,這意味着將內容在本地緩存,而無須通過專用的廣域網來檢索網頁。對於Internet用戶來說,這意味着將內容存儲在他們的ISP的緩存器中,而無須通過Internet來檢索網頁。這樣無疑會提高用戶的訪問速度。CDN的核心作用正是提高網絡的訪問速度,所以,緩存技術將是CDN所采用的又一個主要技術。
工作原理

CDN網絡是在用戶和服務器之間增加Cache層,主要是通過接管DNS實現,將用戶的請求引導到Cache上獲得源服務器的數據,從而降低網絡的訪問時間。
首先,讓我們看一下傳統的未加緩存服務的訪問過程:

 


在這里插入圖片描述
如圖可以看出,傳統的網絡訪問的流程如下:

    用戶輸入訪問的域名,操作系統向 LocalDns 查詢域名的ip地址;
    LocalDns向 ROOT DNS 查詢域名的授權服務器(這里假設LocalDns緩存過期);
    ROOT DNS將域名授權dns記錄回應給 LocalDns;
    LocalDns得到域名的授權dns記錄后,繼續向域名授權dns查詢域名的ip地址;
    域名授權dns 查詢域名記錄后,回應給 LocalDns;
    LocalDns 將得到的域名ip地址,回應給用戶端;
    用戶得到域名ip地址后,訪問站點服務器;
    站點服務器應答請求,將內容返回給客戶端.

下面讓我們看一下使用CDN緩存后的網站的訪問過程:

 


在這里插入圖片描述
如上圖,是使用CDN緩存后的網絡訪問流程:

    用戶輸入訪問的域名,操作系統向 LocalDns 查詢域名的ip地址;
    LocalDns向 ROOT DNS 查詢域名的授權服務器(這里假設LocalDns緩存過期);
    ROOT DNS將域名授權dns記錄回應給 LocalDns;
    LocalDns得到域名的授權dns記錄后,繼續向域名授權dns查詢域名的ip地址;
    域名授權dns 查詢域名記錄后(一般是CNAME),回應給 LocalDns;
    LocalDns 得到域名記錄后,向智能調度DNS查詢域名的ip地址;
    智能調度DNS 根據一定的算法和策略(比如靜態拓撲,容量等),將最適合的CDN節點ip地址回應給 LocalDns;
    LocalDns 將得到的域名ip地址,回應給用戶端;
    用戶得到域名ip地址后,訪問站點服務器。

宗上,CDN網絡是在用戶和服務器之間增加Cache層,主要是通過接管DNS實現,將用戶的請求引導到Cache上獲得源服務器的數據,從而降低網絡的訪問的速度。
————————————————
版權聲明:本文為CSDN博主「xiangzhihong8」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xiangzhihong8/article/details/83147542

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM