蔣 杰
(咪咕視訊科技有限公司,上海 201206)
在收看互聯(lián)網(wǎng)視頻節(jié)目的過程中,終端用戶都或多或少地遇到過播放等待、視頻卡頓等現(xiàn)象,根本原因是視頻內(nèi)容無法及時(shí)和完整下載至本地播放器所致。目前解決上述問題的技術(shù)手段是:分布式內(nèi)容分發(fā)網(wǎng)(CDN,Content Delivery Network)。[1]
CDN的基本技術(shù)原理是在IP承載網(wǎng)的不同網(wǎng)絡(luò)位置設(shè)置服務(wù)節(jié)點(diǎn),負(fù)責(zé)緩存內(nèi)容資源并為最終用戶提供資源服務(wù)。CDN通過將服務(wù)能力向終端用戶下移,同時(shí)將滿足用戶需求復(fù)用率最高的資源預(yù)先緩存至服務(wù)節(jié)點(diǎn),從而使用戶請(qǐng)求服務(wù)時(shí)可避免內(nèi)容源服務(wù)的負(fù)荷超載和終端-服務(wù)端的不合理訪問路徑。
1.1.1 基于PULL的內(nèi)容資源分發(fā)機(jī)制
基于PULL的內(nèi)容資源分發(fā)機(jī)制是被動(dòng)型資源分發(fā)機(jī)制[2],CDN對(duì)內(nèi)容資源的獲取目標(biāo)和獲取時(shí)間都是被動(dòng)根據(jù)用戶的請(qǐng)求而確定。如圖1所示。
圖1 基于PULL的內(nèi)容資源分發(fā)機(jī)制功能流程
其流程如下:用戶終端訪問互聯(lián)網(wǎng)業(yè)務(wù)時(shí),由CDN調(diào)度節(jié)點(diǎn)根據(jù)用戶網(wǎng)絡(luò)位置,綜合分析調(diào)度規(guī)則后計(jì)算出特定CDN服務(wù)節(jié)點(diǎn),并告知用戶終端服務(wù)器位置;由于CDN服務(wù)節(jié)點(diǎn)被設(shè)置為基于PULL 的內(nèi)容資源分發(fā)機(jī)制,故服務(wù)節(jié)點(diǎn)無預(yù)存對(duì)應(yīng)內(nèi)容資源,需向內(nèi)容資源原始存放的服務(wù)節(jié)點(diǎn)發(fā)起資源獲取的PULL請(qǐng)求;內(nèi)容資源源節(jié)點(diǎn)響應(yīng)CDN服務(wù)節(jié)點(diǎn)的回源請(qǐng)求后,提供對(duì)應(yīng)內(nèi)容資源;CDN服務(wù)節(jié)點(diǎn)獲取內(nèi)容資源后,為用戶提供服務(wù)。
1.1.2 基于PUSH的內(nèi)容資源分發(fā)機(jī)制
基于PUSH的內(nèi)容資源分發(fā)機(jī)制是主動(dòng)型資源分發(fā)機(jī)制[2],這里的主動(dòng)包括兩個(gè)層面:內(nèi)容資源的主動(dòng)預(yù)分發(fā);用戶請(qǐng)求、CDN服務(wù)節(jié)點(diǎn)和內(nèi)容資源實(shí)現(xiàn)主動(dòng)匹配。如圖2所示。
通過特定的業(yè)務(wù)模型選定內(nèi)容資源和CDN服務(wù)節(jié)點(diǎn),并完成該內(nèi)容資源的主動(dòng)預(yù)分發(fā);CDN調(diào)度節(jié)點(diǎn)根據(jù)用戶服務(wù)請(qǐng)求,綜合分析內(nèi)容資源分布情況和調(diào)度規(guī)則,主動(dòng)匹配出包含所需內(nèi)容資源的特定CDN服務(wù)節(jié)點(diǎn)為用戶提供服務(wù)。其流程如下:內(nèi)容資源源始節(jié)點(diǎn)根據(jù)業(yè)務(wù)模型,例如資源熱度期望模型、資源熱度趨勢模型和資源受眾預(yù)測模型等選定內(nèi)容資源和CDN服務(wù)節(jié)點(diǎn)進(jìn)行預(yù)先分發(fā);用戶終端訪問互聯(lián)網(wǎng)業(yè)務(wù)時(shí),由CDN調(diào)度節(jié)點(diǎn)根據(jù)用戶網(wǎng)絡(luò)位置和服務(wù)請(qǐng)求,綜合分析內(nèi)容資源分布情況和調(diào)度規(guī)則,計(jì)算出特定CDN服務(wù)節(jié)點(diǎn),并告知用戶終端服務(wù)器位置;CDN服務(wù)節(jié)點(diǎn)匹配本地緩存資源后,為用戶提供服務(wù)。
圖2 基于PUSH的內(nèi)容資源分發(fā)機(jī)制功能流程
圖3 CDN典型業(yè)務(wù)流程時(shí)序圖
如圖3所示,終端訪問門戶頁面請(qǐng)求視頻資源,門戶根據(jù)請(qǐng)求內(nèi)容生成CDN服務(wù)URL,并告知終端;終端使用CDN服務(wù)URL向CDN調(diào)度節(jié)點(diǎn)查詢。CDN調(diào)度節(jié)點(diǎn)根據(jù)終端網(wǎng)絡(luò)信息、請(qǐng)求資源信息和CDN節(jié)點(diǎn)狀態(tài)信息等數(shù)據(jù),確定為該終端服務(wù)的最佳CDN節(jié)點(diǎn),并將該節(jié)點(diǎn)位置信息作為調(diào)度結(jié)果告知終端;終端根據(jù)調(diào)度結(jié)果向目標(biāo)CDN服務(wù)節(jié)點(diǎn)發(fā)起視頻資源播放請(qǐng)求;CDN服務(wù)節(jié)點(diǎn)根據(jù)終端請(qǐng)求匹配本地緩存的內(nèi)容資源文件。如本地匹配成功,說明該內(nèi)容資源已緩存,則直接為終端提供相應(yīng)的資源文件;如本地匹配失敗,說明該內(nèi)容資源未緩存,則向預(yù)定的內(nèi)容資源源站請(qǐng)求相應(yīng)的資源文件。待內(nèi)容資源源站成功返回資源文件后,CDN服務(wù)節(jié)點(diǎn)再將該資源文件向終端提供。
CDN技術(shù)提供的就近服務(wù)能力,可極大縮減互聯(lián)網(wǎng)視頻請(qǐng)求端與視頻服務(wù)端的網(wǎng)絡(luò)路徑長度,規(guī)避視頻大流量數(shù)據(jù)傳輸所可能遇到的傳輸質(zhì)量劣化環(huán)。
完整的請(qǐng)求重定向技術(shù)涉及“定向策略判斷” 和“重定向生效”兩個(gè)環(huán)節(jié)。定向策略判斷主要以各類可評(píng)判服務(wù)端和請(qǐng)求端之間訪問交互質(zhì)量優(yōu)劣的客觀條件算法為主。常用算法模型有網(wǎng)絡(luò)就近性判斷、資源命中性判斷和服務(wù)可用性判斷等,以及多個(gè)算法組合評(píng)定。但最常用的還是網(wǎng)絡(luò)就近性判斷,可最大限度規(guī)避跨省、跨運(yùn)營商導(dǎo)致的網(wǎng)絡(luò)質(zhì)量劣化,同時(shí)匹配結(jié)果的可預(yù)測性較理想。重定向生效就是將“定向策略判斷”的結(jié)果實(shí)施生效,將終端請(qǐng)求導(dǎo)向至目標(biāo)的服務(wù)節(jié)點(diǎn),主要有“基于DNS位置判斷重定向”和“基于IP位置判斷重定向”兩種技術(shù)。
2.1.1 基于DNS位置判斷重定向
圖4 基于DNS位置判斷重定向流程圖
涉及路由調(diào)度的域名會(huì)配置在支持智能調(diào)度的權(quán)威名稱DNS中,本地LDNS會(huì)通過遞歸的方式將域名的解析請(qǐng)求轉(zhuǎn)發(fā)至權(quán)威名稱DNS(圖4中②)。權(quán)威名稱DNS根據(jù)調(diào)度策略已預(yù)配置多條ACNAME解析記錄,可根據(jù)LDNS的網(wǎng)絡(luò)位置,按匹配邏輯對(duì)應(yīng)至某條解析記錄(圖4中③)。
2.1.2 基于IP位置判定重定向
圖5 基于IP位置判斷重定向流程圖
圖5 中,當(dāng)用戶終端的互聯(lián)網(wǎng)視頻播放地址訪問域名為video.4k.cn時(shí),該域名會(huì)默認(rèn)指向GSLB。GSLB首先會(huì)通過TCP/IP連接信息獲得請(qǐng)求終端的IP,并在靜態(tài)最近調(diào)度列表中查找該IP所屬的網(wǎng)段是否存在。如存在數(shù)據(jù)緩存,則該次請(qǐng)求即被快速判斷出對(duì)應(yīng)策略的CDN服務(wù)節(jié)點(diǎn)IP,并返回給客戶端。如沒有緩存記錄,則GSLB會(huì)通過動(dòng)態(tài)查詢的方式,按預(yù)設(shè)策略算法計(jì)算出一個(gè)CDN服務(wù)節(jié)點(diǎn)IP,并返回給客戶端。返回方式就是http 302機(jī)制。請(qǐng)求客戶端會(huì)將識(shí)別302反饋結(jié)果,并以反饋IP為目標(biāo)重新發(fā)起訪問請(qǐng)求。通過GSLB的智能判斷和302機(jī)制,就可實(shí)現(xiàn)不同地區(qū)+運(yùn)營商的終端請(qǐng)求訪問至網(wǎng)絡(luò)距離最近的服務(wù)節(jié)點(diǎn)。
2.1.3 重定向技術(shù)的總結(jié)
基于DNS位置的重定向機(jī)制應(yīng)用最廣泛,主要是其使用簡單,公共資源、商業(yè)化服務(wù)也比較成熟。而對(duì)于業(yè)務(wù)定制性要求強(qiáng)的的應(yīng)用場景,基于IP位置的重定向機(jī)制就是不可或缺了。特別是現(xiàn)在一些運(yùn)營商的流量計(jì)費(fèi)政策是通過流量網(wǎng)關(guān)按域名對(duì)應(yīng)不同流量池,部分互聯(lián)網(wǎng)視頻服務(wù)提供商就會(huì)利用GSLB 的302跳轉(zhuǎn)機(jī)制,將不同等級(jí)的用戶請(qǐng)求替換為不同的域名,實(shí)現(xiàn)諸如視頻流量定向減免的營銷政策。
2.2.1 負(fù)載均衡技術(shù)原理
由于CDN節(jié)點(diǎn)一般是服務(wù)器集群。為獲得綜合性能最優(yōu),就需要應(yīng)用負(fù)載均衡技術(shù)避免單臺(tái)服務(wù)器超負(fù)荷引發(fā)故障,而其他服務(wù)器則相對(duì)空閑的情況。因?yàn)閱闻_(tái)服務(wù)器在處理高負(fù)荷的運(yùn)算任務(wù)時(shí)會(huì)在處理能力、吞吐能力等方面形成嚴(yán)重的性能瓶頸。在這種情況下,CDN服務(wù)器集群通過負(fù)載均衡技術(shù)就是解決相關(guān)問題的有效手段。
2.2.2 負(fù)載均衡技術(shù)的實(shí)現(xiàn)方式
目前,有許多不同的負(fù)載均衡技術(shù)用以滿足不同的應(yīng)用需求,如以軟為主/硬件為主的負(fù)載均衡實(shí)現(xiàn)方式。軟件負(fù)載均衡解決方案,是指在一臺(tái)或多臺(tái)服務(wù)器相應(yīng)的操作系統(tǒng)上,安裝一個(gè)或多個(gè)附加軟件來實(shí)現(xiàn)負(fù)載均衡,如LVS負(fù)載均衡等。硬件負(fù)載均衡解決方案,是直接在服務(wù)器和外部網(wǎng)絡(luò)間安裝負(fù)載均衡設(shè)備,這種設(shè)備通常被稱為負(fù)載均衡器。一般而言,硬件負(fù)載均衡在功能、性能上優(yōu)于軟件方式,不過成本昂貴。
本文認(rèn)為,在網(wǎng)絡(luò)帶寬仍不充裕的情況下,為了實(shí)現(xiàn)網(wǎng)絡(luò)視頻的流暢播放,需要借助CDN機(jī)制的端到端資源加速服務(wù),主動(dòng)規(guī)避傳輸網(wǎng)絡(luò)中存在的不利因素,降低對(duì)傳輸網(wǎng)絡(luò)的客觀條件依賴性。■