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