CDN百科第七期 | 關於CDN的原理、術語和應用場景那些事
關於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地址之間是一一對應的,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析伺服器來完成,整個過程是自動進行的。比如:上網時輸入的會自動轉換成為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過程中最受關注的問題,歡迎大家在全民加速節活動頁面預約觀看!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490631/viewspace-2706733/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CDN雲課堂 |可程式設計CDN – EdgeScript應用場景、語言速覽和實操演示程式設計
- CDN適用哪些場景?
- CDN 訪問控制的那些事
- CDN網路加速適合那些場景使用?
- 什麼是CDN?CDN的技術原理是什麼?
- 什麼是CDN?CDN的原理和作用是什麼?
- CDN和CDN加速有什麼關聯
- CDN和CDN加速
- 智慧CDN(中):CDN的系統構成和核心技術
- 影片CDN的技術原理是什麼?
- CDN百科 | 你的APP崩過嗎?APP
- CDN百科第五講 | CDN和遊戲加速器有什麼區別?遊戲
- 智慧CDN(上):CDN的訪問過程和加速原理
- CDN百科 | 假如沒有CDN,網路世界會變成什麼樣?
- CDN相關知識及CDN繞過
- 【Linux分享】什麼是CDN?CDN加速的原理是什麼?Linux
- 一文帶你搞懂 CDN 的技術原理
- CDN百科第八期 | 我的網站到底需不需要CDN加速?網站
- 關於人工智慧技術應用場景的個人見解人工智慧
- 關於區塊鏈技術應用於版權領域的場景分析區塊鏈
- CDN百科第三講 | 如果用了雲伺服器,還需要做CDN加速嗎?伺服器
- CDN技術發展
- 關於Cookie的那些事Cookie
- CDN應用進階 | 正確使用CDN 讓你更好規避安全風險
- CDN運作的基本原理
- 語音識別技術有哪些應用場景?
- Web前端效能優化_CDN(內容釋出網路)、CDN工作原理Web前端優化
- 關於Rollup那些事
- 恆訊科技講解:CDN的原理技術及使用方法
- 我對CDN以及CDN加速的認識
- ZooKeeper核心原理及應用場景
- 堆排序原理及其應用場景排序
- 什麼是cdn技術
- 關於moment打包的那些事
- 關於 sudo 的那些事兒
- 那些年關於HTTPS的事HTTP
- Linux 防火牆:關於 iptables 和 firewalld 的那些事Linux防火牆
- 關於line-height和元素高度的那些事