卫星网络HTTP加速技术研究

郝晓强++刘海客++周文斐



摘 要: 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.