淺談CDN原理

一、前言

一直對CDN原理有點(diǎn)一知半解,好像知道它是什么意思,”不就是能加速靜態(tài)資源的獲取,加快網(wǎng)頁的渲染嘛”,不過當(dāng)有人問你它是什么原理,又支支吾吾說不太清,本文就將用兩種方式解釋什么是CDN原理,一種較為通俗易懂,方便跟別人解釋;另一種用專業(yè)詞匯進(jìn)行闡述,加深理解。

二、CDN具象化

舉個簡單的例子描述什么是cdn,一張很大的餐桌上,很多人在吃飯,其中包括小明和小李,小明和小李想要吃到距離他們很遠(yuǎn)的鍋包肉,就得跋山涉水甚至站起來走過去才能吃到,那這個時候有人發(fā)現(xiàn)這道菜離小明和小李太遠(yuǎn)了,就主動把菜分出來一些分別放到小明和小李身邊,這樣小明和小李就可以就近吃到美味的鍋包肉了。小明和小李就近吃鍋包肉這個過程就用到了CDN。

img.jpg

再舉個例子,你在園區(qū)內(nèi)工作,此時你想下載一個游戲,但這個游戲服務(wù)器帶寬被限制在2M,那么你下載這個好幾個G的游戲就需要很長時間,但如果這個游戲非常熱門,園區(qū)內(nèi)很多人都下載過,那園區(qū)內(nèi)的緩存設(shè)備就會將游戲資源緩存下載,那么你再下載的時候就會用遠(yuǎn)遠(yuǎn)大于2M的速度從緩存設(shè)備中獲取,還減輕了目標(biāo)服務(wù)器的壓力。

三、CDN具體原理

用簡單通俗的例子說明了什么是CDN之后就要再剖析一下它的具體原理了:

首先用又臭又長的名詞說一下CDN的全稱,Content Delivery Network或Content Ddistribute Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。

CDN是將源站內(nèi)容分發(fā)至最接近用戶的節(jié)點(diǎn),使用戶可就近取得所需內(nèi)容,提高用戶訪問的響應(yīng)速度和成功率。解決因分布、帶寬、服務(wù)器性能帶來的訪問延遲問題,適用于站點(diǎn)加速、點(diǎn)播、直播等場景。

最簡單的CDN網(wǎng)絡(luò)由一個DNS服務(wù)器和幾臺緩存服務(wù)器組成:

  1. 當(dāng)用戶請求網(wǎng)站頁面上的內(nèi)容URL,經(jīng)過本地DNS系統(tǒng)解析,DNS系統(tǒng)會最終將域名的解析權(quán)交給CNAME指向的CDN專用DNS服務(wù)器。
  2. CDN的DNS服務(wù)器將CDN的全局負(fù)載均衡設(shè)備IP地址返回用戶。
  3. 用戶向CDN的全局負(fù)載均衡設(shè)備發(fā)起內(nèi)容URL訪問請求。
  4. CDN全局負(fù)載均衡設(shè)備根據(jù)用戶IP地址,以及用戶請求的內(nèi)容URL,選擇一臺用戶所屬區(qū)域的區(qū)域負(fù)載均衡設(shè)備,告訴用戶向這臺設(shè)備發(fā)起請求。
  5. 區(qū)域負(fù)載均衡設(shè)備會為用戶選擇一臺合適的緩存服務(wù)器提供服務(wù),選擇的依據(jù)包括:根據(jù)用戶IP地址,判斷哪一臺服務(wù)器距用戶最近;根據(jù)用戶所請求的URL中攜帶的內(nèi)容名稱,判斷哪一臺服務(wù)器上有用戶所需內(nèi)容;查詢各個服務(wù)器當(dāng)前的負(fù)載情況,判斷哪一臺服務(wù)器尚有服務(wù)能力?;谝陨线@些條件的綜合分析之后,區(qū)域負(fù)載均衡設(shè)備會向全局負(fù)載均衡設(shè)備返回一臺緩存服務(wù)器的IP地址。
  6. 全局負(fù)載均衡設(shè)備把服務(wù)器的IP地址返回給用戶。
  7. 用戶向緩存服務(wù)器發(fā)起請求,緩存服務(wù)器響應(yīng)用戶請求,將用戶所需內(nèi)容傳送到用戶終端。如果這臺緩存服務(wù)器上并沒有用戶想要的內(nèi)容,而區(qū)域均衡設(shè)備依然將它分配給了用戶,那么這臺服務(wù)器就要向它的上一級緩存服務(wù)器請求內(nèi)容,直至追溯到網(wǎng)站的源服務(wù)器將內(nèi)容拉到本地。

上面的文字可能讀起來有點(diǎn)費(fèi)勁,下面用一張圖來解釋說明

049b124feb55100ff2f147b768ad4c8b_1440w.jpg

以上就是CDN能加快網(wǎng)絡(luò)資源加載的原理。

四、游戲加速器原理

順便說一下游戲加速器的原理,提到游戲加速就不得不提到延遲,那為什么會產(chǎn)生延遲呢?

影響延遲的關(guān)鍵因素就是本機(jī)電腦到服務(wù)器的距離,延遲有個公式是延遲≈距離/光速。

上網(wǎng)連接游戲比作一條道路,從用戶電腦到游戲服務(wù)器所經(jīng)歷的時間就是延遲。用戶電腦到游戲服務(wù)器的距離走向,遵循一個基本原則
國內(nèi):局域網(wǎng)->城域網(wǎng)->骨干網(wǎng)->城域網(wǎng)->局域網(wǎng)
出國:局域網(wǎng)->城域網(wǎng)->骨干網(wǎng)->國際出口→海外線路→...

如用戶在四川成都,游戲服務(wù)器在北京,我們理論覺得這段距離是成都到北京的直線路線,但是我們用tracet命令查看所走路由表如圖

b264de9280810130bf5ffbe9d449c522_r.jpg

沒錯,他從成都先走到了上海,然后再從上海到了北京,無形中這段距離被拉長了,自然延遲就會長了。

那么如何降低延遲呢?游戲加速器就可以做到,下圖就展示了游戲加速器是如何縮短距離,降低延遲的

v2-f8324903eda197c44a10ab485a27c682_r.jpg

可以理解為從成都到天津本來是一條崎嶇的鄉(xiāng)道,還長還不好走,而加速器在成都到天津架設(shè)了一條高速通路,直達(dá)天津,距離縮短了,延遲自然也低了。

完。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.CDN基本原理 CDN 的基本原理是依靠放置在各地的緩存服務(wù)器,通過全局調(diào)度以及內(nèi)容分發(fā)等功能模塊,將用戶需要...
    TimLi_51bb閱讀 762評論 0 0
  • 一、簡述http協(xié)議緩存原理及常用首部講解 1、緩存的類型 頁面緩存頁面緩存是將動態(tài)頁面直接生成靜態(tài)的頁面放在服務(wù)...
    N32_Diamond閱讀 1,255評論 0 1
  • 什么是CDN? CDN即內(nèi)容分發(fā)網(wǎng)絡(luò)。其目的是在現(xiàn)有Internet中增加一層新的網(wǎng)絡(luò)架構(gòu),將網(wǎng)站內(nèi)容發(fā)布到最接近...
    bjennyzhen閱讀 1,323評論 0 0
  • 最簡單的CND網(wǎng)絡(luò)由一個DNS服務(wù)器和幾臺緩存服務(wù)器組成 用戶輸入URL,經(jīng)過本地DNS解析,DNS系統(tǒng)會最終將域...
    糕糕AA閱讀 340評論 0 0
  • 久違的晴天,家長會。 家長大會開好到教室時,離放學(xué)已經(jīng)沒多少時間了。班主任說已經(jīng)安排了三個家長分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,787評論 16 22

友情鏈接更多精彩內(nèi)容