web網站加速之CDN(Content Delivery Network)技術原理

在不一樣地域的用戶訪問網站的響應速度存在差別,爲了提升用戶訪問的響應速度、優化現有Internet中信息的流動,須要在用戶和服務器間加入中間層CDN. 使用戶能以最快的速度,從最接近用戶的地方得到所需的信息,完全解決網絡擁塞,提升響應速度,是目前大型網站使用的流行的應用方案.php

1. CDN 概述

  • CDN的全稱是Content Delivery Network,即內容分發網絡。其目的是經過在現有的Internet中增長一層新的CACHE(緩存)層,將網站的內容發佈到最接近用戶的網絡"邊緣"的節點,使用戶能夠就近取得所需的內容,提升用戶訪問網站的響應速度。從技術上全面解決因爲網絡帶寬小、用戶訪問量大、網點分佈不均等緣由,提升用戶訪問網站的響應速度。html


  • Cache層的技術,消除數據峯值訪問形成的結點設備阻塞。Cache服務器具備緩存功能,因此大部分網頁對象(Web page object),如html, htm, php等頁面文件,gif,tif,png,bmp等圖片文件,以及其餘格式的文件,在有效期(TTL)內,對於重複的訪問,沒必要從原始網站從新傳送文件實體, 只需經過簡單的認證(Freshness Validation)- 傳送幾十字節的Header,便可將本地的副本直接傳送給訪問者。因爲緩存服務器一般部署在靠近用戶端,因此能得到近似局域網的響應速度,並有效減小廣域帶寬的消耗。不只能提升響應速度,節約帶寬,對於加速Web服務器,有效減輕源服務器的負載是很是有效的。前端

  • 根據加速對象不一樣,分爲 客戶端加速 和 服務器加速算法

    • 客戶端加速 : Cache部署在網絡出口處,把常訪問的內容緩存在本地,提升響應速度和節約帶寬;緩存

    • 服務器加速 : Cache部署在服務器前端,做爲Web服務器的代理緩存機,提升Web服務器的性能,加速訪問速度 
      若是多臺Cache加速服務器且分佈在不一樣地域,須要經過有效地機制管理Cache網絡,引導用戶就近訪問(好比經過DNS引導用戶),全局負載均衡流量,這是CDN內容傳輸網絡的基本思想.服務器

  • CDN對網絡的優化做用主要體如今以下幾個方面  - 解決服務器端的「第一千米」問題  - 緩解甚至消除了不一樣運營商之間互聯的瓶頸形成的影響  - 減輕了各省的出口帶寬壓力  - 緩解了骨幹網的壓力  - 優化了網上熱點內容的分佈網絡

2. CDN 的工做原理

2.1. 傳統訪問過程(未加速緩存服務)

咱們先看傳統的未加緩存服務的訪問過程,以便了解CDN緩存訪問方式與未加緩存訪問方式的差異:負載均衡

由上圖可見,用戶訪問未使用CDN緩存網站的過程爲:性能

  1. 用戶輸入訪問的域名,操做系統向 LocalDns 查詢域名的ip地址.優化

  2. LocalDns向 ROOT DNS 查詢域名的受權服務器(這裏假設LocalDns緩存過時)

  3. ROOT DNS將域名受權dns記錄迴應給 LocalDns

  4. LocalDns獲得域名的受權dns記錄後,繼續向域名受權dns查詢域名的ip地址

  5. 域名受權dns 查詢域名記錄後,迴應給 LocalDns

  6. LocalDns 將獲得的域名ip地址,迴應給 用戶端

  7. 用戶獲得域名ip地址後,訪問站點服務器

  8. 站點服務器應答請求,將內容返回給客戶端.

2.2. CDN訪問過程(使用緩存服務)

CDN網絡是在用戶和服務器之間增長Cache層,主要是經過接管DNS實現,將用戶的請求引導到Cache上得到源服務器的數據
下面讓咱們看看訪問使用CDN緩存後的網站的過程:

經過上圖,咱們能夠了解到,使用了CDN緩存後的網站的訪問過程變爲:

  1. 用戶輸入訪問的域名,操做系統向 LocalDns 查詢域名的ip地址.

  2. LocalDns向 ROOT DNS 查詢域名的受權服務器(這裏假設LocalDns緩存過時)

  3. ROOT DNS將域名受權dns記錄迴應給 LocalDns

  4. LocalDns獲得域名的受權dns記錄後,繼續向域名受權dns查詢域名的ip地址

  5. 域名受權dns 查詢域名記錄後(通常是CNAME),迴應給 LocalDns

  6. LocalDns 獲得域名記錄後,向智能調度DNS查詢域名的ip地址

  7. 智能調度DNS 根據必定的算法和策略(好比靜態拓撲,容量等),將最適合的CDN節點ip地址迴應給 LocalDns

  8. LocalDns 將獲得的域名ip地址,迴應給 用戶端

  9. 用戶獲得域名ip地址後,訪問站點服務器

  10. CDN節點服務器應答請求,將內容返回給客戶端.(緩存服務器一方面在本地進行保存,以備之後使用,二方面把獲取的數據返回給客戶端,完成數據服務過程)

經過以上的分析咱們能夠獲得,爲了實現對普通用戶透明(使用緩存後用戶客戶端無需進行任何設置)訪問,須要使用DNS(域名解析)來引導用戶來訪問Cache服務器,以實現透明的加速服務. 因爲用戶訪問網站的第一步就是 域名解析 ,因此經過修改dns來引導用戶訪問是最簡單有效的方式.

相關文章
相關標籤/搜索