關於CDN的原理 術語和應用場景那些事

2022-01-10 12:18:03 字數 3756 閱讀 4999

關於cdn,想必你一定看過很多官方的解釋。今天,cdn百科第七期,將用一篇3844字的文章,來帶你了解cdn的誕生、術語、原理、特徵以及應用場景,看完這篇文章,相信你將會對cdn這項網際網路基礎設施有更加透徹的了解。

cdn的全稱是content delivery network,即內容分發網路。它是構建在現有網路基礎之上的智慧型虛擬網路,依靠部署在各地的邊緣伺服器,通過中心平台的負載均衡、內容分發、排程等功能模組,使使用者就近獲取所需內容,降低網路擁塞,提高使用者訪問響應速度和命中率。

簡單來說,cdn就是為了網路內容訪問速度「更快「而生的。那麼如今的網路本身四通八達,為什麼還需要cdn呢?

舉個簡單的例子,假設我們忽略網路傳輸的損耗、裝置延時,網路傳輸速度接近光速,是30萬公里每秒,從東京到美國矽谷的距離大概為1萬公里,也就是說,如果你的伺服器在東京,你上傳了一張很小的,美國使用者訪問至少需要60毫秒。而且,這只是理論資料,現實世界中,網路環境是十分複雜的,跨地域、跨運營商、網路擁塞、抖動等問題,都會積少成多,使得延時成倍增加,還有可能訪問失敗,最終影響訪問體驗。

cdn的出現,正是為了解決這個問題。我們將這張分發並快取在美國的cdn節點之上,美國使用者就無需從東京獲取資料,直接從就近的美國本地cdn節點獲取到,這大大節省了傳輸時間,提公升訪問效率。cdn的節點通常會遍布全球,源站的檔案會被被快取到世界各地,這樣全球使用者都可以實現快速訪問。

它有點像分布於各地的倉儲物流點,很多品牌會預先在倉儲物流點儲備一些爆款商品(靜態檔案使用cdn進行快取),當使用者從電商平台下單購買貨物的時候(使用者發起請求),平台根據使用者的收貨位址就近匹配到最近的倉儲物流點並直接進行派貨(就近分發),讓使用者以最快的速度拿到快遞包裹(分發的內容)。我們可以用實際的生活經驗來做個對比,如果從江浙滬包郵區寄給杭州的使用者,一般第二天就能到,如果是從北京、深圳發貨,一般需要2-3天!

下面,我們來進一步了解下cdn的工作原理。首先,關於cdn的那些名詞,需要掃個盲origin

server源站:做 cdn 之前的客戶真正的伺服器。

last mile:最後一公里,也就是網民到他所訪問到的 cdn 伺服器之間的路徑。網域名稱:網域名稱是internet網路上的乙個伺服器或乙個網路系統的名字,全世界,沒有重複的網域名稱。cname記錄:它是乙個別名記錄( canonical name );當 dns 系統在查詢 cname 左面的名稱的時候,都會轉向 cname 右面的名稱再進行查詢,一直追蹤到最後的 ptr 或 a 名稱,成功查詢後才會做出回應,否則失敗。

cname網域名稱:cdn的網域名稱加速需要用到cname記錄,在阿里雲控制台配置完成cdn加速後,您會得到乙個加速後的網域名稱,稱之為cname網域名稱(該網域名稱一定是.kunlun.com), 使用者需要將自己的網域名稱作cname指向這個.kunlun.com的網域名稱後,網域名稱解析的工作就正式轉向阿里雲,該網域名稱所有的請求都將轉向阿里雲cdn的節點。

dns:dns即domain name system,是網域名稱解析服務的意思。它在網際網路的作用是:把網域名稱轉換成為網路可以識別的ip位址。人們習慣記憶網域名稱,但機器間互相只認ip位址,網域名稱與ip位址之間是一一對應的,它們之間的轉換工作稱為網域名稱解析,網域名稱解析需要由專門的網域名稱解析伺服器來完成,整個過程是自動進行的。比如:上網時輸入的www.baidu.com會自動轉換成為220.181.112.143

邊緣節點:也稱cdn節點、cache節點等;是相對於網路的複雜結構而提出的乙個概念,指距離終端使用者接入具有較少的中間環節的網路節點,對最終接入使用者有較好的響應能力和連線速度。其作用是將訪問量較大的網頁內容和物件儲存在伺服器前端的專用cache裝置上,以此來提高**訪問的速度和質量。

cache:cache高速緩衝儲存器一種特殊的儲存器子系統,其中複製了頻繁使用的資料以利於快速訪問。儲存器的高速緩衝儲存器儲存了頻繁訪問的ram位置的內容及這些資料項的儲存位址。當處理器引用儲存器中的某位址時,高速緩衝儲存器便檢查是否存有該位址。如果存在該位址,則將資料返回處理器;如果沒有儲存該位址,則進行常規的儲存器訪問。因為高速緩衝儲存器總是比主ram儲存器速度快,所以當ram的訪問速度低於微處理器的速度時,常使用高速緩衝儲存器。

接下來是cdn的工作原理,最簡單的cdn網路由乙個dns伺服器和幾台快取伺服器組成,如下圖所示:

①當使用者點選**頁面上的內容url,經過本地dns系統解析,dns系統會最終將網域名稱的解析權交給cname指向的cdn專用dns伺服器。

②cdn的dns伺服器將cdn的全域性負載均衡裝置ip位址返回使用者。

③使用者向cdn的全域性負載均衡裝置發起內容url訪問請求。

④cdn全域性負載均衡裝置根據使用者ip位址,以及使用者請求的內容url,選擇一台使用者所屬區域的區域負載均衡裝置,告訴使用者向這台裝置發起請求。

⑤區域負載均衡裝置會為使用者選擇一台合適的快取伺服器提供服務,選擇的依據包括:根據使用者ip位址,判斷哪一台伺服器距使用者最近;根據使用者所請求的url中攜帶的內容名稱,判斷哪一台伺服器上有使用者所需內容;查詢各個伺服器當前的負載情況,判斷哪一台伺服器尚有服務能力。基於以上這些條件的綜合分析之後,區域負載均衡裝置會向全域性負載均衡裝置返回一台快取伺服器的ip位址。

⑥全域性負載均衡裝置把伺服器的ip位址返回給使用者。

⑦使用者向快取伺服器發起請求,快取伺服器響應使用者請求,將使用者所需內容傳送到使用者終端。如果這台快取伺服器上並沒有使用者想要的內容,而區域均衡裝置依然將它分配給了使用者,那麼這台伺服器就要向它的上一級快取伺服器請求內容,直至追溯到**的源伺服器將內容拉到本地。

看似複雜龐大的cdn系統,其中有幾個關鍵技術元件:排程、快取和安全。

1、排程是 cdn 中的重中之重,流量接入、流量牽引、選擇合適的 cdn 節點伺服器等工作,都是在排程環節完成的。具體排程的解釋,可以參考阿里雲高階技術專家白金撰寫的《cdn 之我見》系列一:原理篇(由來、排程)

3、 針對各類網路攻擊,比如頻寬飽和攻擊、反射攻擊等蠻力型攻擊,還有xss跨站、sql注入、漏洞利用等技巧型攻擊,cdn可以從隱藏源站、分布式架構、安全防護三個層面進行安全防護。首先,當**接入cdn後,源站資訊會被隔離,攻擊者就無法直接對源站進行直接攻擊,其次,cdn天然分布式架構可以當某些節點被攻擊的時候,很快察覺異常並智慧型排程至正常節點,確保業務穩定,再次,對於技巧性攻擊,在cdn邊緣節點前置安全防護能力,與中心聯動形成更完整、更貼近邊緣的防護策略,有利於安全隱患的攔截。

**或者應用中大量靜態資源的加速分發,如各型別、html、css、js檔案等,可以通過cdn快取到邊緣節點上,當使用者訪問即可就近獲取。**內容也存在相當一部分動態內容,比如電子商務、遊戲和企業應用類**,會存在很多如.aspx、.asp、.jsp、.php等為字尾的動態請求加速。通常快取對靜態內容支援得較好,而當面臨動態內容請求的時候,一般會回源,源站再將內容傳節點,進而傳給使用者,傳輸鏈路步驟增多,這勢必會影響傳輸質量與效率。所以針對動態內容,cdn也提出了新的加速方法,就是利用智慧型選路、傳輸協議優化等演算法尋找最快的傳輸路徑,自動躲避擁堵和不穩定線路,以此來提公升回源效率,實現動、靜混合**的加速效果保障。

CDN的使用場景

除了對 的加速以外,cdn還有其他一些重要的作用。1 實現跨運營商 跨地域的全網覆蓋 cdn最突出的優點之一便是可以將加速內容傳送給全球客戶。通過全球部署的cdn節點對訪問使用者進行就近分配,將使用者請求導向距離使用者最近的服務節點。2 保障 的安全 在您的 訪問流量過大或者受到ddos攻擊的時候,...

Mycat原理 應用場景

mycat的原理並不複雜,複雜的是 如果 也不複雜,那麼早就成為乙個傳說了。mycat的原理中最重要的乙個動詞是 攔截 它攔截了使用者傳送過來的sql語句,首先對sql語句做了一些特定的分析 如分 片分析 路由分析 讀寫分離分析 快取分析等,然後將此sql發往後端的真實資料庫,並將返回的結果做適當的...

Mycat原理 應用場景

mycat原理 mycat的原理並不複雜,複雜的是 如果 也不複雜,那麼早就成為乙個傳說了。mycat的原理中最重要的乙個動詞是 攔截 它攔截了使用者傳送過來的sql語句,首先對sql語句做了一些特定的分析 如分 片分析 路由分析 讀寫分離分析 快取分析等,然後將此sql發往後端的真實資料庫,並將返...