鄒家寧,張治斌
(河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,焦作 454000)
基于重定向的多出口Web服務(wù)加速系統(tǒng)設(shè)計(jì)
鄒家寧,張治斌
(河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,焦作454000)
大學(xué)校園計(jì)算機(jī)網(wǎng)絡(luò)作為園區(qū)網(wǎng)的典型代表,除了為校園內(nèi)部網(wǎng)絡(luò)用戶提供因特網(wǎng)接入以外,還有一個(gè)重要角色就是作為資源子網(wǎng)為校園以外的網(wǎng)絡(luò)用戶提供大量信息資源,主要包括但不限于本校對(duì)外提供的宣傳類信息、面向社會(huì)公開(kāi)提供的教育信息、面向本校外出師生的內(nèi)部業(yè)務(wù)系統(tǒng)等。這些信息服務(wù)的最主要提供形式是基于HTTP協(xié)議的網(wǎng)頁(yè)和Web Service。而在校外訪問(wèn)這些服務(wù)的用戶分布于國(guó)內(nèi)各大網(wǎng)絡(luò)運(yùn)營(yíng)商以至于國(guó)外,如果單獨(dú)使用CERNET出口提供服務(wù),運(yùn)營(yíng)商的網(wǎng)間互聯(lián)瓶頸會(huì)嚴(yán)重降低用戶的訪問(wèn)效率。那么在同時(shí)使用多個(gè)運(yùn)營(yíng)商出口的環(huán)境下怎樣保證外部用戶從合適的鏈路進(jìn)入,快速訪問(wèn)內(nèi)部Web資源是需要解決的關(guān)鍵問(wèn)題。如何充分利用原有設(shè)備,設(shè)計(jì)一個(gè)加速系統(tǒng),低成本解決這個(gè)問(wèn)題,具有重大現(xiàn)實(shí)意義。
對(duì)于大型網(wǎng)絡(luò),解決上述立足于規(guī)避互聯(lián)瓶頸的加速問(wèn)題的終極方案是將內(nèi)部網(wǎng)絡(luò)建立自治域(AS),與運(yùn)營(yíng)商網(wǎng)絡(luò)通過(guò)BGP協(xié)議互聯(lián)[1-2],這樣所有運(yùn)營(yíng)商網(wǎng)絡(luò)都有指向園區(qū)網(wǎng)的直接路由,也就無(wú)需經(jīng)過(guò)其他運(yùn)營(yíng)商轉(zhuǎn)發(fā),從而避開(kāi)外網(wǎng)互聯(lián)瓶頸,也無(wú)需網(wǎng)絡(luò)地址轉(zhuǎn)換,與其他方案比較而言網(wǎng)絡(luò)傳輸效率和服務(wù)器資源使用效率最高。但對(duì)于國(guó)內(nèi)大多數(shù)大學(xué)校園網(wǎng)來(lái)說(shuō),由于網(wǎng)絡(luò)規(guī)模不夠大,所以一方面申請(qǐng)本來(lái)就極為緊缺的AS號(hào)碼很困難,另一方面運(yùn)營(yíng)商的政策性限制也不允許廣泛進(jìn)行BGP互聯(lián)。因此只能采取其他解決方案。
對(duì)于經(jīng)營(yíng)性的商業(yè)網(wǎng)站,解決加速問(wèn)題的一種成熟方案是內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)[3-5],通過(guò)在各大運(yùn)營(yíng)商數(shù)據(jù)中心部署內(nèi)容鏡像來(lái)將服務(wù)內(nèi)容“推送”到用戶附近,使得用戶可以就近獲取服務(wù)內(nèi)容以達(dá)到加速的目的。這個(gè)方案的問(wèn)題在于其成本較高,所以一般不適合應(yīng)用于非經(jīng)營(yíng)性的網(wǎng)站,尤其是多數(shù)的大學(xué)網(wǎng)站。
多出口大學(xué)校園網(wǎng)采用較多的加速方案是基于客戶IP地址來(lái)劃分視圖的智能DNS[6-9]解析。也就是在DNS服務(wù)器的配置中,根據(jù)出口數(shù)量建立多個(gè)視圖,分別配置運(yùn)營(yíng)商所屬的IP地址數(shù)據(jù),從而根據(jù)DNS解析請(qǐng)求的源IP地址來(lái)識(shí)別客戶來(lái)自于哪個(gè)運(yùn)營(yíng)商,再按照相應(yīng)視圖將用戶查詢的域名解析為針對(duì)相應(yīng)運(yùn)營(yíng)商分配的IP地址,以引導(dǎo)用戶通過(guò)正確的鏈路訪問(wèn)網(wǎng)站資源。此種方式成本低廉,基本無(wú)需額外資金投入,因而適合大學(xué)校園網(wǎng)的非經(jīng)營(yíng)性網(wǎng)站,在國(guó)內(nèi)大學(xué)得到廣泛采用。但此種方案難以避免的缺陷有二:一是DNS服務(wù)用于將域名解析為IP地址,其中并不包含TCP/ UDP端口信息,因而在這個(gè)環(huán)節(jié)對(duì)IP地址難以復(fù)用,而運(yùn)營(yíng)商隨接入服務(wù)分配給校園網(wǎng)的IP地址數(shù)量極其有限,難以滿足校園網(wǎng)對(duì)外服務(wù)網(wǎng)站數(shù)量的快速增長(zhǎng)的需要;二是隨著互聯(lián)網(wǎng)的發(fā)展,用戶機(jī)對(duì)DNS服務(wù)器的設(shè)置不一定遵循“同一運(yùn)營(yíng)商”的原則,如果用戶機(jī)本身和代理用戶進(jìn)行遞歸查詢的DNS服務(wù)器屬于不同的運(yùn)營(yíng)商,那么此種方案的效果就會(huì)適得其反,嚴(yán)重惡化用戶訪問(wèn)網(wǎng)站的效率。
由于HTTP協(xié)議在校園網(wǎng)對(duì)外服務(wù)中的主體性,本文只研究基于HTTP協(xié)議的多鏈路訪問(wèn)優(yōu)化問(wèn)題。
根據(jù)HTTP協(xié)議規(guī)范[10-12],只要充分利用HTTP狀態(tài)碼302、301的重定向功能,告知用戶機(jī)使用另外的目標(biāo)地址和端口號(hào)訪問(wèn)同一內(nèi)網(wǎng)資源,即可有效解決外網(wǎng)用戶訪問(wèn)校園網(wǎng)Web資源的多鏈路選擇問(wèn)題。由于HTTP是應(yīng)用層協(xié)議,其重定向目標(biāo)不僅可以包含域名或IP地址,也可以包含TCP端口號(hào),這就有效解決了公網(wǎng)運(yùn)營(yíng)商IP地址復(fù)用問(wèn)題。另外HTTP協(xié)議的服務(wù)請(qǐng)求報(bào)文是發(fā)自用戶機(jī)IP地址,與用戶DNS服務(wù)器無(wú)關(guān),所以智能DNS方案的第二個(gè)缺陷也就不復(fù)存在了。
只要通過(guò)合適的設(shè)備配置和算法設(shè)計(jì),接收公網(wǎng)用戶發(fā)送的HTTP請(qǐng)求,并通過(guò)一個(gè)重定向回復(fù)[13-14],使客戶機(jī)重新發(fā)送請(qǐng)求至與用戶一致的公網(wǎng)鏈路入口,并通過(guò)邊界路由器上運(yùn)行的靜態(tài)NAT,將數(shù)據(jù)包的目的IP地址和端口號(hào)進(jìn)行轉(zhuǎn)換,進(jìn)入內(nèi)網(wǎng)訪問(wèn)正確的資源。
3.1解決方案的工作流程
基于HTTP重定向的Web服務(wù)加速解決方案的整體工作流程包括以下部分:
首先,該方案僅使用常規(guī)配置的DNS服務(wù)器,使得校內(nèi)資源的域名解析為CERNET分配的IP地址,即資源實(shí)際的IP地址。將此地址返回給外網(wǎng)DNS及外網(wǎng)用戶。
公網(wǎng)用戶得到該地址以后,訪問(wèn)Web資源的HTTP請(qǐng)求報(bào)文即通過(guò)教育網(wǎng)鏈路進(jìn)入校園網(wǎng),在邊界路由器上執(zhí)行策略路由將所有來(lái)自非CERNET的訪問(wèn)指定資源的數(shù)據(jù)包路由至用于進(jìn)行HTTP重定向的服務(wù)器。
重定向服務(wù)器上需要實(shí)現(xiàn)一個(gè)僅執(zhí)行重定向的HTTP服務(wù)子集。該服務(wù)程序由筆者自行實(shí)現(xiàn)。服務(wù)程序應(yīng)按照用戶IP地址判斷用戶所屬運(yùn)營(yíng)商,然后發(fā)送重定向目標(biāo)為該運(yùn)營(yíng)商分配的IP地址的HTTP重定向報(bào)文給用戶。該回復(fù)報(bào)文封裝后仍通過(guò)CERNET鏈路發(fā)送給用戶。由于請(qǐng)求報(bào)文和重定向報(bào)文都很小,盡管這個(gè)部分沒(méi)有能夠規(guī)避外網(wǎng)互聯(lián)瓶頸,然而對(duì)用戶總的訪問(wèn)效率的不利影響非常有限。
用戶機(jī)收到重定向報(bào)文后發(fā)送新的HTTP請(qǐng)求報(bào)文,由于其目標(biāo)IP地址是屬于用戶本身所屬的相應(yīng)運(yùn)營(yíng)商的,因此封裝報(bào)文的數(shù)據(jù)包將會(huì)被由該運(yùn)營(yíng)商的網(wǎng)絡(luò)直接路由到正確的校園網(wǎng)入口鏈路,從而使得數(shù)據(jù)量較大的主要的數(shù)據(jù)傳輸過(guò)程有效規(guī)避了外網(wǎng)互聯(lián)瓶頸。
校園網(wǎng)出口上連接該運(yùn)營(yíng)商鏈路的邊界路由器負(fù)責(zé)運(yùn)行針對(duì)指定資源的靜態(tài)NAT,將用戶發(fā)送的目標(biāo)地址為該運(yùn)營(yíng)商所屬的IP地址的數(shù)據(jù)包,正確轉(zhuǎn)換為校園網(wǎng)內(nèi)的CERNET地址,這樣就能夠保證正確完成接下來(lái)的全部通信過(guò)程。
3.2相關(guān)策略路由配置
由上文描述可知,為了正確實(shí)現(xiàn)指定Web服務(wù)對(duì)特定公網(wǎng)用戶的加速功能,需要在CERNET出口路由器上實(shí)現(xiàn)策略路由功能如下:
(1)根據(jù)進(jìn)入數(shù)據(jù)包的目標(biāo)地址是否匹配需要加速的Web服務(wù)來(lái)確定是否進(jìn)行接下來(lái)的路由策略(這個(gè)步驟也可以通過(guò)常規(guī)靜態(tài)路由來(lái)完成)。
(2)訪問(wèn)指定的Web服務(wù)的數(shù)據(jù)包需要根據(jù)其源地址確定它來(lái)自哪個(gè)公網(wǎng)運(yùn)營(yíng)商,并根據(jù)不同運(yùn)營(yíng)商來(lái)分類,決定該數(shù)據(jù)包轉(zhuǎn)發(fā)到重定向服務(wù)器的哪個(gè)接口或地址。
由于設(shè)備配置手段的限制,現(xiàn)有的路由器很難在單臺(tái)設(shè)備上實(shí)現(xiàn)1、2兩步功能,因此為了滿足上述需求,需要配置至少兩臺(tái)路由設(shè)備。連接CERNET的邊界路由器負(fù)責(zé)上述步驟1的策略路由或者常規(guī)路由;另外一臺(tái)內(nèi)部路由設(shè)備負(fù)責(zé)上述步驟2的策略路由。
3.3重定向服務(wù)程序設(shè)計(jì)
重定向服務(wù)器上使用多個(gè)網(wǎng)絡(luò)接口或者單一接口的多個(gè)地址,由多個(gè)服務(wù)進(jìn)程負(fù)責(zé)監(jiān)聽(tīng),每個(gè)進(jìn)程對(duì)應(yīng)一個(gè)監(jiān)聽(tīng)地址,從而對(duì)應(yīng)于一個(gè)公網(wǎng)運(yùn)營(yíng)商。這樣的處理方式有利于充分利用路由設(shè)備的性能,使得服務(wù)器上的重定向進(jìn)程無(wú)需查表判斷源地址所屬的運(yùn)營(yíng)商,減輕了服務(wù)器的負(fù)擔(dān)。
重定向服務(wù)進(jìn)程使用配置文件記錄了內(nèi)網(wǎng)所有Web服務(wù)站點(diǎn)的主機(jī)頭到不同運(yùn)營(yíng)商的公網(wǎng)IP地址/ TCP端口號(hào)的映射關(guān)系。每個(gè)重定向服務(wù)進(jìn)程可以用多線程的方式為多個(gè)用戶并發(fā)服務(wù)。每個(gè)線程可以獨(dú)立打開(kāi)并分析用戶發(fā)來(lái)的HTTP請(qǐng)求數(shù)據(jù)報(bào),根據(jù)用戶提交的URL提取主機(jī)頭部分,根據(jù)這部分內(nèi)容并結(jié)合配置文件提供的映射關(guān)系,確定要重定向的IP地址和端口號(hào),并構(gòu)造相應(yīng)重定向指令,封裝后回復(fù)給用戶機(jī)。用戶機(jī)按照重定向指令的要求,向直連該運(yùn)營(yíng)商的路由出口重新提交HTTP訪問(wèn)請(qǐng)求,并得到快速回應(yīng)。
根據(jù)實(shí)踐經(jīng)驗(yàn),典型情況下同一運(yùn)營(yíng)商內(nèi)部傳輸延時(shí)分布在10ms-50ms,不同運(yùn)營(yíng)商之間的傳輸延時(shí)分布在200ms-500ms。本方案的實(shí)施,盡管保留了跨運(yùn)營(yíng)商的初始訪問(wèn)連接,但后續(xù)數(shù)據(jù)傳輸過(guò)程經(jīng)由單一運(yùn)營(yíng)商的低延時(shí)鏈路,使得傳輸環(huán)節(jié)延時(shí)降低為原來(lái)的10%以下,極大提高了數(shù)據(jù)傳輸效率,優(yōu)化了用戶訪問(wèn)體驗(yàn)??梢哉f(shuō)本方案具有很高的性價(jià)比。
另外考慮到網(wǎng)絡(luò)上與日俱增的對(duì)于Web服務(wù)的攻擊行為,后續(xù)開(kāi)發(fā)還應(yīng)采取相應(yīng)的過(guò)濾措施以抵抗攻擊。
[1]Y.Rekhter,T.Li,S.Hares.A Border Gateway Protocol 4(BGP-4)[S/OL].(2006-1).http://www.rfc-editor.org/rfc/rfc4271.txt
[2]E.Chen,J.Yuan.Autonomous-System-Wide Unique BGP Identifier for BGP-4[S/OL].(2006-1).http://www.rfc-editor.org/rfc/rfc6286. txt
[3]邱翔鷗.為因特網(wǎng)加速的內(nèi)容配送網(wǎng)絡(luò)[J].世界電信,2002(03):16-20.
[4]高勇,李子木,吳建平.CERNET上CDN性能的研究[J].計(jì)算機(jī)工程,2002(S1):211-215
[5]王樟,柳健,楊瑞娟.CDN網(wǎng)絡(luò)中的內(nèi)容分發(fā)策略研究[J].中國(guó)數(shù)據(jù)通信,2004(02):13-16
[6]韓鈺,侯晶晶.策略路由與動(dòng)態(tài)DNS技術(shù)在校園網(wǎng)中的應(yīng)用研究[J].教育信息化,2006(13):30-32
[7]陳松,戰(zhàn)學(xué)剛.基于雙向NAT和智能DNS內(nèi)網(wǎng)服務(wù)器安全快速訪問(wèn)策略[J].計(jì)算機(jī)工程與設(shè)計(jì),2009(12):2941-2944
[8]吳江,馮雯,姜少杰.智能DNS系統(tǒng)在校園網(wǎng)的研究與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2010(09):102-104
[9]趙天,侯國(guó)平,鄧成俊.智能DNS在多出口校園網(wǎng)中的應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2010(11):103-105
[10]R.Fielding,J.Gettys,J.Mogul,H.Frystyk,L.Masinter,P.Leach,T.Berners-Lee.Hypertext Transfer Protocol-HTTP/1.1[S/OL]. (1999-6).http://www.rfc-editor.org/rfc/rfc2616.txt
[11]M.Nottingham,E.Hammer-Lahav.Defining Well-Known Uniform Resource Identifiers(URIs)[S/OL].(2010-4).http://www.rfc-editor. org/rfc/rfc5785.txt.
[12]A.Barth.HTTP State Management Mechanism.[S/OL].(2011-4).http://www.rfc-editor.org/rfc/rfc6265.txt.
[13]張曉軍,呂潔,張蓓.HTTP重定向在網(wǎng)關(guān)認(rèn)證中的應(yīng)用[J].大連理工大學(xué)學(xué)報(bào).2005(S1):48-51.
[14]劉潤(rùn)達(dá),諸云強(qiáng),宋佳。馮敏.一種簡(jiǎn)單跨域單點(diǎn)登錄系統(tǒng)的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用.2007(02):288-291.
Web Service Acceleration;HTTP Redirection;Multi-Home Network;Multi ISPs
A Web Service Accelerate Solution Based on HTTP Redirection in Multi-Home Network
ZOU Jia-ning,ZHANG Zhi-bin
(College of Computer Science and Rechnology,Henan Polytechnic University,Jiaozuo 454000)
1007-1423(2015)28-0037-04
10.3969/j.issn.1007-1423.2015.28.010
鄒家寧(1974-),男,遼寧錦州人,講師,研究方向?yàn)榫W(wǎng)絡(luò)精細(xì)化管理
2015-08-13
2015-09-26
為了提高多出口園區(qū)網(wǎng)對(duì)外提供Web服務(wù)的數(shù)據(jù)傳輸效率,在分析現(xiàn)有解決方案的基礎(chǔ)上,提出一種基于HTTP重定向的低成本解決方案??沙浞掷迷芯W(wǎng)絡(luò)設(shè)備,較好地解決了多運(yùn)營(yíng)商Web訪問(wèn)加速問(wèn)題。
Web服務(wù)加速;HTTP重定向;多出口;多運(yùn)營(yíng)商
In order to improve data transmission efficiency for Web service,especially in a multi-home network,firstly analyzes original solution,and then gives a solution based on HTTP redirection.This low-cost solution depends on existing routers and servers,optimizes Web per-formance for users from multi ISPs’network.