李相前 胥俊丞
【摘要】 Cache技術(shù)在互聯(lián)網(wǎng)上的積極應(yīng)用,能有效豐富本地的熱點(diǎn)內(nèi)容,提升用戶的體驗(yàn),節(jié)省網(wǎng)絡(luò)帶寬,帶來可觀效益。本文分析了各種重定向方式的特點(diǎn)及應(yīng)用場(chǎng)景,著重對(duì)Web Cache和P2P Cache的一體化部署方式進(jìn)行探討。
【關(guān)鍵詞】 Web Cache P2P Cache 重定向 綜合
一、前言
Cache,緩存,作為一種速度匹配技術(shù),是一項(xiàng)優(yōu)秀的傳統(tǒng)技術(shù),在PC系統(tǒng)中,它部署在高速CPU和低速DRAM內(nèi)存之間,有效的解決了高速CPU和低速DRAM內(nèi)存間速度匹配的問題,提高了PC整體系統(tǒng)性能和性價(jià)比。在較慢的外圍設(shè)備和內(nèi)存的數(shù)據(jù)交換中,比如顯示系統(tǒng)、磁盤系統(tǒng)中,也必不可少的需要使用Cache技術(shù)。推而廣之,凡是在傳輸速度有較大差異的兩者之間,都可以考慮利用Cache的速度匹配技術(shù)。
在互聯(lián)網(wǎng)時(shí)代、尤其是移動(dòng)互聯(lián)網(wǎng)時(shí)代,用戶的高速訪問需求與內(nèi)容緩慢的差異越來越大,矛盾也越來越明顯。對(duì)運(yùn)營(yíng)商來說,可以采用多種手段來緩解矛盾,比如網(wǎng)絡(luò)的增容、IDC SP/CP的引入、CDN(Content DistributionNetwork)的搭建,以及Cache的部署。網(wǎng)絡(luò)增容和IDC SP/CP引入是解決用戶高速訪問需求的根本之道,CDN和Cache是在現(xiàn)有的內(nèi)容、網(wǎng)絡(luò)基礎(chǔ)上做的改善,CDN內(nèi)容分發(fā)需要與內(nèi)容源SP/CP協(xié)商部署,而Cache具有封閉性,部署快、投資小、見效快,更具時(shí)效性。本文著重探討下電信運(yùn)營(yíng)商綜合互聯(lián)網(wǎng)緩存平臺(tái)的部署。
二、互聯(lián)網(wǎng)Cache的基本原理
用戶的上網(wǎng)體驗(yàn)是用戶和運(yùn)營(yíng)商共同關(guān)注的重點(diǎn),互聯(lián)網(wǎng)Cache系統(tǒng)就是解決用戶上網(wǎng)體驗(yàn)差的手段之一,其搭建在電信運(yùn)營(yíng)商本地的IP承載網(wǎng)上,作為互聯(lián)網(wǎng)與電信運(yùn)營(yíng)商網(wǎng)絡(luò)間的緩沖帶,有效吸納互聯(lián)網(wǎng)通道上的熱點(diǎn)流量,減少電信運(yùn)營(yíng)商網(wǎng)間和網(wǎng)內(nèi)的流量壓力,加快網(wǎng)絡(luò)訪問速度,提高用戶互聯(lián)網(wǎng)體驗(yàn),降低對(duì)互聯(lián)互通鏈路的依賴。其本質(zhì)是一次外網(wǎng)訪問,多次內(nèi)網(wǎng)服務(wù);本地命中,加快響應(yīng)。
三、互聯(lián)網(wǎng)Cache的分類
依據(jù)Cache的內(nèi)容,互聯(lián)網(wǎng)Cache可分為Web Cache和P2P Cache,兩則側(cè)重點(diǎn)不同,如表1所示。
電信運(yùn)營(yíng)商可以根據(jù)用戶需求和業(yè)務(wù)情況,選擇性的部署Web Cache和P2P Cache,比如在全國(guó)層面部署Web Cache,在省內(nèi)部署P2P Cache,兩者聯(lián)動(dòng)提供服務(wù)。對(duì)某些省,Web Cache和P2P Cache都有需要,有必要探索一套一體化的緩存方案,采用統(tǒng)一的部署方式,同時(shí)實(shí)現(xiàn)Web Cache和P2P Cache。
四、綜合互聯(lián)網(wǎng)Cache部署探討
4.1互聯(lián)網(wǎng)Cache部署原則
互聯(lián)網(wǎng)Cache系統(tǒng)的承載于IP承載網(wǎng)絡(luò)之上,須遵循透明和可維護(hù)等基本部署原則。透明原則要求系統(tǒng)部署不需要現(xiàn)網(wǎng)做改動(dòng),系統(tǒng)的工作與故障均不影響現(xiàn)有網(wǎng)絡(luò)和業(yè)務(wù),對(duì)用戶提供無感知服務(wù)??删S護(hù)原則要求配置簡(jiǎn)單、操作簡(jiǎn)便、系統(tǒng)可維護(hù)可管理。
4.2互聯(lián)網(wǎng)Cache系統(tǒng)構(gòu)成
按照模塊化的設(shè)計(jì)思路,互聯(lián)網(wǎng)Cache系統(tǒng)可劃分為重定向子系統(tǒng)(RSS)、調(diào)度子系統(tǒng)(DSS)、緩存子系統(tǒng)(CSS)、管理子系統(tǒng)(MSS)等部分,現(xiàn)簡(jiǎn)單描述各個(gè)模塊的功能及相互關(guān)聯(lián)。
重定向子系統(tǒng)(RSS),將內(nèi)網(wǎng)用戶發(fā)送到外網(wǎng)的請(qǐng)求進(jìn)行深度的分析,重定向到內(nèi)網(wǎng)調(diào)度子系統(tǒng)(DSS),達(dá)到阻礙內(nèi)網(wǎng)用戶訪問外網(wǎng)的目的,包括流量采集分析模塊、重定向模塊。其中,流量采集分析模塊,采集互聯(lián)網(wǎng)出口的流量,進(jìn)行深度包解析(DPI),從中解析出用戶請(qǐng)求(HTTP、P2P、FLV等),為重定向提供數(shù)據(jù)支持;流量采集分析模塊必須支持基于L3/L4信息、基于L7應(yīng)用層特征、基于會(huì)話特征等方式的協(xié)議識(shí)別能力,支持的主流的數(shù)據(jù)協(xié)議類型,并能擴(kuò)展新的數(shù)據(jù)協(xié)議。重定向模塊,主要進(jìn)行用戶請(qǐng)求的重定向處理,引導(dǎo)用戶優(yōu)先獲得本地流量,從源頭控制外部流量。
調(diào)度子系統(tǒng)(DSS),是整個(gè)Cache系統(tǒng)的調(diào)度控制中心,通常會(huì)運(yùn)用負(fù)載均衡、緩存記錄搜索、熱點(diǎn)內(nèi)容管理調(diào)度等技術(shù),對(duì)部署的多臺(tái)緩存子系統(tǒng)(CSS)設(shè)備進(jìn)行有效的負(fù)載管理,引導(dǎo)用戶和已經(jīng)存在緩存設(shè)備中的緩存數(shù)據(jù)進(jìn)行數(shù)據(jù)交互,增加緩存設(shè)備的命中率。
緩存子系統(tǒng)(CSS),是整個(gè)系統(tǒng)的資源倉庫,運(yùn)用自動(dòng)緩存技術(shù),構(gòu)建自動(dòng)緩存模塊,實(shí)現(xiàn)數(shù)據(jù)的高效存儲(chǔ)、查詢等。調(diào)度子系統(tǒng)(DSS)將用戶需要的資源請(qǐng)求送到緩存子系統(tǒng),用戶在下載時(shí)可優(yōu)先從緩存子系統(tǒng)里面獲取想要的資源,而不用連接到外部網(wǎng)絡(luò)。
根據(jù)資源的特性,可分為WEB緩存子系統(tǒng)和P2P緩存子系統(tǒng)。其中WEB緩存子系統(tǒng)主要自動(dòng)緩存熱點(diǎn)網(wǎng)站資源、下載重復(fù)度較高的HTTP下載資源、以及HTTP類在線視頻熱點(diǎn)資源;P2P緩存子系統(tǒng)根據(jù)用戶需求自動(dòng)緩存P2P文件共享類和視頻播放類資源。
管理子系統(tǒng)(MSS),實(shí)現(xiàn)網(wǎng)絡(luò)、系統(tǒng)、業(yè)務(wù)的管理功能,用以提供Cache系統(tǒng)各功能實(shí)體的性能監(jiān)測(cè)和參數(shù)配置等功能。
4.3重定向技術(shù)的選擇
重定向子系統(tǒng)是整個(gè)互聯(lián)網(wǎng)Cache系統(tǒng)的關(guān)鍵,而重定向子系統(tǒng)設(shè)計(jì)的重點(diǎn)在于重定向技術(shù)的選擇,重定向技術(shù)決定了業(yè)務(wù)疏導(dǎo)流程和設(shè)備部署方式。
重定向技術(shù)作用是完成用戶請(qǐng)求路徑的轉(zhuǎn)折,通過深度解析用戶請(qǐng)求,將用戶請(qǐng)求引到Cache系統(tǒng),由本地的Cache系統(tǒng)向用戶提供服務(wù)。常用的重定向技術(shù)有DNS重定向、HTTP重定向、HTTP策略路由、DNS策略路由、P2P重路由等。
DNS重定向方式基本原理:在出口鏈路上進(jìn)行旁路分光,重定向子系統(tǒng)DPI模塊做DNS報(bào)文解析,并將解析出的DNS(53端口)請(qǐng)求報(bào)文復(fù)制給負(fù)載均衡設(shè)備。負(fù)載均衡設(shè)備對(duì)請(qǐng)求的域名進(jìn)行判斷,如果是預(yù)先設(shè)定好的熱點(diǎn)網(wǎng)站的DNS請(qǐng)求,就把請(qǐng)求的網(wǎng)站域名地址解析為Cache系統(tǒng)的IP地址,并回復(fù)給用戶。如果用戶訪問非設(shè)定好的熱點(diǎn)網(wǎng)站,將通過正常DNS流程返回源服務(wù)器的IP地址。外網(wǎng)DNS服務(wù)器也會(huì)回復(fù)DNS解析結(jié)果給用戶或Local DNS服務(wù)器,Local DNS服務(wù)器以先收到的DNS 請(qǐng)求的IP地址解析為準(zhǔn)。
HTTP重定向方式基本原理:在出口鏈路上進(jìn)行旁路分光,重定向子系統(tǒng)對(duì)出口流量進(jìn)行深度分析和識(shí)別,分析出用戶的HTTP(端口80/8080)請(qǐng)求流量,當(dāng)檢索到Cache系統(tǒng)里已經(jīng)存在用戶所需的數(shù)據(jù)資源時(shí),發(fā)送HTTP302重定向報(bào)文給用戶,以攔截用戶訪問外網(wǎng)的請(qǐng)求,并將其重定向到Cache系統(tǒng),由Cache系統(tǒng)將本地資源響應(yīng)給用戶;若Cache系統(tǒng)內(nèi)無用戶所需資源并且未達(dá)到熱度閾值,則不對(duì)用戶請(qǐng)求進(jìn)行任何操作,用戶按照原來的路徑向外網(wǎng)獲取資源;若Cache系統(tǒng)內(nèi)無用戶所需資源但達(dá)到熱度閾值,則向用戶發(fā)送HTTP302重定向報(bào)文,由Cache系統(tǒng)服務(wù)器代理用戶取得資源并同時(shí)提供給用戶。
HTTP策略重路由方式基本原理: Cache系統(tǒng)旁掛在出口路由器上,在路由器上配置策略路由,通過路由器ACL列表區(qū)分Web業(yè)務(wù)80/8080等端口,將用戶上行的80/8080端口的HTTP流量全部導(dǎo)入到Cache系統(tǒng),由Cache系統(tǒng)根據(jù)設(shè)定的規(guī)則實(shí)現(xiàn)資源的入站和出站。
P2P重路由方式基本原理:P2P Cache的重定向是針對(duì) P2P用戶的Get_Peer請(qǐng)求,偽造Response包,將Cache IP返回給用戶。通過深度數(shù)據(jù)包識(shí)別(DPI)對(duì)出口流量進(jìn)行深度分析和識(shí)別,將內(nèi)網(wǎng)Peer向外網(wǎng)Tracker發(fā)起的種子文件請(qǐng)求報(bào)文進(jìn)行攔截,緩存子系統(tǒng)對(duì)請(qǐng)求報(bào)文進(jìn)行分析,若符合重定向條件,則偽造外網(wǎng)Tracker返回一個(gè)包含緩存子系統(tǒng)Cache服務(wù)器的Peer List,內(nèi)網(wǎng)Cache系統(tǒng)類似一個(gè)超級(jí)Peer節(jié)點(diǎn),實(shí)現(xiàn)用戶重定向到內(nèi)網(wǎng),主要有緩存系統(tǒng)滿足用戶的請(qǐng)求。
對(duì)基于域名的網(wǎng)站訪問,DNS重定向監(jiān)聽基于53號(hào)端口的DNS請(qǐng)求報(bào)文,結(jié)合預(yù)先設(shè)置的白名單,能有效實(shí)現(xiàn)對(duì)熱點(diǎn)網(wǎng)站和本地特定網(wǎng)站的緩存和下載,但對(duì)基于IP地址的訪問,DNS重定向方式無能為力。
HTTP重定向和HTTP策略路由都是對(duì)基于80/8080端口的HTTP報(bào)文進(jìn)行處理,HTTP重定向是采用出口鏈路旁路分光,利用DPI自動(dòng)進(jìn)行處理,HTTP策略路由需要在IP城域網(wǎng)核心路由進(jìn)行手工配置策略路由,需占用IP城域網(wǎng)核心路由器資源,我們認(rèn)為IP城域網(wǎng)核心路由器的資源是比較寶貴的,而且在核心路由器上手工操作增加了誤操作風(fēng)險(xiǎn),不符合透明部署原則。
P2P重定向主要是針對(duì)P2P技術(shù)的特殊性,P2P協(xié)議多種多樣,獨(dú)立于DNS系統(tǒng),沒有統(tǒng)一的標(biāo)準(zhǔn),通常不采用固定的和相同的通信端口號(hào),并且更新較快,但各種P2P應(yīng)用的報(bào)文在傳輸層協(xié)議上存在一定的特征,如BT報(bào)文中存在“BitTorrent protocol”字段,KaZaa使用的FastTrack協(xié)議在報(bào)文中存在“GET.\hash”字段,eDonkev報(bào)文中存在“E30C5”字段等,P2P重定向利用DPI識(shí)別出P2P報(bào)文,對(duì)P2P請(qǐng)求報(bào)文進(jìn)行重定向。
綜合評(píng)估,建議選取DNS重定向+HTTP重定向+P2P重路由,統(tǒng)一采用旁路分光方式部署于出口鏈路,三者相互補(bǔ)充,共同實(shí)現(xiàn)綜合的、一體化的互聯(lián)網(wǎng)內(nèi)容緩存,部署示意如圖1。
4.4系統(tǒng)業(yè)務(wù)流程
綜合互聯(lián)網(wǎng)緩存平臺(tái)對(duì)出口鏈路流量進(jìn)行深度分析,識(shí)別出用戶訪問外網(wǎng)的DNS請(qǐng)求、HTTP請(qǐng)求以及P2P下載請(qǐng)求,并分別做相應(yīng)的處理。
4.4.1 WEB緩存工作流程
對(duì)于訪問特定網(wǎng)站的DNS請(qǐng)求,采用DNS重定向方式,具體業(yè)務(wù)工作流程如下:
1)用戶發(fā)起DNS查詢請(qǐng)求,重定向子系統(tǒng)中流量分析模塊通過流量深度分析識(shí)別出用戶的DNS查詢請(qǐng)求,并將請(qǐng)求送至DNS重定向模塊;
2)若請(qǐng)求的目標(biāo)URL為WebCache系統(tǒng)緩存的特定網(wǎng)站資源,重定向子系統(tǒng)將WebCache系統(tǒng)的IP地址通過DNS響應(yīng)消息回送給用戶;否則,Cache系統(tǒng)不做處理,由源網(wǎng)站響應(yīng)用戶請(qǐng)求;
3)用戶直接向WebCache系統(tǒng)發(fā)起HTTP請(qǐng)求;
4)WebCache系統(tǒng)的負(fù)載均衡設(shè)備接收到用戶請(qǐng)求,并將請(qǐng)求分發(fā)到某臺(tái)WebCache服務(wù)器;
5)如果該WebCache服務(wù)器存儲(chǔ)有用戶請(qǐng)求的內(nèi)容,則由WebCache系統(tǒng)直接向用戶回復(fù)相關(guān)請(qǐng)求內(nèi)容;
6)如果該WebCache服務(wù)器沒有保存用戶請(qǐng)求內(nèi)容,則由WebCache系統(tǒng)代理用戶向源網(wǎng)站請(qǐng)求內(nèi)容,請(qǐng)求被路由至負(fù)載均衡設(shè)備;
7)負(fù)載均衡設(shè)備將用戶請(qǐng)求轉(zhuǎn)發(fā)至源網(wǎng)站;
8)源網(wǎng)站返回用戶請(qǐng)求的內(nèi)容,報(bào)文路由至負(fù)載均衡設(shè)備;
9)負(fù)載均衡設(shè)備將Web內(nèi)容轉(zhuǎn)發(fā)給WebCache服務(wù)器;
10)WebCache服務(wù)器在本地存儲(chǔ)一份內(nèi)容副本,并將數(shù)據(jù)發(fā)送給用戶
對(duì)于HTTP類的大文件下載和流媒體資源訪問請(qǐng)求,采用HTTP重定向方式,具體業(yè)務(wù)工作流程如下:
1)重定向子系統(tǒng)流量分析模塊識(shí)別出用戶的HTTP請(qǐng)求(DNS重定向后,Cache系統(tǒng)代理的HTTP請(qǐng)求除外),并將請(qǐng)求送至HTTP重定向模塊;
2)HTTP重定向解析用戶HTTP請(qǐng)求,并將用戶請(qǐng)求發(fā)送至調(diào)度子系統(tǒng),由調(diào)度子系統(tǒng)匹配查詢本地Cache系統(tǒng)資源情況;
3)對(duì)于本地Cache系統(tǒng)沒有緩存相應(yīng)資源,并且未達(dá)到緩存資源熱度,則不做重定向處理,直接放行,由源網(wǎng)站提供資源;
4)對(duì)于本地Cache系統(tǒng)沒有緩存相應(yīng)資源,并且已達(dá)到緩存資源熱度,則調(diào)度子系統(tǒng)根據(jù)Cache服務(wù)器使用情況指定Cache服務(wù)器;
5)重定向子系統(tǒng)向用戶發(fā)HTTP302重定向,定向到本地Cache服務(wù)器;
6)Cache服務(wù)器代理用戶向源站請(qǐng)求內(nèi)容;
7)源站將內(nèi)容返回到Cache服務(wù)器;
8)Cache服務(wù)器將內(nèi)容緩存到本地,并向用戶提供資源;
9)對(duì)于本地Cache系統(tǒng)緩存有相應(yīng)資源,調(diào)度子系統(tǒng)返回存有相應(yīng)資源的Cache服務(wù)器;
10)重定向子系統(tǒng)向用戶發(fā)HTTP302重定向,定向到本地Cache服務(wù)器;
11)本地Cache服務(wù)器提供資源服務(wù)。
4.4.2 P2P緩存工作流程
P2P類下載和訪問的請(qǐng)求,采用P2P重路由,具體業(yè)務(wù)流程如下:
1)重定向子系統(tǒng)流量分析模塊識(shí)別出用戶的P2P請(qǐng)求,并將請(qǐng)求送至P2P重定向模塊;
2)P2P重定向模塊解析用戶請(qǐng)求,并將用戶請(qǐng)求發(fā)送至調(diào)度子系統(tǒng),由調(diào)度子系統(tǒng)匹配查詢本地Cache系統(tǒng)資源情況;
3)對(duì)于本地Cache系統(tǒng)沒有緩存相應(yīng)資源,并且未達(dá)到緩存資源熱度,則不做重定向處理,直接放行,由Internet提供資源;
4)對(duì)于本地Cache系統(tǒng)沒有緩存相應(yīng)資源,并且已達(dá)到緩存資源熱度,則調(diào)度子系統(tǒng)根據(jù)Cache服務(wù)器使用情況指定Cache服務(wù)器;
5)重定向子系統(tǒng)向用戶發(fā)重定向報(bào)文,定向到本地Cache服務(wù)器;
6)Cache服務(wù)器代理用戶向Internet tracker服務(wù)器請(qǐng)求內(nèi)容;
7)Internet tracker返回給cache服務(wù)器Peer List,Cache服務(wù)器發(fā)起下載請(qǐng)求,并下載相應(yīng)資源;
8)重定向子系統(tǒng)對(duì)Peer List進(jìn)行處理,將Cache服務(wù)器的IP地址和內(nèi)網(wǎng)用戶的IP地址加入Peer List,并返回給用戶;
9)用戶發(fā)起下載請(qǐng)求,由本地Cache服務(wù)器和內(nèi)網(wǎng)用戶提供下載服務(wù);
10)對(duì)于本地Cache系統(tǒng)已緩存相應(yīng)資源,重定向子系統(tǒng)向用戶發(fā)重定向報(bào)文,并將Peer List(Cache服務(wù)器的IP地址和內(nèi)網(wǎng)用戶的IP地址)返回給用戶;
11)用戶發(fā)起下載請(qǐng)求,由本地Cache服務(wù)器和內(nèi)網(wǎng)用戶提供下載服務(wù)。
4.5系統(tǒng)評(píng)估探討
綜合互聯(lián)網(wǎng)緩存平臺(tái)的實(shí)際運(yùn)營(yíng)效果,可根據(jù)流量流向的特性進(jìn)行評(píng)估,流入流量主要是資源進(jìn)站,流出流量是為本地用戶提供資源。
我們?nèi)蓚€(gè)指標(biāo),便可直觀的評(píng)估系統(tǒng)的運(yùn)營(yíng)效果:節(jié)省流量=流出流量-流入流量;增益比=節(jié)省流量/流入流量。本系統(tǒng)2011年在某移動(dòng)省份運(yùn)營(yíng)商部署以來,增益比維持在8左右,效果良好。
五、結(jié)束語
本文探討的統(tǒng)一互聯(lián)網(wǎng)緩存平臺(tái),采用統(tǒng)一的部署方式,實(shí)現(xiàn)全業(yè)務(wù)的緩存,部署簡(jiǎn)單,見效快,適用于各大中小城域網(wǎng)內(nèi)部署。
統(tǒng)一互聯(lián)網(wǎng)緩存平臺(tái),采用軟件的方式,統(tǒng)一調(diào)度疏導(dǎo)互聯(lián)網(wǎng)資源訪問,其暗在的思想與目前主流的SDN/NFV(軟件定義網(wǎng)絡(luò)/網(wǎng)絡(luò)功能虛擬化)思想不謀而合,在未來網(wǎng)絡(luò)演進(jìn)中必將繼續(xù)延續(xù)其生命力。