一种基于单时隙动态优先级的带宽调度方法及系统

文档序号:25868332发布日期:2021-07-13 16:29阅读:99来源:国知局
一种基于单时隙动态优先级的带宽调度方法及系统

本发明属于计算机网络技术领域,具体涉及一种基于单时隙动态优先级的带宽调度方法及系统。



背景技术:

在各种科学,工程和商业领域中的大型应用程序产生了海量的数据,这些大数据经常都需要快速可靠的进行长距离传输。高性能网络通过带宽预留提供专用通道,已成为满足大数据传输需求的有前景的解决方案。通常,高性能网络的带宽调度器负责为用户计算出适当的网络路径,并分配需要的链路带宽。

高性能网络是具有带宽预留能力的网络,其中的带宽调度问题是一个极其重要的问题,直接关系到网络资源利用率和用户满意程度,特别是,很多科学应用任务需要可调度的、灵活的网络服务,而调度通过积攒请求来进行的带宽预留,达到更高的网络利用率。为了评估带宽调度算法的性能,应主要从用户请求成功率和网络的利用率来衡量算法优劣。

目前高性能网络带宽调度领域中比较常见的问题是为一批具有截止时间约束的传输请求计算可以为他们的传输任务预留的路径和带宽。常见的带宽调度算法会选择使用不同的带宽分配方式,针对特定的优化指标如预留成功率、请求传输完成时间、传输持续时间等,去提出更具有针对性的带宽调度算法来满足当前业务的需要。如zuo等人研究了在高性能网络中对多个请求在具有截止时间的约束下同时进行带宽调度的问题,以平均完成时间和传输时间最为指标提出了有效的启发式算法,但是算法对于无法完成全部需求数据量传输的请求是拒绝的。



技术实现要素:

本发明的目的在于提供一种基于单时隙动态优先级的带宽调度方法及系统,用以解决现有技术中中缺少最大化请求的完成率和网络带宽利用率为目标的周期性调度算法的问题。

为了实现上述任务,本发明采用以下技术方案:

一种基于单时隙动态优先级的带宽调度方法,包括如下步骤:

步骤1:获取所有传输请求,所述的每个传输请求包括源节点、目的节点、传输数据量、最大传输带宽、传输开始时隙和传输截止时隙;

将所有传输请求中最早的传输开始时隙作为时隙窗口的第一个时隙t0,将所有传输请求中最晚的传输截止时隙作为时隙窗口的最后一个时隙tn-1,构建时隙窗口,所述的时隙窗口包括n个时隙,n≥0;

步骤2:建立未处理集合upr、处理中集合pr、已完成集合fr和未完成集合ufr,并将所有集合置为空;

步骤3:将所有传输请求移至upr中,将时隙窗口中每个时隙对应的所有传输请求从第一个时隙起依次从upr移至pr,每移动一个时隙则对pr中的所有传输请求进行一次带宽分配,其中,将每次带宽分配后pr中所有剩余传输数据量为0的传输请求移至已完成集合fr,将每次带宽分配后pr中所有剩余传输数据量不为0的传输请求保留;

移动至upr为空时,对pr中所有传输请求进行最后一次带宽分配,将最后一次带宽分配后pr中所有剩余传输数据量为0的传输请求移至fr,将最后一次带宽分配后pr中所有剩余传输数据量不为0的传输请求移至ufr;

将fr中所有请求的预留带宽作为时隙窗口内完成传输需求的资源预留方案,将ufr中所有请求的预留带宽作为时隙窗口内未完成传输需求的资源预留方案;

其中,在时隙ti对pr进行带宽分配包括如下子步骤,i∈[1,n]:

步骤3.1:将upr中所有传输开始时隙为ti的传输请求从upr加入pr中;

步骤3.2:计算pr中所有传输请求的优先级,根据传输请求的优先级由大到小对pr中所有传输请求进行排序;

步骤3.3:根据pr中每个传输请求的源节点、目的节点、传输数据量和最大传输带宽采用dijkstra算法按照优先级排序依次计算pr中每个传输请求的最优路径和带宽,将每个传输请求的最优路径置为无效,所述的带宽满足最大带宽限制;

步骤3.4:根据pr中每个传输请求的带宽计算每个传输请求的剩余传输数据量,依据剩余传输数据量计算每个传输请求的预留带宽。

进一步的,步骤3.2中采用式ⅰ计算每个传输请求的优先级:

其中,gk表示传输请求rk的优先级,表示传输请求rk的剩余数据传输量,表示请求的传输开始时隙,表示请求的传输截止时隙,k表示传输请求的序号,k∈[1,k],k为传输请求的总数,i表示时隙的序号。

进一步的,步骤3.3中,计算pr中第k个传输请求rk的预留带宽包括如下子步骤:

步骤a:获取rk的源节点、目的节点、传输数据量和最大传输带宽,采用dijkstra算法计算rk的最优路径p和最优路径对应的带宽b,并将p经过的链路置为无效;

步骤b:计算rk的剩余传输数据量并进行判断:

则获得rk的预留带宽b且令其中,

则返回步骤a重新寻找p以外的最优路径,至无法找到最优路径为止。

一种基于单时隙动态优先级的带宽调度系统,包括请求采集及划分模块、初始化模块和带宽分配模块;

所述的请求采集及划分模块用于获取所有传输请求,所述的每个传输请求包括源节点、目的节点、传输数据量、最大传输带宽、传输开始时隙和传输截止时隙;将所有传输请求中最早的传输开始时隙作为时隙窗口的第一个时隙t0,将所有传输请求中最晚的传输截止时隙作为时隙窗口的最后一个时隙tn-1,构建时隙窗口,所述的时隙窗口包括n个时隙,n≥0;

所述的初始化模块用于建立未处理集合upr、处理中集合pr、已完成集合fr和未完成集合ufr,并将所有集合置为空;

所述的带宽分配模块用于将所有传输请求移至upr中,将时隙窗口中每个时隙对应的所有传输请求从第一个时隙起依次从upr移至pr,每移动一个时隙则对pr中的所有传输请求进行一次带宽分配,其中,将每次带宽分配后pr中所有剩余传输数据量为0的传输请求移至已完成集合fr,将每次带宽分配后pr中所有剩余传输数据量不为0的传输请求保留;

移动至upr为空时,对pr中所有传输请求进行最后一次带宽分配,将最后一次带宽分配后pr中所有剩余传输数据量为0的传输请求移至fr,将最后一次带宽分配后pr中所有剩余传输数据量不为0的传输请求移至ufr;

将fr中所有请求的预留带宽作为时隙窗口内完成传输需求的资源预留方案,将ufr中所有请求的预留带宽作为时隙窗口内未完成传输需求的资源预留方案;

其中,在时隙ti对pr进行带宽分配包括如下子模块,i∈[1,n]:

第一子模块用于将upr中所有传输开始时隙为ti的传输请求从upr加入pr中;

第二子模块用于计算pr中所有传输请求的优先级,根据传输请求的优先级由大到小对pr中所有传输请求进行排序;

第三子模块用于根据pr中每个传输请求的源节点、目的节点、传输数据量和最大传输带宽采用dijkstra算法按照优先级排序依次计算pr中每个传输请求的最优路径和带宽,将每个传输请求的最优路径置为无效,所述的带宽满足最大带宽限制;

第四子模块用于根据pr中每个传输请求的带宽计算每个传输请求的剩余传输数据量,依据剩余传输数据量计算每个传输请求的预留带宽。

进一步的,第二子模块中采用式ⅰ每个传输请求的优先级:

其中,gk表示传输请求rk的优先级,表示传输请求rk的剩余数据传输量,表示请求的传输开始时隙,表示请求的传输截止时隙,k表示传输请求的序号,k∈[1,k],k为传输请求的总数,i表示时隙的序号。

进一步的,第三子模块中,计算pr中第k个传输请求rk的预留带宽包括如下子步骤:

步骤a:获取rk的源节点、目的节点、传输数据量和最大传输带宽,采用dijkstra算法计算rk的最优路径p和最优路径对应的带宽b',并将p经过的链路置为无效;

步骤b:计算rk的剩余传输数据量并进行判断:

则获得rk的预留带宽b且令其中,

则返回步骤a重新寻找p以外的最优路径,至无法找到最优路径为止。

本发明与现有技术相比具有以下技术特点:

(1)本发明根据特定的优先级更新策略,将为请求分配资源的权重分散到单个时隙。根据请求的急迫程度,更加细粒度地将资源分配给不同的请求,从而提高请求在灵活截止时间前完成传输的成功率。

(2)本发明在网络负载较大、资源不足的情况下,可以尽肯能将更多的流量容纳到网络中,同时兼顾请求在灵活截止时间前完成传输的成功率,更充分地利用网络,在当前周期内尽可能传输更多的数据量。

(3)本发明的算法是针对具有灵活截止时间特性的请求设计出的以最大化请求的完成率和网络带宽利用率为目标的周期性调度算法,因为针对单时隙进行更加细粒度的计算,同时针对的请求是允许得到未满足全部需求的预留结果,所以调度效果在两个指标上都具有优势。

附图说明

图1为高性能网络拓扑图;

图2为本发明的单时隙动态优先级带宽预留算法与经典vbvp带宽预留算法的成功率对比图;

图3为本发明的单时隙动态优先级带宽预留算法与经典vbvp带宽预留算法的传输率对比图。

具体实施方式

首先对发明中出现的技术词语进行介绍:

传输请求:本发明中提到的请求是指具有灵活截止时间特性预留请求fd-brr。该请求包含源节点vs、目的节点vd、传输数据量d、最大传输带宽bmax、传输最早开始时隙ts和截止时隙te

传输率:指请求在截止时间前实际可以传输的数据量比上请求需求的传输量,所有请求的传输率之和体现的是网络资源的利用率。

在本实施例中公开了一种基于单时隙动态优先级的带宽调度方法,包括如下步骤:

步骤1:获取所有传输请求,所述的每个传输请求包括源节点、目的节点、传输数据量、最大传输带宽、传输开始时隙和传输截止时隙;

将所有传输请求中最早的传输开始时隙作为时隙窗口的第一个时隙t0,将所有传输请求中最晚的传输截止时隙作为时隙窗口的最后一个时隙tn-1,构建时隙窗口,所述的时隙窗口包括n个时隙,n≥0;

步骤2:建立未处理集合upr、处理中集合pr、已完成集合fr和未完成集合ufr,并将所有集合置为空;

步骤3:将所有传输请求移至upr中,将时隙窗口中每个时隙对应的所有传输请求从第一个时隙起依次从upr移至pr,每移动一个时隙则对pr中的所有传输请求进行一次带宽分配,其中,将每次带宽分配后pr中所有剩余传输数据量为0的传输请求移至已完成集合fr,将每次带宽分配后pr中所有剩余传输数据量不为0的传输请求保留;

移动至upr为空时,对pr中所有传输请求进行最后一次带宽分配,将最后一次带宽分配后pr中所有剩余传输数据量为0的传输请求移至fr,将最后一次带宽分配后pr中所有剩余传输数据量不为0的传输请求移至ufr;

将fr中所有请求的预留带宽作为时隙窗口内完成传输需求的资源预留方案,将ufr中所有请求的预留带宽作为时隙窗口内未完成传输需求的资源预留方案;

其中,在时隙ti对pr进行带宽分配包括如下子步骤,i∈[1,n]:

步骤3.1:将upr中所有传输开始时隙为ti的传输请求从upr加入pr中;

步骤3.2:计算pr中所有传输请求的优先级,根据传输请求的优先级由大到小对pr中所有传输请求进行排序;

步骤3.3:根据pr中每个传输请求的源节点、目的节点、传输数据量和最大传输带宽采用dijkstra算法按照优先级排序依次计算pr中每个传输请求的最优路径和带宽,将每个传输请求的最优路径置为无效,所述的带宽满足最大带宽限制;

步骤3.4:根据pr中每个传输请求的带宽计算每个传输请求的剩余传输数据量,依据剩余传输数据量计算每个传输请求的预留带宽。

具体的,步骤3.2中采用式ⅰ计算每个传输请求的优先级:

其中,gk表示传输请求rk的优先级,表示传输请求rk的剩余数据传输量,表示请求的传输开始时隙,表示请求的传输截止时隙,k表示传输请求的序号,k∈[1,k],k为传输请求的总数,i表示时隙的序号。

具体的,步骤3.3中,计算pr中第k个传输请求rk的预留带宽包括如下子步骤:

步骤a:获取rk的源节点、目的节点、传输数据量和最大传输带宽,采用dijkstra算法计算rk的最优路径p和最优路径对应的带宽b,并将p经过的链路置为无效;

步骤b:计算rk的剩余传输数据量并进行判断:

则获得rk的预留带宽b且令其中,

则返回步骤a重新寻找p以外的最优路径,至无法找到最优路径为止。

本发明通过在每个时隙去计算涉及到当前时隙的所有请求的预留带宽信息并更新请求优先级,在整个时隙窗口涉及的时隙范围内从小到大依次完成每个时隙的计算,后面时隙的计算会被前面时隙中的计算结果影响,通过整个过程来完成整个时隙窗口中所有请求的预留信息的计算。

具体的,时隙的拓扑信息包含节点和链路信息、链路带宽预留信息等。

具体的,本发明中的dijkstra算法在传统基础上的改进为:

在寻找路径的同时记录最短路径的带宽,且路径的带宽为路径经过的所有链路带宽中的最小值,如果有多条相同跳数的路径则选择路径带宽最大的,将最短路径或最短路径中路径带宽最大的路径作为最优路径。

具体的,因为请求存在最大带宽限制,所以将带宽更新至不超过最大带宽限制即b'=min(b',bmax),bmax表示最大带宽限制。

具体的,未完成集合ufr存储有没有满足需求并且当前时隙为请求的截止时隙的请求,即其中表示请求rk的截止时隙,即ufr中的请求在本次带宽调度计算中已经无法获取到更多的资源了等待下个时隙窗口的资源分配。

本实施例还公开了一种基于单时隙动态优先级的带宽调度系统,包括请求采集及划分模块、初始化模块和带宽分配模块;

所述的请求采集及划分模块用于获取所有传输请求,所述的每个传输请求包括源节点、目的节点、传输数据量、最大传输带宽、传输开始时隙和传输截止时隙;将所有传输请求中最早的传输开始时隙作为时隙窗口的第一个时隙t0,将所有传输请求中最晚的传输截止时隙作为时隙窗口的最后一个时隙tn-1,构建时隙窗口,所述的时隙窗口包括n个时隙,n≥0;

所述的初始化模块用于建立未处理集合upr、处理中集合pr、已完成集合fr和未完成集合ufr,并将所有集合置为空;

所述的带宽分配模块用于将所有传输请求移至upr中,将时隙窗口中每个时隙对应的所有传输请求从第一个时隙起依次从upr移至pr,每移动一个时隙则对pr中的所有传输请求进行一次带宽分配,其中,将每次带宽分配后pr中所有剩余传输数据量为0的传输请求移至已完成集合fr,将每次带宽分配后pr中所有剩余传输数据量不为0的传输请求保留;

移动至upr为空时,对pr中所有传输请求进行最后一次带宽分配,将最后一次带宽分配后pr中所有剩余传输数据量为0的传输请求移至fr,将最后一次带宽分配后pr中所有剩余传输数据量不为0的传输请求移至ufr;

将fr中所有请求的预留带宽作为时隙窗口内完成传输需求的资源预留方案,将ufr中所有请求的预留带宽作为时隙窗口内未完成传输需求的资源预留方案;

其中,在时隙ti对pr进行带宽分配包括如下子模块,i∈[1,n]:

第一子模块用于将upr中所有传输开始时隙为ti的传输请求从upr加入pr中;

第二子模块用于计算pr中所有传输请求的优先级,根据传输请求的优先级由大到小对pr中所有传输请求进行排序;

第三子模块用于根据pr中每个传输请求的源节点、目的节点、传输数据量和最大传输带宽采用dijkstra算法按照优先级排序依次计算pr中每个传输请求的最优路径和带宽,将每个传输请求的最优路径置为无效,所述的带宽满足最大带宽限制;

第四子模块用于根据pr中每个传输请求的带宽计算每个传输请求的剩余传输数据量,依据剩余传输数据量计算每个传输请求的预留带宽。

具体的,第二子模块中采用式ⅰ每个传输请求的优先级:

其中,gk表示传输请求rk的优先级,表示传输请求rk的剩余数据传输量,表示请求的传输开始时隙,表示请求的传输截止时隙,k表示传输请求的序号,k∈[1,k],k为传输请求的总数,i表示时隙的序号。

具体的,第三子模块中,计算pr中第k个传输请求rk的预留带宽包括如下子步骤:

步骤a:获取rk的源节点、目的节点、传输数据量和最大传输带宽,采用dijkstra算法计算rk的最优路径p和最优路径对应的带宽b',并将p经过的链路置为无效;

步骤b:计算rk的剩余传输数据量并进行判断:

则获得rk的预留带宽b且令其中,即降低带宽以至于刚好满足需求,然后将置为零,结束请求rk的带宽分配过程;

则返回步骤a重新寻找p以外的最优路径,至无法找到最优路径为止;即不断重复寻找最短路径并将链路置为无效,直到满足数据传输需求或者无法找到具有剩余带宽的路径为止。

实施例1

在本实施例中公开了一种基于单时隙动态优先级的带宽调度方法,在上述实施例的基础上,公开了如下技术特征:

对于一定时间内收集到的一批传输请求移到未处理集合upr中,传输请求中最早可以开始传输的时隙作为整个计算窗口的第一个时隙即t0,所有传输请求中最晚截止传输的时隙最为整个计算窗口的最后一个时隙即t8,构建时隙窗口,并将时隙窗口划分为9个时隙,从t0到t8,依次处理当前时隙涉及到的传输请求;

表1

从t0时隙开始计算每个时隙设计的传输请求需要被分配的资源,当计算t0的预留资源时,upr中存在最早开始时隙为t0的传输请求r2和r4,将其从upr移到处理中集合pr中。对于处理中集合pr的计算过程如下:

1)将这两个传输请求第一次加入到pr中,根据初始化他们的优先级分别为-14和-12.5。根据优先级由大到小对pr中的两个传输请求进行排序,r4的优先级更高。

2)获取时隙的拓扑信息,其中包含节点和链路信息、链路带宽预留信息等。对每个时隙的网络资源进行分配。先对传输请求r4分配预留的网络资源,在t0时隙的网络中通过基于dijkstra的最短路径最大带宽算法找到传输请求r4的源节点到目的节点的一条剩余带宽最大的路径,即找到一条节点1到节点2之间的路径且路径上的链路中最小带宽值最大。找到一条路径表示为1-2,带宽要小于带宽限制,则可预留9个单位。还不足以完成所有传输量,则继续寻找一条路径将上一条选用的路径从当前计算用拓扑图中标记为无效,通过最短路径最大带宽算法寻找另一条路径为1-0-2,带宽可预留9个单位。此时还是无法完成传输请求传输所有数据量的需求,同时当前时隙网络中找不到对于当前传输请求的可用资源了即没有对应的非零带宽的路径,将已经找到的两条预留信息更新到预留表中。因为t0时隙不是传输请求r4可用的最后一个时隙,所以传输请求r4继续在pr中等待之后的计算。接下来为传输请求r2预留网络资源,在t0时隙从节点0到节点2,寻找到的两条路径为0-2、0-1-2,可预留带宽都为1个单位,当前时隙无法为r2分配到跟多资源且当前时隙不是r2可以传输的最后一个时隙,所以继续留在pr集合中,将两条预留信息更新到预留表中。

接下来在t1时隙的网络中分配资源。把从t1时隙可以开始传输的传输请求r1和r3加入pr。对pr中的四个传输请求的优先级进行更新和初始化,由大到小分别为r4:-3.5、r3:-8、r2:-13、r1:-40。先为r4分配资源,在t1时隙从节点1到节点2,寻找到的一条路径为1-2,可预留带宽7个单位即可完成r4的传输需求,更新r4的预留信息,将r4标记为已完成移入完成传输集合fr。接下来为剩下的三个传输请求用同样的方式分配资源:为r3分配路径0-1和0-2-1,带宽分别为8和3个单位,还未完成传输;为r2分配路径0-2,带宽为7个单位,未完成传输需求;没有为r1分配到资源。

把每个时隙的资源按照上述的方式分配完成,就得到了整个时隙窗口内的带宽预留结果,fr中保留的是满足了在截止时间前完成传输需求的传输请求和对应的资源预留方案,ufr为未满足需求的传输请求和对应的资源预留方案。每个传输请求的预留结果在表2中展示。

表2

在此实施例中采用此技术方案进行带宽调度,能够满足数据传输时的成功率和数据传输率的最大化。

实施例2

在本实施例中,通过大量仿真实验比较单时隙动态优先级算法和经典vbvp算法的调度性能。在实验平台上使用esnet数据建立仿真的网络拓扑。在[0,19]时隙中随机产生多个fd-brr,使其源节点和目的节点随机,最大带宽在[6,9]之间随机取值,开始时间ts在[0,19]内取值,截止时间te在[ts,19]内取值,平均一个时隙要传输的数据量ds在[6,12]内取值则总数据量为d且d=ds·(te-ts+1)。总共进行7组实验,每组实验的传输请求数不同。每组实验进行100次,结果取平均值。

对比成功率指标,如图2所示,单时隙动态优先级算法在不同传输请求数量的情况下,成功率都会更高。对比传输率指标,如图3所示,单时隙动态优先级算法在不同传输请求数量的情况下,传输率也会更高。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1