李良一
摘 要 隨著中國(guó)互聯(lián)網(wǎng)行業(yè)的飛速發(fā)展,全球移動(dòng)運(yùn)營(yíng)商大多面臨網(wǎng)內(nèi)資源匱乏,網(wǎng)間結(jié)算費(fèi)用高的問(wèn)題。建設(shè)IDC,引入部分CP廠家,建設(shè)內(nèi)容網(wǎng)絡(luò)和Cache系統(tǒng)都是解決問(wèn)題的思路。
關(guān)鍵詞 互聯(lián)網(wǎng);Cache;HTTP;302重定向
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展及網(wǎng)絡(luò)應(yīng)用的日益廣泛,網(wǎng)絡(luò)流量爆炸式增長(zhǎng),在線視頻、P2P流量等占據(jù)互聯(lián)網(wǎng)流量的60%~80%?,F(xiàn)有和未來(lái)可預(yù)見(jiàn)增長(zhǎng)的帶寬已不能滿足大流量、持續(xù)占用帶寬的應(yīng)用。數(shù)據(jù)傳輸延遲、網(wǎng)絡(luò)擁塞等諸多問(wèn)題導(dǎo)致用戶體驗(yàn)降低。傳統(tǒng)的解決方案存在著各種局限性,例如,骨干網(wǎng)帶寬擴(kuò)容會(huì)減少運(yùn)營(yíng)商投資收益,封堵限速又會(huì)影響用戶上網(wǎng)體驗(yàn)。Cache成為各運(yùn)營(yíng)商對(duì)內(nèi)容資源補(bǔ)足的一種常規(guī)技術(shù)手段[1]。
Cache通過(guò)分析和研究,采用先進(jìn)的被動(dòng)緩存技術(shù),通過(guò)將大量占據(jù)出口帶寬、相同的網(wǎng)絡(luò)資源進(jìn)行本地化緩存,對(duì)P2P文件傳輸、HTTP文件下載、Web頁(yè)面瀏覽以及在線視頻播放等各種應(yīng)用實(shí)現(xiàn)網(wǎng)內(nèi)緩存加速。在不影響用戶體驗(yàn)的情況下,降低出口流量,減少網(wǎng)間結(jié)算費(fèi)用,節(jié)省運(yùn)營(yíng)商投資成本和運(yùn)營(yíng)成本,提高用戶上網(wǎng)體驗(yàn)。
Cache系統(tǒng)通過(guò)HTTP重定向引導(dǎo)機(jī)制應(yīng)采用非代理處理方式。邊緣服務(wù)節(jié)點(diǎn)根據(jù)用戶的訪問(wèn)熱度提前對(duì)內(nèi)容進(jìn)行緩存,后續(xù)當(dāng)系統(tǒng)監(jiān)測(cè)到用戶發(fā)出的HTTP訪問(wèn)請(qǐng)求屬于已緩存的資源,才由系統(tǒng)向用戶返回HTTP 302重定向報(bào)文,響應(yīng)報(bào)文的目標(biāo)地址為緩存服務(wù)器的IP地址,用戶終端接收到該條HTTP 302消息后,將向緩存服務(wù)器發(fā)起請(qǐng)求下載數(shù)據(jù),如圖2:
目前用戶訪問(wèn)互聯(lián)網(wǎng)使用終端較多,不同的終端適配不同的應(yīng)用軟件會(huì)存在不同的限制,本次主要討論下蘋果MAC筆記下優(yōu)酷客戶端針對(duì)302報(bào)文的限制。討論現(xiàn)象為使用的MAC蘋果筆記本上安裝的優(yōu)酷客戶端使某運(yùn)營(yíng)商不能正常播放優(yōu)酷視頻,而切換到其他運(yùn)營(yíng)商則可正常播放,故障運(yùn)營(yíng)商側(cè)部署有Cache系統(tǒng)。通過(guò)抓包工具分析mac優(yōu)酷客戶端從發(fā)起視頻調(diào)度http請(qǐng)求算起,到客戶端發(fā)送視頻資源http請(qǐng)求,中間只能有兩個(gè)302重定向,超過(guò)兩個(gè)302重定向,客戶端就不再發(fā)起http請(qǐng)求?,F(xiàn)在發(fā)現(xiàn)的邊緣節(jié)點(diǎn)返回給客戶端302重定向后,就不再向Cache系統(tǒng)發(fā)起視頻資源http請(qǐng)求。
首先客戶端向源站發(fā)送視頻調(diào)度http請(qǐng)求,返回第1個(gè)302重定向,包頭location中包含視頻資源的url,接著客戶端向源站發(fā)送視頻資源http請(qǐng)求,重定向系統(tǒng)劫持后給客戶端返回第2個(gè)302重定向,然后客戶端向邊緣節(jié)點(diǎn)發(fā)送視頻資源http請(qǐng)求,slb給客戶端返回第3個(gè)重定向,客戶端收到302重定向后就不在發(fā)送location里面包含的url的http請(qǐng)求。
此次過(guò)程中在MAC客戶端側(cè)共產(chǎn)生3次302重定向,在產(chǎn)生第2次重定向后客戶端則不再對(duì)其進(jìn)行響應(yīng),而在非MAC客戶端中即使出現(xiàn)3次302重定向,訪問(wèn)視頻資源仍可以正常播放。雖然多次出現(xiàn)302報(bào)文屬于Cache系統(tǒng)自身服務(wù)配置問(wèn)題,正常報(bào)文應(yīng)在1~2次之間(包含源站自身調(diào)度機(jī)制),但是實(shí)際在多數(shù)實(shí)際服務(wù)過(guò)程中并不影響用戶訪問(wèn)感知,上述現(xiàn)象只是少數(shù)出現(xiàn)的服務(wù)隱患,為確保服務(wù)質(zhì)量可根據(jù)請(qǐng)求頭字段中的User-Agent來(lái)判斷是不是mac優(yōu)酷客戶端發(fā)送過(guò)來(lái)的http請(qǐng)求,如果是mac客戶端發(fā)過(guò)來(lái)的話,可以先判斷該資源是否存在緩存文件,如果存在緩存文件,可以讀取緩存文件并返回給客戶端(因?yàn)橐呀?jīng)驗(yàn)證過(guò),緩存文件存在的情況下,視頻可以正常播放),如果不存在緩存文件,直接做bypass處理,不對(duì)相應(yīng)文件進(jìn)行緩存。
對(duì)于視頻類業(yè)務(wù)流量較高,如出現(xiàn)小范圍內(nèi)的問(wèn)題,特別是與客戶端有關(guān)的,需要具體問(wèn)題具體分析,制定有效措施,才能避免因緩存視頻而不能播放給用戶帶來(lái)不必要的麻煩。
參考文獻(xiàn)
[1] 周領(lǐng)良,朱延超,劉軼,等.基于Cache命中率校準(zhǔn)的并行程序性能預(yù)測(cè)[J].高性能計(jì)算技術(shù),2015(1):22-25.