一种流调度方法,包括如下步骤:对于请求/响应,发起对应的流,所述流带有优先级信息和对应网页元素大小信息;根据当前流的优先级以及各条路径当前已经被分配的流的优先级,计算当前流被分配到各条路径上可获得的带宽;根据当前流在每条路径上可获得的带宽以及每条路径的单向时延将当前流的数据量均衡分配到一条或多条路径上;各路径基于分配结果对其上的数据进行发送。将流的优先级与调度方法结合保证了在关键流与其他流共享路径时,其带宽资源不被其他流过分抢占。在多条路径的场景下,在流传输的起始阶段就能同时利用多条路径进行传输,降低了单条路径上产生突发流量而导致接收端乱序的概率。
A flow scheduling method
【技术实现步骤摘要】
一种流调度方法
本专利技术涉及通信
,具体地说,涉及通信技术中数据传输领域对应的传输层的流的调度方法,更具体地说,涉及一种流调度方法。
技术介绍
万维网是一个有许多相互连接的超文本组成的系统,作为最重要的互联网应用,万维网(WorldWideWeb,简称WWW)成为了目前互联网信息传播的主要媒介。据统计,截止2017年12月底,我国互联网用户已达7.72亿,普及率为55.8%。网页是万维网中的基本信息单位,它由文字、图片、声音、视频等多种媒体信息组成,这些信息统称为网页元素。随着网页内容丰富程度大大增加,组成整个网页的元素的数量和分布范围也大幅增长,网页加载时延的高低会严重影响用户的服务体验并决定网络服务的用户数量。对于时延敏感型的网络服务来说,即使很小的时延也会带来较大的损失。在浏览器中,以电商巨头亚马逊为例,100ms(毫秒)的时延会造成1%货物销售量的降低;一旦谷歌的搜索页面时间增加0.5ms,则会降低其20%的访问流量;对于一些网络应用程序如在线游戏、视频聊天、实时支付、金融交易等,网络时延的高低是满足其服务质量最为重要的指标之一。为了减少网络时延,提高服务质量,现有技术从不同层次对网络协议进行了一系列的优化。优化主要针对两个问题:第一,队头阻塞(Head-of-lineblocking)问题。在应用层,队头阻塞问题指的是HTTP请求或者响应必须遵循一定的顺序,如果前一个请求或者响应没有完成,则不能进行下一个。例如,在HTTP/1.0协议中,如果浏览器需要从服务器请求多个网页元素,HTTP/1.0需要对于每个网页元素请求都重新建立一个TCP连接,并且等到接收到对应的网页元素后才能进行下一次请求,由于大部分的网页元素都很小,所需传输时间很短,而TCP每次建立连接之后都要经历慢启动来探测网络中可用的传输带宽,这样的做法使得传输的效率很低。在HTTP/1.1协议中,在连续的请求时保持TCP连接打开的状态,不用等到收取响应后再请求下一个元素,这种技术被称为“流水线”(pipelining),然而HTTP/1.1也存在一些问题,虽然它可以在一个TCP连接上连续请求,但是所有的响应必须按照请求发送的顺序来按序接收,因此单个慢响应可以阻塞其后的所有响应,为了解决这个问题,SPDY(HTTP/2协议的前身)采取了多路复用(multiplexing)的方法,即多个请求/响应共享一个TCP连接,且它们的传输是并行的方式,在应用层不会相互产生队头阻塞。在传输层,队头阻塞的问题是指,由于SPDY协议在一条TCP连接上进行多路复用,而TCP只支持顺序传输,因此一个请求的数据缺失会影响到其他请求数据的传送。第二,网络内容的优先级设置。如果无差别地传输所有请求/响应,在带宽有限的情况下,一些关键请求可能会被阻塞,因此,在应用层协议中,SPDY协议引入了请求优先级的概念,使得优先级高的请求/响应得到更多的带宽资源,从而有针对性地优化了关键请求的时延。在传输层也有工作针对网络内容的优先级进行了协议的改进,例如,MulTCP通过更改TCP拥塞控制的参数来实现资源成比例共享;pTCP使用与TCP连接功能相同的微流,通过控制微流的数量来提供优先级的划分。然而,在TCP层面做优先级划分的工作会给应用层带来管理连接和分配资源上的负担,作为一个多路复用的协议,QUIC可以在传输层提供对多个流的管理和资源分配功能,这一特性为不同流的优先级的划分提供了可能。为了降低网页加载时延,提高用户体验,Google近年推出了一种新型传输层协议QUIC(QuickUDPInternetConnections,快速UDP互联网连接)。QUIC协议对传输层进行了多路复用:在建立了客户端到服务器之间的基本连接之后,对于每个网页元素的传输,它都单独提供一个“流”(Stream)进行数据传输,流的开启和关闭都是轻量级的,不会影响其所属连接且流与流相互之间独立,不影响各自的传输。在QUIC的基础上又有学者提出了把传输时所使用的一条物理链路扩展到多条物理链路,这就又形成了MPQUIC(MultipathQUIC)协议。现有技术中,在传输过程中通过MPQUIC协议对流进行调度主要包括两种方式,一种是通过LRF(Lowest-RTT-First,最小往返时延优先)调度器对流进行调度,另一种是通过SA-ECF调度器进行调度;下面对两种调度器对流的调度过程进行说明。采用LRF(Lowest-RTT-First,最小往返时延优先)调度器进行调度:在传输数据时,LRF调度器将所有流视为平等的关系,以轮询的方式对它们的数据无差别地进行打包,对于每个打包好的数据包,选择当前RTT(往返时延)最小的链路进行传输。在多路径的场景中,LRF首先使用RTT最小的路径直到填满其发送窗口为止,然后使用RTT第二小的路径,以此类推。采用SA-ECF调度器进行调度:在传输数据时,SA-ECF调度器从现有多条路径当中选择两条路径,一条为不一定有可用传输空间的RTT最小路径;另一条为保证有传输空间的RTT最小路径。在传输每个数据包时,SA-ECF调度器根据该数据包对应的流所剩下的待传输数据量和路径参数信息,估计该流在每条路径所耗费的传输时间,并为此数据包选择一条估计时间最短的路径。这一做法是为了避免当前数据包在一条可能会影响流的完成时间的路径上传输。但是以上两种调度器,在对流进行调度时也都存在相应的缺陷:针对LRF调度器,LRF调度器在对流进行调度时没有考虑HTTP/2的优先级设置,因为没有考虑优先级设置,所有就很有可能导致关键流的完成时间增加。此外,由于不同的路径可能存在不同的特性,如延迟、带宽等。例如,WiFi和MBB(Mobilebroadband,移动宽带)这两种不同的网络路径间的RTT差异是常见的,而且差异很大。当路径的RTT差异很大时,LRF调度器所使用的调度方式,使得数据从不同的路径发送到接收端时,存在接收端的接收乱序问题,接收方需要更大的缓存和更多时间来等待慢路径上的数据。针对SA-ECF调度器,SA-ECF调度器在对流进行调度时,不同的流首先会竞争快路径,等到快路径被占满发送窗口时,才使用慢路径,在这种情况下,会导致与LRF调度器同样的接收端乱序的问题。此外,在网页的传输过程中,每个网页元素都对应MPQUIC协议中的一个流,不同种类的网页元素偏好不同的路径。例如HTML文档适合在RTT较低的路径上进行传输,而图像适合在带宽较高的路径上进行传输。然而,SA-ECF调度器的调度方法考虑的是每个数据包的调度可能会对当前流的完成时间的影响,其完成时间估计是基于当前剩余数据量来计算的,并没有从流的角度考虑资源的分配问题,这就很可能导致流在不合适的路径上传输。
技术实现思路
因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种流调度方法以及基于此方法对流进行调度的流调度器。本专利技术的目的是通过以下技术方案实现的:根据本专利技术的第一个方面,本专利技术提供一种流调度方法,包括如下步骤:S1、对于请求/响应,本文档来自技高网...
【技术保护点】
1.一种流调度方法,其特征在于,包括:/nS1、对于请求/响应,发起对应的流,所述流带有优先级信息和对应网页元素大小信息;/nS2、根据当前流的优先级以及各条路径当前已经被分配的流的优先级,计算当前流被分配到各条路径上可获得的带宽,其中,对于所述流采用先到先处理的模式,对于同时到达的多个流,根据其各自对应的优先级,按照优先级从高到低进行处理;/nS3、根据当前流在每条路径上可获得的带宽以及每条路径的单向时延将当前流的数据量均衡分配到一条或多条路径上,以使被分配在不同路径上的同一个流的数据量的总传输时间最小;/nS4、各路径基于分配结果对其上的数据进行发送。/n
【技术特征摘要】
1.一种流调度方法,其特征在于,包括:
S1、对于请求/响应,发起对应的流,所述流带有优先级信息和对应网页元素大小信息;
S2、根据当前流的优先级以及各条路径当前已经被分配的流的优先级,计算当前流被分配到各条路径上可获得的带宽,其中,对于所述流采用先到先处理的模式,对于同时到达的多个流,根据其各自对应的优先级,按照优先级从高到低进行处理;
S3、根据当前流在每条路径上可获得的带宽以及每条路径的单向时延将当前流的数据量均衡分配到一条或多条路径上,以使被分配在不同路径上的同一个流的数据量的总传输时间最小;
S4、各路径基于分配结果对其上的数据进行发送。
2.根据权利要求1所述的一种流调度方法,其特征在于,计算当前流被分配到各条路径上可获得的带宽,包括:
S21、针对所有路径,分别计算已经被分配到该路径上的数据所属的流与当前流的优先级之和;
S22、根据当前流的优先级在优先级之和中的占比计算得到当前流在该条路径上可获得的带宽,其可获得的带宽在该条路径总带宽中的占比与其优先级在优先级之和中的占比一致。
3.根据权利要求1所述的一种流调度方法,其特征在于,所述步骤S3包括:
S31、获取所有路径的单向时延,并将各条路径按照其对应单向时延进行排列;
S32、从单向时延最小的路径开始,依次两两计算相邻路径的单向时延差,每计算一次单向时延差进行一次数据分配,在每次数据分配时,将当前流所包含的部分数据分配到当次计算中单向时延较小的路径以及所有单向时延小于该条路径的其他路径上,每条路径上被分配的数据量由本次计算的单向时延差与当前流...
【专利技术属性】
技术研发人员:刘志勇,石翔,张法,王林,周碧玉,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。