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