大文件下载及视频点播的CDN加速实践
為了幫助用戶更好地了解和使用CDN產品,CDN應用實踐進階系統課程開課啦!前幾天,阿里云CDN產品專家陳智城在線分享了《大文件下載及視頻點播的CDN加速實踐》議題,解讀大文件下載和視頻點播的業務場景、內容分發挑戰及對應解決方案。本篇文章,將為你詳述分享原文。
關注阿里云邊緣計算和CDN官方賬號:阿里云Edge Plus ,免費獲得講師課件PPT
一、大文件下載和視頻點播的內容分發挑戰
對于下載類的場景來說,常見細分場景包括:手機應用商店、游戲應用商店以及游戲更新和手機操作系統更新等,而對于視頻類的應用場景來說,主要細分場景包括短視頻、長視頻、在線教育、OTT機頂盒、廣電傳媒和音樂網站等等。
為什么會把下載類的應用場景和視頻點播類應用場景放在一起去做比對呢?因為視頻點播這個應用場景實際上也是一種大文件下載場景,這兩個應用場景有著很高的業務相似性,也有很多共性問題,而它們之間的區別在于視頻點播對于訪問的性能會有更高的要求。
兩個場景在內容分發方面所面臨的挑戰主要有三大類:
二、CDN內容分發網絡架構
當下,CDN已經是成為了緩解網絡擁塞、提高業務響應速度、提升用戶體驗的一種非常重要的技術手段,也是互聯網基礎設施當中不可或缺的重要組成部分。下面我們通過阿里云CDN的內容分發網絡架構來說明典型的CDN內容分發網絡都包含哪些組成部分:
(1)調度系統
用戶的終端會發起各種應用訪問,比如:點播和下載這兩個應用場景。用戶的訪問請求會首先去做域名DNS解析,然后用戶的域名DNS解析請求將會通過阿里云CDN的調度系統去處理;
(2)鏈路質量系統
鏈路質量探測系統的作用是去實時地監測緩存系統中的每一個節點和鏈路的實時負載和健康狀況,然后反饋給調度系統,調度系統會根據用戶請求中攜帶的IP地址信息去解析用戶的運營商和區域歸屬,然后綜合鏈路質量信息為用戶分配一個最佳的接入節點;
(3)緩存系統
用戶收到最佳接入節點的IP以后,就會去訪問這個緩存節點,節點如果已經緩存了用戶請求的資源,那么就將會直接將資源返回給用戶;如果L1節點沒有命中,會上溯到L2節點,如果L2節點也沒有緩存資源,才會返回源站去拉取這個資源;某個資源首次拉取后將會在緩存系統中緩存下來,這樣如果后續用戶訪問到同一個資源,就可直接從緩存系統去拉取資源,避免重復回源;通過分級緩存的這種部署架構可以達到提高內容分發效率、降低回源帶寬以及提升用戶體驗的效果;
(4)支撐服務系統
阿里云CDN在內容分發之外也提供了支撐服務系統。第一是具備資源監測能力,可以對緩存系統上客戶業務運行的狀態進行監測,比如對CDN加速域名的QPS、帶寬、http狀態碼等常見指標實現監控。第二是數據分析,用戶可以分析CDN加速域名的TOP URL、PV、UV等數據。第三是配置管理系統,用戶通過該系統可以下發如緩存文件類型、緩存時間、去參數緩存等緩存規則,以提升緩存系統的運作效率。
三、 CDN如何解決互聯網內容分發所面臨的問題?
下面,從用戶體驗、源站性能與成本以及業務安全這三個方面來看看CDN是如何解決問題的。
第一,用戶體驗問題
首先,CDN可以為用戶提供諸多的就近接入的節點。
阿里云CDN建立了一張覆蓋全球六大洲70多個國家的2800多個的節點,全網具備了130Tbps的帶寬輸出能力,基本上覆蓋了國內以及做海外的主要運營商。依托豐富的資源節點覆蓋,阿里云CDN能夠讓用戶就近接入同運營商節點,解決跨運營商互聯互通、遠距離訪問時延大等用戶體驗問題。
其次,提升用戶體驗的第二點是需要提供精準的調度能力,阿里云CDN在這里是提供了4項關鍵的優化措施:
1、持續更新的精準IP數據庫:IP數據庫的作用是在用戶的DNS解析請求轉發到了CDN調度系統時,調度系統會判斷用戶的地區和運營商歸屬,以此來為用戶分配就近接入的同運營商CDN節點。為了確保IP數據庫的數據處于最新的狀態,數據庫一直在持續地更新。
2、提供HTTPDNS服務(需要客戶端兼容):采用HTTPDNS這項技術使得用戶終端可以繞開運營商的local DNS,直接采用HTTP協議去訪問調度系統,請求所需要訪問的域名的最優接入節點,這樣可以避免DNS劫持所帶來的業務安全問題。
3、節點數據分析:CDN調度系統通過鏈路狀態系統去實時地分析整個緩存系統中的所有節點和鏈路的健康狀況,為用戶選擇最優的接入節點,避免因為接入節點質量不佳而影響到用戶訪問體驗。
4、基于內容調度,提高訪問命中率:在大文件下載和視頻點播這兩個應用場景上經常使用302調度這種基于內容的調度技術,302調度是一種中心調度方案,用戶在請求某一個資源的時候,在完成域名DNS解析之后,用戶請求將會先訪問到中心調度系統上,然后中心調度系統將會解析用戶請求需要訪問的內容,再通過302重定向的方式為用戶分配最佳接入節點。
通過采用以上4項優化措施,能夠為用戶提供更加精準的調度能力,從而讓用戶能夠接入最佳的CDN節點。
CDN常見的三種調度方案簡單對比如下圖所示:
這里簡單說明下這三種常見的CDN調度方式的優缺點:
(1)DNS調度是最常用和最通用的調度方案,缺點是存在DNS劫持的風險,調度的精確度也會差一些;
(2)302調度非常適合用在大文件下載和視頻點播這兩個應用場景,優點是可以提高調度的精確度,缺點是將會增加首包的時延(在大文件下載和視頻點播場景下對首包時延不太敏感,而對調度精確度要求更高)
(3)HTTPDNS調度的優點是有較高的安全性(可以規避DNS劫持風險)和調度精確度,但是有個很大的缺點,需要客戶端提供支持(例如在手機APP上嵌入SDK),通用性較差。
再次,提升用戶體驗的第三個優化點是對傳輸鏈路做智能優化
1、協議優化:通過調整擁塞算法、丟包探測算法等優化措施,對TCP協議棧的性能做了大幅度提升,尤其對弱網環境下的網絡性能提升明顯;
以下兩張帶寬利用率對比圖,左邊是標準TCP傳輸協議,在建立TCP連接之后,需要通過相對更長的時間去提升帶寬利用率,一旦碰到丟包情況,帶寬利用率會快速下跌,并且需要經歷慢速爬坡階段才能夠逐步提升帶寬利用率,尤其在弱網環境下,使用標準TCP協議的情況下,帶寬利用率的下降會非常的嚴重。右側是阿里云優化后的TCP協議,通過快速啟動、主動擁塞探測和快速丟包恢復等技術優化措施,能夠提供更高的帶寬利用率,即使在網絡條件相對差一些的情況下,也可以有比較好的優化效果。
2、連接加速:通過修改協議棧的 Handshake Timer 來實現快速重試,以彌補由于丟包導致的重試超時;
3、持久連接:在CDN節點間預先建立好 TCP 連接,并長時間保持不斷開,這樣在有新連接過來的時候就可以直接復用,減少TCP握手時延。
第二,源站性能、成本壓力問題
通過提高緩存系統的效率幫助客戶降低源站的性能和成本壓力,主要包括六個方面的技術措施:
1、分布式部署:確保用戶能夠就近訪問同運營商的節點,以此來提高訪問速度,解決跨運營商訪問慢、長距離回源時延高等問題;
2、多級緩存架構:多級緩存架構中的每一級都能夠用來緩存用戶請求的資源,多級回源收斂之后可以極大地降低回源流量;
3、內容預取:通過內容預取技術提前把源站的內容預取到CDN節點上,減少回源量和提高緩存命中率;
4、合并回源:配置若干個域名的回源請求與某一個域名(業務相同的情況下)相合并,以減少重復回源的流量;
5、去參數緩存:設置hashkey(緩存key)時,配置去掉資源URL后面的參數,以不帶參數的URI作為緩存key,以提高緩存命中率;
6、流量控制:提供精細化的流量控制能力,支持單請求流控和全網流控,支持邊緣流控和回源流控,能夠有效降低客戶成本。
下圖中標記的序號代表了以上6個技術措施在CDN緩存系統上的作用位置:
這些技術措施綜合起來可以幫助客戶去有效地減少回源帶寬、提升緩存命中率,從而降低源站的帶寬壓力、降低源站的帶寬成本。
第三,業務安全風險問題
阿里云CDN通過可靠的安全防護措施,去幫助用戶規避業務上的安全風險。
1、防盜鏈:可以選擇使用Referer、UA、URL、IP等通用鑒權方式,也可以用EdgeScript來定制鑒權規則,支持邊緣鑒權和中心鑒權,通過嚴格校驗用戶的資源訪問請求來防止源站資源被盜用;
2、DNS防劫持:HTTPDNS技術使用HTTP協議訪問阿里云的服務端,獲得域名解析結果,可以繞過運營商的Local DNS,避免域名DNS劫持;
3、HTTPS傳輸加密:支持采用TLS協議來加密HTTP協議內容,防止明文數據暴露在互聯網上,并且可以設置TLSv1.3、HSTS等高級功能。
最后,我們再整體回顧一下,阿里云CDN在大文件下載和視頻點播這兩大應用場景下提供了哪些的核心能力:
1、豐富的資源節點:能夠為用戶提供就近接入的同運營商CDN節點,解決長距離接入和跨運營商訪問帶來的延遲高和速度慢的問題
2、精準的調度系統:能夠實時地獲取CDN節點的健康狀況,并根據用戶的所在位置和運營商來分配最合適的接入節點,以便取得最佳接入效果
3、智能的傳輸鏈路:通過協議優化、連接優化等措施來降低總體時延、提高傳輸速度,尤其是提高弱網環境下的傳輸速度
4、高效的緩存策略:高效的緩存策略能夠帶來更高的用戶命中率(命中就近節點上的緩存資源),從而提供更高的訪問速度
5、可靠的安全防護:可靠的安全防護措施能夠對用戶的資源訪問請求做嚴格的校驗和加密,保護用戶的資源和業務安全
如果對阿里云CDN產品應用進階感興趣,可以登錄專題頁面,了解在線教育、音視頻、安全防護、游戲等其他場景下的最佳實踐,聽產品技術專家在線授課,解答疑惑:https://yqh.aliyun.com/live/cdn_industry
直播預告
CDN直播場場精彩
1月6日14:00,CDN開年巨獻
阿里云CDN年度產品升級發布會
🔥 火熱開播🔥
點擊直達發布間:https://yqh.aliyun.com/live/cdn_0106
原文鏈接:https://developer.aliyun.com/article/780846?
版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。總結
以上是生活随笔為你收集整理的大文件下载及视频点播的CDN加速实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业级BI分析解决方案,解决数据应用难题
- 下一篇: 程序员看过来:阿里毕玄提升代码能力的4段