专利名称:一种基于优先级多连接提高网页浏览效率的方法
技术领域:
本发明属于通信技术中的网络技术领域,涉及一种基于优先级多连接提 高网页浏览效率的方法,尤其涉及一种多线程并发式传输的网页浏览服务的 实现方法。
背景技术:
随着互联网的迅速发展,使用TCP作为传输协议会给服务带来一些性能和 安全上的问题,如头端阻塞(HOL) 、 SYN flooding攻击、小文件传输效率低 等。在一次TCP连接中,每一个连接只能绑定一个IP地址,如果要想并行地 传输多种逻辑数据,只有使用多条TCP连接,而要想进一步地对多个数据流 进行流量控制,则就只有在应用层实现,但是应用层无法了解端到端路径上 的拥塞情况,4艮难有效地进行流量控制,同时给应用程序的设计增加了不必 要的复杂性。随着浏览器,服务器,以及各种服务复杂性的不断增加,传统 的基于TCP的网页浏览服务已经不适合如此庞大的网络系统。
美国 Delaware 大学的论文《SCTP: An innovative transport layer protocol for the web》提出了 一种基于SCTP的网页浏览服务技术,通过对 Apache服务器和Firefox浏览器进行修改,将HTTP移植到SCTP上,并利 用SCTP的多流(连接)特性,采用多线程并发传输方式,加快了网页的传 输速率,解决了使用TCP带来的头端阻塞、网络拥塞和SYN攻击等问题。 然而,当数据在相互独立的数据流中传输时,会产生由多连接并行传输引发 的传输数据混杂现象。传输数据混杂是由于不同连接中的数据在同一时刻没 有先后顺序的在同时传输或同时到达。出现传输数据混杂时对象的平均到达 时间将会增加,并且在端到端路径带宽较小或者传输的数据对象较大的情况 下,传输数据混杂所带来的延迟将进一步增加。传输数据混杂现象产生后, 用户需要花较长时间去等待其所需服务被完整地传送过来
发明内容
本发明的目的是提供一种基于优先级多连接提高网页浏览效率的方法, 以保证重要数据能够更高效的发送到接收方。
为此,本发明提供了一种基于优先级多连接提高网页浏览效率的方法, 其特征在于,将传输协议建立的多个连接赋以优先级的特征,将重要的数据 连接赋以较高的优先级,并将其中的数据优先传递到网络中去。
特别是,多连接优先级的实现分为两个部分用户交互和优先级调度。 用户交互指用户根据自己的需求对各个连接的优先级进行设置,同时选择不 同的优先级算法。优先级调度完成队列调度工作。本发明对多个TCP连接 进行优先级的调度。用户交互部分包括通过套接口选项来进行优先级的设 置,它的设置可以在关联建立之前或之后进行,套接口选项设置成功返回后, 多连接优先级特性就开始影响用户消息的发送。同时,所添加的一个用来表 示具有相同优先级的连接集合的结构,将多个具有相同优先级的连接中的数 据放在一个队列中,使得这些数据能够按照先来先服务的方式进行调度。
多连接优先级调度部分实现首先,利用调度算法快速地找到连接号所 对应的优先级队列的索引号,接着,根据连接的优先级将其数据插入到对应 的优先级队列中,然后,再使用优先级调度算法对输出队列进行调度,将其 中的数据出队,最后,出队的数据将被绑定到报文中,向下转递到IP网络 层,通过网络发送到对端中去。
考虑到多种应用程序可能需要不同的优先级调度策略来满足某些特殊 要求,本发明提出的多连接优先级实现方法提供了两种调度算法严格优先 级队列调度算法和加权轮循队列调度算法。 一、严格优先级队列算法
在严格优先级队列算法中,每次从优先级最高的队列开始,如果有数据 就将其出队并发送出去,对于最高优先级队列中的数据将获得最低延迟的服 务。发送数据时的具体步骤如下
1、 首先检查是否使用了优先级特征如果使用了优先级特性,则要判 断使用的是否为严格优先级队列调度算法;如果没有使用,则按照以往普通 的出队方式出队;
2、 判断使用的是否为严格优先级队列调度算法如果使用的是严格优 先级队列调度算法,则要进行队列号等参数的初始化,并判断当前队列号是 否超过优先级队列的最大队列号;如果没有使用,则默认使用加权轮循队列调度算法进行调度;
3、 判断当前队列号是否未超过优先级队列的最大队列号若没有超过, 则进行当前队列的处理,判断当前队列是否不为空,也就是判断当前队列是 否有数据存在;若超过,则要结束任务;
4、 判断当前优先级队列是否不为空若不为空,即队列中有待发数据 存在,则将队列中的数据取出并发送出去;若为空,也就是没有数据存在, 则要开始检查下一个队列,跳到步骤3;
5、 完成第4步后,数据的发送过程到此结束,下一次数据的发送同样 为以上步骤。
严格优先级队列调度算法总结通过严格优先级队列调度算法,有效地 降低了高优先级连接中数据的传输延迟。但是,同时也会产生一些问题,如 果在网络边缘不对高优先级信息进行管制,低优先级信息流由于无限制地等 待高优先级信息流服务完毕才能得到服务,导致传输时延大到用户无法忍受 的程度。如果高优先级信息流超量,低优先级队列由于长期得不到服务,必 然导致队列溢出,后续的低优先级信息流由于溢出而被丢弃。如果发生这种 情况,低优先级信息流将被迫进入分组丢失、时延增加、主机系统重新传输 分组这样的旋涡中。
从以上分析可以看出,严格优先级队列调度算法的确不适合连续性的优 先级数据的传输,这会极大的降低数据的传输效率。本发明使用了加权轮循 队列调度算法来对其进行改进。 二、 加权轮循队列调度算法
在加权轮循队列调度算法中,为每个优先级队列分配不同的权值,通过 这些权值的设置将带宽按比例分配给各个队列。但是,权值应该是MTU的 整数倍,并且,各个队列权值的最大公约数应该是MTU。发送一次数据时 的具体步骤如下
1、 先初始化各个参数,从第一个队列开始进行判断,判断当前队列号 是否未超过所有优先级队列的最大队列号;
2、 判断当前队列号是否未超过所有优先级队列的最大队列号若没有 超过,则进行当前队列的处理,判断当前队列是否不为空;若超过,则结束 此次任务;
3、 判断当前队列是否不为空若当前队列不为空,即当前队列中有数据存在,则将队列中的数据取出,并更新当前的可用权值,将当前可用权值 变为前一时刻的可用权值减去用户数据的字节数,接着,判断是否没有从任
何一个队列中取出数据;若当前队列为空,也就是队列中没有数据,则检查 当前队列的下一个队列,跳到步骤2;
4、 判断是否没有从任何一个队列中取出数据若没有从任何一个队列 中取出数据,则证明所有队列的权值都为0,但此时队列中可能还有没有被 取出并发送出去的数据,这时就要进行可用权值及队列号的初始化,跳到步 骤1,再重新进行数据的提取;若从队列中取出了数据,则将取出的数据发 送出去,结束;
5、 完成步骤4后, 一次数据的取出和发送过程结束。若要对下一次数 据取出和发送,需重新进行以上操作,如此循环。
加权轮循队列调度算法总结通过对权值的设置,在发送数据的任意时 刻,两个队列中的数据都是按照一定的比例被发送出去的,虽然多个队列的 调度是轮循进行的,但对每个队列不是固定地分配服务时间片,如果某个队 列为空,那么马上换到写一个队列调度,这样带宽资源可以得到充分的利用。
综上所述,严格优先级队列调度算法能够有效地降低高优先级队列中数 据的传输延迟,但当高优先级信息流超量时,低优先级队列中的数据就会一 直在排队,不能够得以发送。出现这种情况时,可以使用加权轮循队列调度 算法,保证各个队列中的数据被循环发送出去。
根据本发明,本质上在传输层中实现了 一种对不同类型的数据提供不同 服务质量保证的QoS控制技术,使得能够对通过不同连接发送出去的用户消 息提供一种有区别的服务,从而有效地改善了重要数据在端到端传输过程中 的延迟。本发明的优点在于通过多连接优先级的设置,可以对用户感兴趣 的内容、或者服务中较为重要的部分进行优先传输,对不同类型的数据传输 提供不同的服务质量保证,从而提高了用户可感知的QoS需求,降低了用户 可感知的时延,从而在端到端带宽有限的情况下,能够为用户提供可接受的 服务。随着网络中信息量的爆炸性增加,网络服务的内容将日趋复杂,而诸 如服务组合等未来网络杀手级的应用将增加这种趋势。本发明符合这种网络 发展的趋势,将为越来越多的网络应用提供一种高效的、人性化的实现环境。 根据本发明,通过对多连接优先级进行调度,解决了传输数据混杂现象, 降低了用户的等待延时,加快了网页的传输速率,更好地满足了用户的需求。
6为了使多连接优先级特性更好的体现出来,可以将网页浏览服务应用于
多连接优先级上。假设一个HTML网页被分成四部分Java applet程序,多 媒体控件, 一个图像,及纯文本方式。把这四部分分配到四个独立的连接中, 加快HTML网页的传输,但同时也带来了并行传输引发的传输数据混杂现 象。通过多连接优先级设置,在多连接的网页浏览应用中,可以人为地根据 用户的偏好或者网络环境,将用户感兴趣或更有利于提高网络利用率的连接 中的数据设置为高优先级,这些数据将在同一个关联内优先地传输到浏览 器,这时用户就能一边浏览此数据内容, 一边等待其它内容的到达。从而有 效地降低用户的等待时间,更好的为当前网络服务,满足了用户的需求。
图l为使用调度算法对输出队列的调整示意图2为严格优先级队列调度算法设计示意图3为加权轮循队列调度算法设计示意图4为使用多线程的Apache Web服务器示意图;以及
图5为本发明Web浏览器与服务器之间的交互过程示意图。
具体实施例方式
下面给出本发明的一个实施例,其设计了多线程并发传输式网页浏览服 务方法。
在图5中,S101表示DNS查询;S102表示建立多个连接;S103表示发送 HTTP请求;S104表示发送HTML格式文本文件请求响应;S105表示解析 HTML文本文件,使用pipeling机制发送HTTP请求,获得html资源;S106 表示HTTP响应,发送所请求资源。
本实施例选择Firefox作为网页浏览客户端,Apache作为网页浏览服务器, 广域网模拟器通过对各项参数的设定,例如网络时延、带宽、丟包率等,来模 拟真实的网络环境。通常,浏览器用户通过点击一个超链接或在地址栏中输 入URL等方式发起一次浏览器与服务器之间的交互。浏览器与服务器的一次 交互的具体步骤如下所述
阶段l、多线程并发传输浏览器和服务器的设计;
步骤l:多线程并发传输服务器的设计
7本发明对原始Apache服务器进行了改进。首先,为了佳Apache能够利用 多连接特性,首先将获得输入连接的连接号,并将其保存。这样,Apache就能 够使用与请求相同的连接来进行响应。Apache原先是使用持久连接和pipelining 机制,现在即使请求来自于不同的连接,Apache中的服务线程同样只能顺序地 从一个关联中读取HTTP请求并响应。为了使得Apache能够并行地对来自于不 同连接的请求发送响应,使用一个监听线程来从不同连接中获取HTTP请求, 通过监听线程将对各个连接中请求的响应工作分配给若干个服务线程处理, 如图4所示。通过这种多线程处理机制,能够有效地提高响应时的数据吞吐 量。
步骤2:多线程并发式传输浏览器的设计
本发明对原始Firefox浏览器也进行了改进。在浏览器与服务器建立关联 时,Firefox需要指定浏览器允许的最大出连接和入连接。因为希望使用与 HTTP中请求的连接号中相同的连接号来进行响应,将输入连接数设置成输 出连接数。浏览器在选择使用哪个连接号来传输HTTP请求时,是使用 round-robin算法来循环地在所有的可用连接号中选择可用连接号。
当使用多线程浏览器Firefox和多线程Web服务器Apache分别并行地 发送HTTP请求和响应时会发生传输数据混杂现象,这是因为Apache服务 器会使用多个服务线程交替地使用网络接口将响应数据发送到浏览器端。通 过多连接优先级能有效地解决这一问题。可以人为地根据用户对网页中各个 元素的感兴趣程度,将用户感兴趣的元素设置为高优先级,这些元素将在同 一个关联中优先地被传输到浏览器端,从而获得尽量小的延迟。
阶段2:多连接优先级的设定
为了将优先级特性应用于Apache和Firefox,在Apache服务器端由网页作 者在网页中添加用于说明网页元素重要程度的属性字段,将Apache服务器端连 接0设置为高优先级连接,其余的连接为普通优先级,这些连接将按照先来先服 务的方式被发送到网络中去。由于在同一连接上传输多个数据依然会发生头端 阻塞现象,因此,每个网页中的重要元素不宜设置过多。
阶段3:网页浏览服务工作的具体过程如图8所示
步骤l:在浏览器地址栏中键入所需页面的URL,这里假设用户想要访 问的URL是httD:〃eaie.bitu.edu.cn/index.html;
步骤2:浏览器会对用户提交的URL进行解析。浏览器会找到获取这个URL中的资源需要使用什么协议,即""前面的http,然后使用HTTP协 议获取资源eaie.bjtu.edu.cn/index.html,这个由字符串代表的资源由两个部 分组成前一部分代表运行着Web服务器的机器域名eaie.bjtu.edu.cn,后 一部分/index.html代表存放在服务器eaie.bjtu.edu.cn中的资源名字;
步骤3:在完成对URL的解析后,浏览器就开始访问域名系统DNS, 查找eaie.bjtu.edu.cn对应的IP地址;
步骤4:通过DNS解析,浏览器获得eaie.bjtu.edu.cn对应的IP地址;
步骤5:浏览器与服务器之间建立多个连接;
步骤6:浏览器传输线程向Web服务器发送HTTP GET请求,告诉 Web服务器需要获得/index.html资源;
步骤7:服务器用/index.html作为这次请求的响应的消息主体并将其传 送给浏览器。index.html是一个HTML格式的文本文件,其中描述了网页中 包含了哪些元素以及这些元素如何布局的结构化信息,还有一些网页中出现 的文字信息;
步骤8:为了进一步地获得网页中的其它元素,浏览器会对刚刚收到的 index.html进行解析,确定它需要进一步获取哪些资源,并根据由网页作者 对各个网页元素的重要程度说明确定各个元素的重要程度,通过高优先级连 接去获取这些重要元素,而其它普通元素通过Round-Robin算法使用普通优 先级连接去获取;
步骤9:浏览器再次利用pipelining机制向服务器发起若干个HTTP GET 请求,从Web服务器中获得需要的资源;
步骤10: Apache服务器接收到来自于不同连接的请求后,用多个服务 线程对请求进行处理并响应,Apache j吏用多个月良务线程并行地处理一个关 联中不同连接的请求并将响应发回给浏览器;
步骤11:浏览器会使用多个线程分别读取来自不同连接中的响应数据, 并将其呈现在窗口上;
步骤12:当网页中所有元素都到达了浏览器端后, 一个完整的网页就会 呈现在用户面前,至此就完成了一个网页的浏览服务。
权利要求
1、一种基于优先级多连接提高网页浏览效率的方法,其特征在于,将传输协议建立的多个连接赋以优先级的特征,将重要的数据连接赋以较高的优先级,并将此连接中的数据优先传递到网络中去。
2、 如权利要求l所述的方法,其特征在于,进一步包含 用户交互,用户根据自己的需求对多连接进行优先级设置,选择优先级调度算法;以及多连接的优先级调度,其完成多个连接的优先级调度工作。
3、 如权利要求2所述的方法,其特征在于,多连接的优先级调度包括以 下两个步骤(1) 将输出队列分为若干个队列,不同队列存放不同优先级连接中的 数据;以及(2) 使用优先级调度算法从优先级队列中将数据取出。
4、 如权利要求3所述的方法,其特征在于,多连接的优先级调度算法为 严格优先级队列调度算法每次严格按照优先级从高到低的次序,优先发送高优先级队列中的分组,当高优先级队列为空时,再发送低优先级队列 中的分组;或加权轮循队列调度算法为每个队列分配不同的权值,队列之间轮流调 度,保证每个队列都得到一定的服务时间。
全文摘要
一种基于优先级多连接提高网页浏览效率的方法,其特征在于,将传输协议建立的多个连接赋以优先级的特征,给重要的数据赋以较高的优先级,并把高优先级连接的数据优先传递到网络中去。本发明能够针对通过不同连接发送出去的用户消息提供一种有区别的服务,从而有效地改善了重要数据在端到端传输过程中的延迟。通过多连接优先级的设置,可以对用户感兴趣的内容,或者服务中较为重要的部分进行优先传输,对不同类型的数据传输提供不同的服务质量保证,从而提高了用户可感知的QoS需求,降低了用户可感知的时延,从而在端到端带宽有限的情况下,也能够为用户提供满意的服务。
文档编号H04L12/56GK101483599SQ200910077329
公开日2009年7月15日 申请日期2009年2月18日 优先权日2009年2月18日
发明者周华春, 张宏科, 冬 杨, 博 王, 泼 王, 平 董, 淼 薛 申请人:北京交通大学