為了幫助使用者更好地了解和使用CDN産品,CDN應用實踐進階系統課程開課啦!前幾天,阿裡雲CDN産品專家陳智城線上分享了《大檔案下載下傳及視訊點播的CDN加速實踐》議題,解讀大檔案下載下傳和視訊點播的業務場景、内容分發挑戰及對應解決方案。本篇文章,将為你詳述分享原文。

關注阿裡雲邊緣計算和CDN官方賬号:阿裡雲Edge Plus ,免費獲得講師課件PPT
一、大檔案下載下傳和視訊點播的内容分發挑戰
對于下載下傳類的場景來說,常見細分場景包括:手機應用商店、遊戲應用商店以及遊戲更新和手機作業系統更新等,而對于視訊類的應用場景來說,主要細分場景包括短視訊、長視訊、線上教育、OTT機頂盒、廣電傳媒和音樂網站等等。
為什麼會把下載下傳類的應用場景和視訊點播類應用場景放在一起去做比對呢?因為視訊點播這個應用場景實際上也是一種大檔案下載下傳場景,這兩個應用場景有着很高的業務相似性,也有很多共性問題,而它們之間的差別在于視訊點播對于通路的性能會有更高的要求。
兩個場景在内容分發方面所面臨的挑戰主要有三大類:
- 使用者體驗問題,主要展現在:國内營運商環境複雜,跨營運商通路效果差;使用者分布廣,跨地區通路時延高、速度慢;弱網環境下傳輸性能差,速度慢、卡頓嚴重等方面;
- 源站性能與成本問題,主要展現在:中心式部署的源站彈性擴充能力差,無法承受大規模突發流量以及中心式部署的源站帶寬成本高昂;
- 業務安全問題,主要展現在:時刻面臨着DNS劫持(例如被劫持了頁面内容,被嵌入了頁面廣告等)、資源盜鍊(源站面臨帶寬成本上的損失)等安全威脅。
二、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