一文帶你搞懂 CDN 的技術原理
CDN 的全稱是 Content Delivery Network,即內容分發網路。其目的是透過在現有的Internet中增加一層新的CACHE(快取)層,將網站的內容釋出到最接近使用者的網路”邊緣“的節點,使使用者可以就近取得所需的內容,提高使用者訪問網站的響應速度。從技術上全面解決由於網路頻寬小、使用者訪問量大、網點分佈不均等原因,提高使用者訪問網站的響應速度。
簡單的說,CDN 的工作原理就是將您源站的資源快取到位於全球各地的 CDN 節點上,使用者請求資源時,就近返回節點上快取的資源,而不需要每個使用者的請求都回您的源站獲取,避免網路擁塞、緩解源站壓力,保證使用者訪問資源的速度和體驗。
CDN 對網路的最佳化作用主要體現在如下幾個方面
解決伺服器端的“第一公里”問題
緩解甚至消除了不同運營商之間互聯的瓶頸造成的影響
減輕了各省的出口頻寬壓力
緩解了骨幹網的壓力
最佳化了網上熱點內容的分佈
傳統訪問過程
由上圖可見,使用者訪問未使用CDN快取網站的過程為:
使用者輸入訪問的域名,作業系統向 LocalDns 查詢域名的 ip 地址
LocalDns向 ROOT DNS 查詢域名的授權伺服器(這裡假設LocalDns快取過期)
ROOT DNS將域名授權 dns記錄回應給 LocalDns
LocalDns 得到域名的授權 dns 記錄後,繼續向域名授權 dns 查詢域名的 ip 地址
域名授權 dns 查詢域名記錄後,回應給 LocalDns
LocalDns 將得到的域名ip地址,回應給 使用者端
使用者得到域名 ip 地址後,訪問站點伺服器
站點伺服器應答請求,將內容返回給客戶端
透過上圖,我們可以瞭解到,使用了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 節點伺服器應答請求,將內容返回給客戶端。(快取伺服器一方面在本地進行儲存,以備以後使用,二方面把獲取的資料返回給客戶端,完成資料服務過程)
透過以上的分析我們可以得到,為了實現對普通使用者透明(使用快取後使用者客戶端無需進行任何設定)訪問,需要使用 DNS(域名解析)來引導使用者來訪問 Cache 伺服器,以實現透明的加速服務。由於使用者訪問網站的第一步就是域名解析,所以透過修改dns來引導使用者訪問是最簡單有效的方式。
CDN網路的組成要素
對於普通的 Internet 使用者,每個 CDN 節點就相當於一個放置在它周圍的網站伺服器。
透過對 DNS 的接管,使用者的請求被透明地指向離他最近的節點,節點中 CDN 伺服器會像網站的原始伺服器一樣,響應使用者的請求。 由於它離使用者更近,因而響應時間必然更快。
從上面圖中虛線圈起來的那塊,就是 CDN 層,這層是位於使用者端和站點伺服器之間。
智慧排程 DNS(比如 f5 的 3DNS)
智慧排程DNS是CDN服務中的關鍵系統.當使用者訪問加入CDN服務的網站時,域名解析請求將最終由 “智慧排程DNS”負責處理。
它透過一組預先定義好的策略,將當時最接近使用者的節點地址提供給使用者,使使用者可以得到快速的服務。
同時它需要與分佈在各地的CDN節點保持通訊,跟蹤各節點的健康狀態、容量等資訊,確保將使用者的請求分配到就近可用的節點上.
快取功能服務
負載均衡裝置(如lvs,F5的BIG/IP)
內容Cache伺服器(如squid)
共享儲存
CNAME記錄(CNAME record)
CNAME即別名( Canonical Name );可以用來把一個域名解析到另一個域名,當 DNS 系統在查詢 CNAME 左面的名稱的時候,都會轉向 CNAME 右面的名稱再進行查詢,一直追蹤到最後的 PTR 或 A 名稱,成功查詢後才會做出回應,否則失敗。
例如,你有一臺伺服器上存放了很多資料,你使用docs.example.com去訪問這些資源,但又希望透過documents.example.com也能訪問到這些資源,那麼你就可以在您的DNS解析服務商新增一條CNAME記錄,將documents.example.com指向docs.example.com,新增該條CNAME記錄後,所有訪問documents.example.com的請求都會被轉到docs.example.com,獲得相同的內容。
CNAME域名
接入CDN時,在CDN提供商控制檯新增完加速域名後,您會得到一個CDN給您分配的CNAME域名, 您需要在您的DNS解析服務商新增CNAME記錄,將自己的加速域名指向這個CNAME域名,這樣該域名所有的請求才會都將轉向CDN的節點,達到加速效果。
DNS
DNS 即 Domain Name System,是域名解析服務的意思。它在網際網路的作用是:把域名轉換成為網路可以識別的 IP 地址。人們習慣記憶域名,但機器間互相只認IP地址,域名與IP地址之間是一一對應的,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析伺服器來完成,整個過程是自動進行的。比如:上網時輸入的 會自動轉換成為 220.181.112.143。
常見的DNS解析服務商有:阿里雲解析,萬網解析,DNSPod,新網解析,Route53(AWS),Dyn,Cloudflare等。
回源 host
回源host:回源 host 決定回源請求訪問到源站上的具體某個站點。
例子1:源站是域名源站為,回源host為那麼實際回源是請求到`解析到的IP,對應的主機上的站點
例子2:源站是IP源站為1.1.1.1, 回源host為那麼實際回源的是1.1.1.1對應的主機上的站點
協議回源
指回源時使用的協議和客戶端訪問資源時的協議保持一致,即如果客戶端使用 HTTPS 方式請求資源,當CDN節點上未快取該資源時,節點會使用相同的 HTTPS 方式回源獲取資源;同理如果客戶端使用 HTTP 協議的請求,CDN節點回源時也使用HTTP協議。
來自 “ https://www.jianshu.com/p/1dae6e1680ff ”, 原文作者:Kandy;原文連結:https://www.jianshu.com/p/1dae6e1680ff,如有侵權,請聯絡管理員刪除。
相關文章
- 一文帶你搞懂 SSR
- 一文帶你搞懂RPCRPC
- 什麼是CDN?CDN的技術原理是什麼?
- 一文帶你瞭解HDFS技術
- 影片CDN的技術原理是什麼?
- 解密|一文帶你看懂外掛技術解密
- ChatGPT強勢爆紅,背後的技術原理是?一文輕鬆搞懂!ChatGPT
- 雲集技術學社|帶你瞭解DevOps技術原理dev
- 一文帶你搞懂資料庫事務資料庫
- 一文帶你認識LPWA通訊技術
- 一文搞懂Linux零複製技術Linux
- 一文搞懂Zookeeper原理
- 一文帶你搞懂 RPC 到底是個啥RPC
- 一文帶你搞懂如何最佳化慢SQLSQL
- 一圖搞懂掃碼登入的技術原理
- 一文帶你搞懂GaussDB資料庫效能調優資料庫
- 一文帶你讀懂網路視覺化技術視覺化
- 一文搞懂I/O多路複用及其技術
- 一文帶你弄懂 Maven 拉包原理Maven
- 一文帶你搞懂 Kafka 的系統架構(深度好文,值得收藏)Kafka架構
- 一文搞懂AQS及其元件的核心原理AQS元件
- IM的掃碼登入功能如何實現?一文搞懂主流的掃碼登入技術原理
- 資料整合的未來:一文搞懂 EtLT 新技術的崛起
- 恆訊科技講解:CDN的原理技術及使用方法
- 多執行緒系列(十三) -一文帶你搞懂阻塞佇列執行緒佇列
- IAP商品修改和資料獲取,一文帶你全部搞懂
- 6 個技術點帶你理解 Kafka 高效能背後的原理Kafka
- 【老男孩Linux技術分享】5分鐘帶你搞懂日誌採集利器Filebeat!Linux
- 一文搞懂影片編解碼原理
- 瀏覽器渲染原理(一文搞懂)瀏覽器
- CDN技術發展
- 一文搞懂人臉識別技術的三種應用模式模式
- 一文帶你瞭解執行緒池原理執行緒
- 一文帶你掌握【TCP擁塞視窗】原理TCP
- 一文了解iOS超級簽名的技術原理iOS
- 一文帶你深入瞭解 Redis 的持久化方式及其原理Redis持久化
- 什麼是cdn技術
- 智慧CDN(中):CDN的系統構成和核心技術