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地址之間是一一對應的,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析服務器來完成,整個過程是自動進行的。比如:上網時輸入的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過程中最受關注的問題,歡迎大家在全民加速節活動頁面預約觀看!
原文鏈接:https://developer.aliyun.com/article/768621?
版權聲明:本文中所有內容均屬于阿里云開發者社區所有,任何媒體、網站或個人未經阿里云開發者社區協議授權不得轉載、鏈接、轉貼或以其他方式復制發布/發表。申請授權請郵件developerteam@list.alibaba-inc.com,已獲得阿里云開發者社區協議授權的媒體、網站,在轉載使用時必須注明"稿件來源:阿里云開發者社區,原文作者姓名",違者本社區將依法追究責任。 如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至:developer2020@service.aliyun.com 進行舉報,并提供相關證據,一經查實,本社區將立刻刪除涉嫌侵權內容。總結
以上是生活随笔為你收集整理的CDN百科第七期 | 关于CDN的原理、术语和应用场景那些事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文总结:分布式一致性技术是如何演进的?
- 下一篇: 阿里云交通数据中台解决方案,打造“数字化