首页 理论教育常用HTTP增强技术优化策略

常用HTTP增强技术优化策略

【摘要】:图2-44卫星网络HTTP增强技术2.4.3.2Web缓存技术Web缓存的核心思想是“取一次、用多次”,利用访问数据的可复制性和共享性,将用户访问频率高的内容保存到离用户较近的缓存中,当用户再次访问时,就可以用较低的代价快速获取。

2.4.3.1 HTTP增强技术概要

Web缓存、Web预取和流程优化技术是地面网络HTTP增强技术中最常用的、最基础的3类技术,主要侧重于解决长时延网络中“重复访问”“串行化协议交互”等问题。其中,Web缓存和Web预取具体通过缓存替换或预取算法来提升Web应用效能,比如,主流的缓存替换算法有基于访问次数、访问时间间隔和网页大小等替换算法;预取算法有基于热点、超链接和访问概率顶测的预取算法。流程优化具体通过请求流程简化和连接复用技术来应对串行化协议交互对HTTP传输性能的影响,如图2-44所示。

图2-44 卫星网络HTTP增强技术

2.4.3.2 Web缓存技术

Web缓存的核心思想是“取一次、用多次”,利用访问数据的可复制性和共享性,将用户访问频率高的内容保存到离用户较近的缓存中,当用户再次访问时,就可以用较低的代价快速获取。它是一种解决“重复访问”问题的有效方案,能在一定程度上减少重复数据的传输,达到节省网络带宽、减轻服务器负载、减少访问时延的目的。目前,根据缓存系统部署位置的不同,可分为客户端缓存、代理缓存和服务器缓存。其中,客户端缓存通常位于用户的浏览器上,浏览器会把一段时间内用户访问过的页面保存在本地硬盘中,下次有相同的访问请求时就可以直接在本地获取到。代理缓存则通常位于防火墙、网关这一类网络中继结点上,处于客户端和Web服务器之间,与客户端缓存方法相比,代理缓存可实现多个用户共享缓存内容,如图2-45所示。服务器缓存通常部署在Web服务器前端,与客户端缓存和代理缓存的使用目的不同,它不能减少网络上的数据流量,但是可以有效减轻Web服务器的负载,使Web服务器能专注于动态页面的处理等工作。另外,无论哪种缓存方式均基于缓存替换算法实现,其好坏由专门的评价标准来判断。

图2-45 采用代理缓存方式的Web缓存技术应用示意

1)Web缓存替换算法

Web缓存替换算法是提高缓存性能的最重要的核心技术,重点研究缓存空间被完全占用的情况下,当新的待缓存对象到达时,如何替换出一个或多个失去缓存价值的对象,以提供新对象所需的存储空间。Web缓存替换算法主要决定文件进入或被替换出缓存空间的时机和方式,较理想的Web缓存替换策略源于对万维网(WWW)访问特性和规律的深刻分析,既要有较高的命中率,又要有较低的缓存管理成本。目前,针对Web缓存替换策略已有大量的研究,主要有基于访问次数、访问时间间隔、网页大小和衍生算法4类。

(1)基于访问次数的替换策略。以Web对象的流行度作为替换依据,典型的算法是最不经常使用的算法(LFU),LFU总是替换出代理缓存中被访问次数最少的网页副本。该策略的优点是实现较简单,只要对每个Web缓存对象维持一个计数器,每次Web缓存被命中时,相对应的计数器就加1。其缺点也比较明显,由于没有综合考虑网页的生存时间、大小和获取网页的访问时延,因此某些网页可能会被积累一个很大的计数次数,即使以后不再被访问也不会被替换,将一直占用缓存空间。

(2)基于访问时间间隔的替换策略。其基本思想是替换掉那些最近最少访问的Web对象,典型的算法是最久未使用算法(LRU)。LRU是一种非常流行的缓存替换算法,它始终首先替换那些最近未被访问的网页副本。该策略实现简单,应用广泛,但由于其没有考虑到网页的大小和获取网页的时延,可能会为了保存一个大的对象而将许多小的对象替换出去。

(3)基于网页大小的替换策略。其基本思想是替换掉那些缓存中最大的Web对象以便容纳更多较小的对象,典型算法是Size。Size算法的优点是替换出相对较大的网页之后,保存多个小的网页,这种方法能在一定程度上提高对象命中率;但由于该算法没有考虑网页的访问次数、访问时间间隔和获取网页的访问时延,缓存空间中很可能会存储较多不会再被访问的小的网页副本,其字节命中率偏低。

(4)衍生算法。由于上述3种替换策略实现相对简单,通常被广泛地用于实际的工程应用中。但由于其决策条件的单一性,不能称之为完备的解决方案,因此相关研究人员在这3种替换算法的基础上研究出了多种衍生算法。比较典型的是LRFSU(least recently frequently size used)缓存替换算法,该算法综合了访问次数、访问时间和网页大小3种因素。

2)Web缓存算法的评价标准

在对缓存系统的性能评价模型研究中,常以对象命中率、字节命中率、访问时延作为性能评价的主要参数。

(1)对象命中率。在缓存系统运行的同时,记录用户的访问请求序列,记录一段时间,统计其中有多少个访问请求在缓存空间中获得了有效的对象副本,以此来计算命中率。

设请求文档的总数为m;σi用来表示请求是否被命中,如果命中则σi=1,否则σi=0。

对象命中率H可定义为

代理缓存系统的最终目标是减少网络上的W6访问流量,由于其缓存的对象是文档,且文档的大小不等,不同大小文档的命中率对缓存系统性能的影响是不同的。因此,对象命中率并不能正确反映web缓存的性能,故引入字节命中率这一评价指标。

(2)字节命中率。字节命中率一般被定义为命中文档的总字节数占所有请求文档总字节数的比例,可用来具体量化不同代理缓存系统减少了多少网络流量。目前,很多研究都采用字节命中率来衡量和评估代理缓存系统的性能,认为字节命中率能更好地评价系统的性能。

字节命中率H B可定义为

式中,si是以字节表示文档i的大小。

(3)访问时延。访问时延是评价缓存服务器的重要性能指标。将可能被访问的热点对象缓存在离用户较近的地方,就能有效地减少长时延信道中“请求-响应”的交互次数,极大地缩短用户的访问时延。

对象命中率、字节命中率和访问时延是3个相互关联的参数。较高的对象命中率和字节命中率意味着客户端访问时延的减少,反之,较低的对象命中率和字节命中率意味着大部分对象的请求都未命中,这样会造成用户访问时延的增加。因此,为了最大限度地减少用户的访问时延需要同时获得较高的对象命中率和字节命中率,但在一定程度上,对象命中率和字节命中率之间是相互矛盾的。比如在代理缓存系统中,总的缓存大小一定,为了追求较高的字节命中率,需要替换出相对较小的Web对象,多缓存一些较大的对象,这样势必又会降低对象命中率。因此,设计缓存替换算法时需要综合考虑上述因素。

2.4.3.3 Web预取技术

在用户发起的两次Web请求之间,会有几秒钟甚至几十分钟的时间间隔,通常被称为用户浏览时间。Web预取技术就是充分利用了这个时间,把用户不久可能要访问的页面提前从Web服务器上获取并保存到本地。其基本思想是按照一定的预测算法,在用户请求尚未发起前,将用户即将访问的页面提前预取到本地缓存中。这样,当用户对已经预取过的页面发起请求时,由于该页面已经存储在本地,因此能在请求的第一时间内直接从本地获取,可大大减少用户请求后的等待时间,如图2-46所示。

图2-46 Web预取技术应用(代理网关)

通常,Web预取是对Web缓存技术的一种有效补充,充分利用了网络中相对空余的时间。若通过Web预取技术预取到的对象具备足够高的准确率,Web缓存系统的性能就能得到更进一步的改进。另外,和Web缓存一样,预取的位置也可以是在客户端、代理网关或Web服务器端

1)Web预测算法

Web预取效果的好坏取决于Web预测算法,通常预测算法的有效信息来源于用户的访问日志和被访问Web对象本身的特征,如HTML页面中的超链接等。目前所研究的典型预测算法主要有基于热点、超链接和访问概率预测的预取算法。

(1)基于热点的预测。该算法认为每个服务器上都存在若干个最受用户喜爱的页面,它们被访问的次数远高于其他页面。该算法实现比较简单,当用户对网页的访问有明显的热点时,所预取的页面会有较高的利用率,网络上的通信量会明显减少。但该算法只会预取访问次数较多的页面,不会顾及到访问次数较少的页面。另外,该算法不适用于单个用户的预取,因为,对于单个用户而言,基本不存在热点页面。而且该算法与具体的访问过程无关,不能根据用户当前的请求预测下一次请求,故连续访问将得不到较好的响应。

(2)基于超链接的预测。该算法认为用户的下一个请求往往来自当前页面的超链接,由此可以通过预取当前页面的部分链接以缩短用户请求的响应时间。网页上的链接很多,预取所有链接一方面会极大地增加网络通信量,浪费网络带宽;另一方面也会带来较低的预取利用率。因此,在具体的算法设计中可以加入对历史信息的分析来选择预取哪些链接,如基于热点的超链接。但基于超链接的预测技术无法应对用户直接输入网址的情况,相关研究表明,用户在浏览网页时约有20%的可能直接输入地址或使用书签进行下一网页的浏览。

(3)基于访问概率的预测。该算法认为用户的访问通常具有一定的规律性,主要通过分析用户的访问路径、挖掘其中蕴含的用户信息需求,预测用户的下一步访问请求。

P(B|A)=C A,B/C A

式中,C A为网页A被访问的次数;C A,B为访问网页A后,网页B随即被访问的次数。当有用户访问网页A时,就可以通过统计数据得到以前访问A之后再访问后续网页的概率,从而决定需要预取的网页。该算法需要进行计数器的维护,会存在大量数值很小的跳转计数器。

2)Web预取技术的评价标准

在预测体系中,通常采用莫巴舍尔Mobasher提出的评价测度来分析预测模型和预测的质量,其评测指标主要包括准确率(Precision)、覆盖率(Coverage)和F测度(F-measure)。假设用户访问的总页面数为Req,预取的总页面数为Preq,预取的总页面中被用户访问的页面数为Req_Preq,则有:

(1)准确率。主要表示在预取的总页面中被用户访问的页面数在用户所访问的总页面数中所占的比例,其计算公式为

Precision=|Req_Preq|/|Req|

(2)覆盖率。主要表示在预取的总页面中,被用户访问的页面数所占的比例,其计算公式为

Coverage=|Req_Preq|/|Preq|

(3)F测度。是将准确率和覆盖率这两者综合起来从整体上考虑系统的预取质量,其计算公式为

F-measure=2×Coverage×Precision/(Coverage+Precision)

2.4.3.4 流程优化技术

在长时延网络中,针对HTTP的串行化交互特性,为了达到大量削减交互冗余、明显缩短访问时间的目的,需要进行HTTP流程的优化设计,具体通过请求流程简化和连接复用这两种技术来实现。

1)请求流程简化

通常情况下,基于HTTP获取一个完整的Web页面需要多次“请求-响应”流程。如图2-47所示,当客户端向服务器请求Web页面时,首先需要通过对HTML对象的请求来获取整个页面的顶层框架,然后再通过对各个内嵌对象的请求获取页面的子框架对象(包括图片、动画等页面基本元素)。对于不同的页面,整个过程可能需要十几、几十甚至上百次的“请求-响应”串行交互。

在长时延网络中,HTTP标准流程势必会严重浪费时间,造成极差的用户体验。针对该流程,一种如图2-48所示的请求流程简化技术,通过对请求流程的削减来解决标准协议流程在长时延网络中运行效率低下的问题。其基本原理是当客户端向Web服务器请求Web页面时,客户端侧HTTP增强设备会向Web服务器转发来自客户端的HTML对象请求。当服务器侧HTTP增强设备收到Web服务器的HTTP应答后,会将该应答转发给客户端,同时还会通过对该应答的解析获得内嵌对象的信息,并向Web服务器发送对所有内嵌对象的请求。当服务器侧HTTP增强设备收到内嵌对象的应答后,会将应答直接推送至客户端侧HTTP增强设备。此时客户端仍然按照正常的流程向其HTTP增强设备发送若干次请求以获得各个内嵌对象。通过该技术,客户端侧HTTP增强设备只需通过卫星长时延链路向服务器端侧HTTP增强设备发送一次请求,就可获取到所有对象。这大大简化了请求过程,可以明显缩短获取对象的时间。

2)HTTP多连接复用

HTTP 1.0采用短链接的方式,即客户端访问Web页面时,每次请求都需要建立专门的TCP连接,这就导致每次请求都需要在经历TCP的3次握手阶段后才能进行被请求对象的传输,对象传输结束后,又需要经历TCP的3次拆链阶段拆除连接,在卫星网络中网页访问响应时间会非常长。HTTP 1.1采用长连接的方式,即使用一个一直保持不断的TCP连接去处理多个HTTP的请求。这个连接对所有嵌在页面里的对象都保持在打开状态,但是Web服务器如果直接与客户端保持连接,则它的负担是非常沉重的,因此Web网站的服务器通常采用短连接的方式针对上述问题,出现了HTTP连接复用的代理解决方案,简称HTTP多连接复用。

图2-47 HTTP标准请求-响应流程

图2-48 简化后的HTTP请求-响应流程

如图2-49所示,HTTP多连接复用主要通过一个TCP连接发送多个HTTP请求和接收多个HTTP应答,它既保留了HTTP 1.1保持连接的优点,又能降低Web服务器的负荷。具体通过远端站和中心站处带HTTP增强功能的IP增强设备来实现,两端IP增强设备提前建立并保持一个或者若干个TCP连接,可节省TCP 3次握手的时间。当远端站IP增强设备接收到客户端的请求时,它会通过提前建立好的TCP连接将该请求发送给中心站IP增强设备。

图2-49 连接复用原理

其主要流程是:如果远端站和中心站的IP增强设备的连接池中有空闲的连接,那么远端站用户的请求可以直接使用空闲连接进行传输,否则该请求会进入远端站IP增强设备的等待队列,直到连接池中有可用的空闲连接。同样,HTTP请求响应也会通过该连接池中的连接发送至客户端。这样,通过远端站和中心站IP增强设备之间的连接池就可以保证HTTP连接的大量交互信息直接复用已有的连接,从而避免了卫星链路资源的空等和浪费。

总之,请求流程简化和连接复用减少了跨越卫星信道的交互环节,降低了经由卫星信道传输的数据量,这样不但可以大幅缩短访问时间,还能在一定程度上起到降低协议开销的作用。