關于CDN,想必你一定看過很多官方的解釋。今天,CDN百科第七期,将用一篇3844字的文章,來帶你了解CDN的誕生、術語、原理、特征以及應用場景,看完這篇文章,相信你将會對CDN這項網際網路基礎設施有更加透徹的了解。
CDN的全稱是Content Delivery Network,即内容分發網絡。它是建構在現有網絡基礎之上的智能虛拟網絡,依靠部署在各地的邊緣伺服器,通過中心平台的負載均衡、内容分發、排程等功能子產品,使使用者就近擷取所需内容,降低網絡擁塞,提高使用者通路響應速度和命中率。
簡單來說,CDN就是為了網絡内容通路速度“更快“而生的。那麼如今的網絡本身四通八達,為什麼還需要CDN呢?
一、為什麼需要CDN?
舉個簡單的例子,假設我們忽略網絡傳輸的損耗、裝置延時,網絡傳輸速度接近光速,是30萬公裡每秒,從東京到美國矽谷的距離大概為1萬公裡,也就是說,如果你的伺服器在東京,你上傳了一張很小的圖檔,美國使用者通路至少需要60毫秒。而且,這隻是理論資料,現實世界中,網絡環境是十分複雜的,跨地域、跨營運商、網絡擁塞、抖動等問題,都會積少成多,使得延時成倍增加,還有可能通路失敗,最終影響通路體驗。
CDN的出現,正是為了解決這個問題。我們将這張圖檔分發并緩存在美國的CDN節點之上,美國使用者就無需從東京擷取資料,直接從就近的美國本地CDN節點擷取到圖檔,這大大節省了傳輸時間,提升通路效率。CDN的節點通常會遍布全球,源站的檔案會被被緩存到世界各地,這樣全球使用者都可以實作快速通路。
它有點像分布于各地的倉儲物流點,很多品牌會預先在倉儲物流點儲備一些爆款商品(靜态檔案使用CDN進行緩存),當使用者從電商平台下單購買貨物的時候(使用者發起請求),平台根據使用者的收獲位址就近比對到最近的倉儲物流點并直接進行派貨(就近分發),讓使用者以最快的速度拿到快遞包裹(分發的内容)。我們可以用實際的生活經驗來做個對比,如果從江浙滬包郵區寄給杭州的使用者,一般第二天就能到,如果是從北京、深圳發貨,一般需要2-3天!

這就是CDN的緣起。簡單來說,它就是一個分布式的緩存伺服器,主要作用就是盡可能減少資源在轉發、傳輸、鍊路抖動等情況下的時延,保障資訊的連貫與極速。當下,我們生活在網際網路世界,視訊和直播在資料上有巨大的吞吐量,CDN扮演着護航者和加速者的角色,更快速、穩定地将資訊觸達每一個使用者。
二、CDN的工作原理
下面,我們來進一步了解下CDN的工作原理。首先,關于CDN的那些名詞,需要掃個盲
Origin Server源站:做 CDN 之前的客戶真正的伺服器。
User:通路者,也就是要通路網站的網民。
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的關鍵技術元件
看似複雜龐大的CDN系統,其中有幾個關鍵技術元件:排程、緩存和安全。
1、 排程是 CDN 中的重中之重,流量接入、流量牽引、選擇合适的 CDN 節點伺服器等工作,都是在排程環節完成的。具體排程的解釋,
可以參考阿裡雲進階技術專家白金撰寫的《CDN 之我見》系列一:原理篇(由來、排程)2、 緩存也叫 Cache,是 CDN 領域最重要的一個組成部分,對于靜态内容分發,大至視訊點播、檔案下載下傳,小至 html 頁面、jpg/gif/png 圖檔、css/js 等,都可以緩存到本地,最終使用者(網民)通路時,不必回到原始伺服器拿取資料,進而節省了時間、降低了源站伺服器的網絡帶寬支出和負載。對于 CDN 來說,每台 Cache 機器每天的請求量是十分驚人的,磁盤上所存儲的内容量也多得可怕,十幾塊 TB 級的硬碟被塞滿資料也是很正常的事情,是以當一個請求到來時,能迅速檢索出磁盤上的檔案并讀取、吐給最終使用者成了一件很重要的事情。具體的緩存,
可以參考阿裡雲進階技術專家白金撰寫的《CDN 之我見》系列二:原理篇(緩存、安全)3、 針對各類網絡攻擊,比如帶寬飽和攻擊、反射攻擊等蠻力型攻擊,還有XSS跨站、SQL注入、漏洞利用等技巧型攻擊,CDN可以從隐藏源站、分布式架構、安全防護三個層面進行安全防護。首先,當網站接入CDN後,源站資訊會被隔離,攻擊者就無法直接對源站進行直接攻擊,其次,CDN天然分布式架構可以當某些節點被攻擊的時候,很快察覺異常并智能排程至正常節點,確定業務穩定,再次,對于技巧性攻擊,在CDN邊緣節點前置安全防護能力,與中心關聯形成更完整、更貼近邊緣的防護政策,有利于安全隐患的攔截。
四、CDN可以應用在哪些場景?
1、網站與應用加速
網站或者應用中大量靜态資源的加速分發,如各類型圖檔、html、css、js檔案等,可以通過CDN緩存到邊緣節點上,當使用者通路即可就近擷取。網站内容也存在相當一部分動态内容,比如電子商務、遊戲和企業應用類網站,會存在很多如.aspx、.asp、.jsp、.php等為字尾的動态請求加速。通常緩存對靜态内容支援得較好,而當面臨動态内容請求的時候,一般會回源,源站再将内容傳節點,進而傳給使用者,傳輸鍊路步驟增多,這勢必會影響傳輸品質與效率。是以針對動态内容,CDN也提出了新的加速方法,就是利用智能選路、傳輸協定優化等算法尋找最快的傳輸路徑,自動躲避擁堵和不穩定線路,以此來提升回源效率,實作動、靜混合網站的加速效果保障。
2、視訊、大檔案下載下傳分發加速
CDN可以針對各類檔案、線上點播視訊提供下載下傳、分發加速,比如mp4、flv視訊檔案或者單個檔案大小在20M以上的安裝包等檔案,CDN可以搭配對象存儲OSS使用,提升回源速度,節約近2/3回源帶寬成本。
3、直播加速
在體育或者遊戲賽事直播中,通常成千上萬的使用者瞬間湧入,直播平台要承擔高并發通路,一旦帶寬不足,使用者的觀看就會産生卡頓、延時、評論刷不出來、連麥不成功,甚至最後直播直接癱瘓,使用者無法觀看。CDN結合彈性伸縮服務,及時調整伺服器帶寬,應對突發通路流量。可以為直播分發提供流暢的播放下行鍊路,借助負載均衡系統将将主播端采集的音視訊資料推送到接近使用者的數千個邊緣節點,當觀衆端發起請求,就可以就近取得資源,減少網絡抖動風險,增加直播鍊路穩定性和流暢性。
4、移動應用加速
CDN可以為移動APP更新檔案(apk檔案)分發,移動APP内圖檔、頁面、短視訊、UGC等内容的優化提供加速分發效果。提供httpDNS服務,避免DNS劫持并獲得實時精确的DNS解析結果,有效縮短使用者通路時間,提升使用者體驗。
**阿裡雲CDN全民加速節活動火熱啟動,爆款産品限時優惠,還有9850元的代金券免費領取,感興趣的使用者可以
點選直達活動頁面了解詳情!!**
在全民加速節期間,阿裡雲CDN也推出系列直播課程,包括《CDN最全省心選購指南》、《CDN快速上手指南》、《CDN産品與技術揭秘》、《CDN四大場景最佳實踐》等,希望通過分享積累多年的經驗、飽經實戰檢驗的解決方案和最佳實踐,來幫助使用者解決使用CDN過程中最受關注的問題,歡迎大家在全民加速節活動頁面預約觀看!