郝曉強++劉海客++周文斐



摘 要: HTTP協議作為瀏覽網頁的多交互式協議,給用戶帶來了很好的上網體驗,當其應用于高延時衛星網絡環境下時,會嚴重影響Web訪問的效率。針對該問題提出一種適用于衛星網絡的HTTP加速技術解決方案,主要采用將緩存和預取相結合的方法達到對HTTP協議加速的效果。Web預取和緩存技術以期降低用戶的訪問延遲,提高網絡瀏覽速度,在高延時的情況下達到很好的用戶體驗。
關鍵詞: HTTP加速; Web預取; Web緩存; 衛星網絡
中圖分類號: TN927+.2?34; TP393.0 文獻標識碼: A 文章編號: 1004?373X(2017)09?0046?04
Abstract: HTTP protocol, as a multi?interactive protocol for webpage browsing, has brought a good Internet experience for users. When WWW is applied to the long?delay satellite network environment, it will seriously affect on the efficiency of Web access. Aiming at this problem, a new solution of HTTP acceleration technology suitable for satellite network is proposed. The method of combining caching and prefetching is used to reach the effect of HTTP protocol acceleration. The Web prefetching and caching technologies can reduce the access delay of users, improve the network browsing speed, and reach a better user experience in the case of long delay.
Keywords: HTTP acceleration; Web prefetching; Web caching; satellite network
0 引 言
近些年衛星網絡在通信系統中占據著舉足輕重的地位,Web作為衛星網絡的核心應用,緩解了當前地面網絡的壓力,但是由于衛星網絡的高延時、高誤碼和帶寬資源受限等特性[1],其訪問流量和訪問速度成為用戶最關心的問題,也是目前衛星網絡發展的主要障礙。
HTTP協議是一種串行的流水線多交互式協議,采用“請求?應答”的模式傳輸數據,其適用于分布式超媒體信息系統[2]。HTTP應用在時延較小的局域網中效率較高、性能較好,但應用在長延時的衛星鏈路中會使其傳輸效率嚴重下降,用戶的體驗度也會大大降低[3?4]。所以必須對原有的HTTP協議進行修改,研究一種適合于衛星網絡的HTTP協議加速技術來解決上述問題。
目前很多國外的專業衛星通信設備服務商的加速網關設備能提供很好的HTTP加速功能,技術已經相當成熟,比如iDirect,Cisco,Xtar,Newtec等。由于國外網絡興起較早,對HTTP加速技術的研究也很成熟,而且大多技術成果都得到廣泛應用,但由于商業原因對相關HTTP加速設備的關鍵技術知之甚少[5?6]。
HTTP加速技術的常用手段有Web緩存技術和Web預取技術[7]。緩存技術的關鍵問題是選擇緩存替換算法。目前常用的緩存替換算法主要有三種:
(1) 基于訪問頻度的LFU緩存替換方法,該方法是將頁面訪問次數最少的對象換出;
(2) 基于訪問時間間隔的LRU緩存替換方法,該方法是將緩存中最近最少被訪問的對象換出;
(3) 基于文檔大小的SIZE緩存替換方法,選擇將最大的緩存對象替換出去[8]。
雖然緩存技術在互聯網上有著非常廣泛的應用,可以有效地減少重復數據包的傳輸,但是隨著Web內容的豐富,個性化服務的比重增加,緩存技術對網絡性能的改善已不再顯著[9?10]。預取技術作為緩存技術的一種必要補充手段,是突破緩存性能上限最有效的方法,也是提高網絡服務質量的關鍵技術,如何使緩存和預取更好地協同工作正成為HTTP加速技術領域研究的熱點。按照預取位置的不同可以將預取分為客戶端預取,代理服務器預取和服務器預取[11]。
1 衛星網絡HTTP加速系統設計
1.1 HTTP加速系統架構設計
本文主要使用緩存和預取相結合的方法達到HTTP加速的效果。緩存的實現是在衛星鏈路兩端分別部署一個主控站緩存和多個衛星終端緩存,一個主控站可以為多個衛星終端服務,所有衛星終端緩存的內容都會在主控站有拷貝,這樣的架構大大減少了對原始服務器的訪問,更適合應用在高延時的衛星網絡中。綜合以上對預取結構的分析考慮,首先選擇的是代理服務器預取,可以更好地為本群體內的用戶提供個性化服務。預取如果放到衛星終端的話,預取的內容可能還在衛星鏈路上傳輸,此時客戶端已經發起了請求,所以命中率不會太高。從性能上講衛星終端也是遠遠不及主控站,所以預取放到主控站代理服務器性能更好,一旦主控站預取到Web對象,就會自動調用Push方法[12],利用客戶端的訪問時間間隔將預取的內容直接推送到客戶端所在的衛星終端代理服務器,這樣當用戶請求這些對象時,衛星終端Cache就可以直接命中,相當于在局域網內訪問資源,速度顯然會有所提高。
HTTP加速示意圖見圖1。
圖1中的RPA代表遠端網頁加速器,HPA代表中心網頁加速器。從協議圖來看,HTTP加速協議修改了正常的HTTP協議。
如果代理服務器緩存和預取模塊性能足夠好,客戶端訪問廣域網就等價為在局域網內的請求,在高延時的衛星網絡中會節省大量的鏈路傳輸時間。但是如果請求的內容沒有命中或者預取內容不準確,這樣用戶等待的時間就會大大增加。在衛星鏈路中,這種訪問的重復性會導致同樣一份數據在鏈路上傳輸很多次,這不但會浪費寶貴的帶寬資源,而且會導致每次重復訪問時用戶都要承受長達幾十RTT甚至上百個RTT(600 ms)的訪問延遲,既浪費了用戶的寶貴時間,也會增加服務器的負載,但是隨著緩存和預取技術的推廣,這種重復性會不斷減少。加速系統架構圖如圖2所示。
從圖2來看,加速系統不過是在客戶端和服務器之間架設了兩個代理服務器,正是因為有了這兩個代理服務器才起到加速作用。
但是使用代理服務器不一定會有加速效果,如果是這個代理服務器上第一個訪問目的網站的用戶,使用代理服務器的訪問速度不僅不會提高,可能還會有所降低;如果不是第一個訪問目的網站的用戶,速度有可能提高,這是因為目的網站的對象可能已經緩存在代理服務器上,此時頁面內容直接命中,可以直接發給客戶端。兩臺代理服務器集成了多個模塊,尤其主控站服務器作為系統的核心部分,集成了HTTP連接控制模塊、協議處理模塊、緩存管理模塊、緩存超時檢查模塊、后臺預取控制模塊。若想要達到很好的加速效果,就必須使每個模塊協調工作,將每個模塊的作用發揮到最大化,想要做到這一點也不太容易,需要經過大量的實驗數據來驗證。
緩存管理模塊、緩存超時檢查模塊、后臺預取控制模塊是代理服務器最重要的幾個部分,關系到最終的加速效果。緩存管理模塊主要用來緩存用戶訪問過的Web對象和日志信息,以便下次訪問該對象時直接從Cache取到應答給用戶,提高緩存命中率,減少訪問時間,降低網絡開銷。當緩存達到設定的極限值時,需要啟用相關的緩存替換算法對緩存進行清理。緩存超時檢查模塊用來定期檢查緩存,對過期的數據進行刪除或重取,減少Cache的冗余度,更好地利用緩存空間。后臺預取控制模塊則在客戶端需要的對象在本地沒有命中時才會啟用,然后到后端服務器獲取相關對象,將取來的對象發送給客戶端,同時在本地拷貝一份;已緩存的對象便于下次客戶端有相同的請求時,能在本地緩存中找到并做出快速應答。
1.2 HTTP加速系統工作流程
HTTP加速代理服務器主要設置在局域網與衛星網絡以及衛星網絡和服務器之間,代理服務器作為提供轉接功能的服務器,在訪問網站時,在瀏覽器地址欄內輸入要訪問的網站,瀏覽器會自動先訪問代理服務器,然后代理服務器會自動轉接到目標網站。由此可見代理服務器起著橋梁作用,連接著客戶端和服務器。
對于局域網用戶,HTTP加速代理接收客戶端的請求,充當一個服務器的角色;對于原始服務器,HTTP加速代理向相關服務器發起請求,充當一個客戶端的角色。加速系統中主控站代理服務器的主要工作流程如圖3所示。
主控站代理服務器支持壓縮和預取模塊。客戶端經衛星終端站請求網頁后,經過主控站到服務器,服務器會給出應答主頁index.html。主控站得到index.html文件后,首先轉發給客戶端同時備份一份,然后對index.html文件進行壓縮檢測。若是經過壓縮的需先解壓再解析獲得主頁的URL,然后檢查緩存中是否有這些對象,若有就直接從緩存中獲取,調用Push方法將內容推送到衛星終端;如果發現請求的內容沒有被緩存,就會調用預取模塊進行預取,一旦主控站預取到新的內容,如果內容經過壓縮則直接緩存同時調用Push方法推送到衛星終端;如果沒有壓縮則先對內容壓縮并寫入緩存,同時調用Push方法,直接將最新內容推送并緩存在衛星終端。
從圖4可以看出,衛星終端與主控站工作方式有所不同,不同的地方主要是衛星終端代理服務器不支持壓縮和預取模塊,但是衛星終端緩存的內容和主控站是相同的。客戶端發起請求后會先在衛星終端查找Cache,如果Cache沒有命中則必須要經過長延時的衛星鏈路到真正的服務器去讀取,這樣整個訪問時間就會大大增加。
2 分析與評價
為了驗證HTTP加速系統的有效性,對系統進行測試。測試系統的配置如下:
(1) 模擬多個客戶端訪問服務器,忽略客戶端到衛星終端服務器和主控站服務器到真正服務器之間的延時,模擬客戶端和服務器之間的衛星鏈路的單跳延時是300 ms;
(2) 客戶端訪問Web頁面的時間間隔服從均勻分布。
整個測試分為兩個過程:
(1) 連續兩次訪問同一個頁面,對比響應時間。測試步驟如下:
① 沒有HTTP加速代理;
② 有HTTP加速代理(衛星終端和主控站都有緩存);
③ 有HTTP加速代理(衛星終端和主控站都有緩存,主控站有壓縮);
④ 有HTTP加速代理(衛星終端和主控站都有緩存,主控站有壓縮和預取)。測試結果如表1所示。
(2) 與第一個過程的測試內容有所不同,第二個測試是先訪問主頁面,記錄頁面響應時間,緊接著訪問主頁面內的子頁面,記錄子頁面的響應時間。測試的步驟同上,測試結果如表2所示。
3 結 論
衛星網絡的帶寬限制和高延時導致Web 訪問傳輸性能下降。HTTP協議的頻繁交互是影響其在衛星網絡中傳輸性能的主要因素,若想要達到可觀的加速效果,就必須對原有的HTTP協議進行修改。為了改善這種“請求?響應”交互模式對衛星網絡中HTTP協議性能的影響,本文提出在原有的系統基礎上增設兩級代理服務器,在代理服務器上實現預取和緩存技術的結合,設計了有效的HTTP加速代理方案。
Web緩存利用較高的命中率來減少鏈路上的數據傳輸,節省了大量的訪問時間,但只依賴緩存技術實現理想的加速效果是不太現實的;Web預取則克服了Web緩存在利用WWW訪問時空間局部性的缺陷,使緩存機制可以盡量擺脫時間局部性和空間局部性的束縛。作為提升高速緩存命中率的一種手段,預取技術已經越來越顯示出它的重要性。在很大程度上能縮短在衛星網絡中使用Web訪問的響應時間,充分節約衛星帶寬資源。Web緩存和預取技術為提高網絡性能帶來了新的機遇,同時也遇到了一些新的挑戰。就目前來看,仍有以下問題有待進一步探討和研究:
(1) 如何提高緩存命中率。由于價格的因素,緩存的存儲往往有大小限制,必須要明確緩存的內容,舍棄對用戶無用的內容。緩存是從無到有的,在最初階段不能發揮作用,而且在不能命中的情況下服務器性能會出現顛簸,所以提高命中率應該是研究緩存的核心任務。
(2) 如何解決緩存的更新、清除和同步問題。隨著Web內容的豐富,更新速度的提升,客戶可能只是關心實時信息動態,所以要有一個很好的緩存刷新機制,及時清理緩存的垃圾,讓更重要的內容進入緩存。如何實現主控站緩存和衛星終端緩存的同步在整個項目中也花費了大量的時間,經過反復調研,采用主控站主動向衛星終端Push的方法。是否有更好的解決方法應該也是以后工作的重點。
(3) 如何正確獲得用戶會話集,并能使用恰當的方法進行處理,以期提高預取的準確率。已有預取算法的研究主要集中在日志文件的挖掘以及對URL的分析,日志文件按照同一個IP 地址劃分成不同的會話集。 由于有很多用戶可能共用一個IP,而且用戶的訪問也是隨機的,所以會話集并不能真正地代表某個用戶的訪問序列。所以在存在很多噪聲的情況下,如何精確地確定預取對象應該是以后研究的重點。
參考文獻
[1] 翟鴻雁.廣域網優化技術及其應用[J].計算機與現代化,2007(5):69?71.
[2] 上野宣.圖解HTTP[M].于均良,譯.北京:人民郵電出版社,2014.
[3] 尹昊.Windows Mobile平臺下HTTP代理系統的研究與設計[D].大連:大連理工大學,2007:15?16.
[4] 何辭,張亞生,彭華.一種適用于衛星網絡的HTTP加速技術[J].無線電通信技術,2013,39(5):15?17.
[5] 胡偉之,沈富可.基于Web訪問特性的緩存替換策略[J].計算機應用,2008,28(z2):48?50.
[6] MAHANTI A, EAGER D, WILLIAMSON C. Temporal locality and its impact on Web proxy cache performance [J]. Performance evaluation, 2000, 42(2/3): 187?203.
[7] 郝沁汾,祝明發,郝繼升.WWW業務訪問特性分布研究[J].計算機研究與發展,2001,38(10):1172?1180.
[8] 黃敏,蔡志剛.緩存替換算法研究綜述[J].計算機科學,2006,33(12):191?193.
[9] XU Huanqing, WANG Yongcheng. A Web pre?fetching model based on analyzing user access pattern [J]. Journal of software, 2003, 14(6): 1142?1147.
[10] BENEVENUTO F, DUARTE F, ALMEIDA V, et al. Web cache replacement policies: properties, limitations and implications [C]// Proceedings of the 3rd Latin American Web Congress. Los Alamitos, CA: IEEE, 2005: 197?204.
[11] 班志杰,古志民,金瑜.Web預取技術綜述[J].計算機研究與發展,2009,46(2):202?210.
[12] CHEN H, ABRAMS M, JOHNSON T, et al. Wormhole caching with HTTP push method for satellite?based Web content multicast and replication system [C]// Proceedings of 1999 the 4th International Web Caching Workshop. [S.l.]: IEEE, 1999: 1?7.