基于服务等级协议的时间片散列调度方法转让专利

申请号 : CN200810243242.8

文献号 : CN101442495B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张登银程春玲李正吴超

申请人 : 南京邮电大学

摘要 :

基于服务等级协议的时间片散列调度方法包括时间片描述机制、时间片的快速预排法和综合QoS参数的动态队列权重,能够合理分配资源,确保服务质量,达到整体精确的QoS优化和SLA保障;本方法中提出时间片描述机制,是为了精确保障各个业务类的时延、抖动、带宽、丢包率等QoS参数;提出快照法预排,是为了在一段时间内预分配资源,提高各个队列的总体服务质量;为了克服实际网络情况变化带来的影响,提出综合QoS参数的动态队列权重,即根据当前实际的路由器资源和队列状况动态调整队列的权重。本调度方法提出时间片描述机制,通过对时间片的预排和动态调整,精确保证QoS的多种参数。

权利要求 :

1.一种基于服务等级协议的时间片散列调度方法,其特征在于该方法包括时间片描述机制、时间片的快速预排方法和综合QoS参数的动态队列权重,能够合理分配资源,确保服务质量,达到整体精确的QoS优化和SLA保障;该方法所包含的步骤为:步骤1).对路由器上的所有业务队列,根据SLA映射的QoS参数,计算静态队列权重wS;

步骤2).判断路由器上是否有等待预排的队列,即队列长度大于0的队列,如果没有,转步骤23),否则继续;

步骤3).根据当前路由器资源,对所有等待预排的队列计算一个周期T内可分配的时间片个数,设第i个队列的时间片数为Mi;

步骤4).读取一个待预排的队列i,从时间片分布轴上从头开始查找出第一个为空的位置,插入该队列第一个时间片,且使队列i的时间片数Mi减1;

步骤5).为队列i计算出下一个时间片的插入位置:下一个时间片与当前时间片间隔 个时间片,这里di为队列i所对应业务等级在SLA中签订的最小时延,t为标准时间片的大小;判断该位置是否空闲,若不空闲,转步骤7);空闲,则继续;

步骤6).插入队列i的时间片,转步骤10);

步骤7).判断此队列是否为延时敏感的队列,若不是敏感队列,转步骤9);

步骤8).从冲突点向前查找,找出离冲突点最近的空位点插入时间片,转步骤10);

步骤9).从冲突点向后查找,找出离冲突点最近的空位点插入时间片;

步骤10).使队列i的时间片数Mi减1,并判断Mi是否大于0,如果是,则转步骤5);

步骤11).判断是否有等待预排时间片的队列,如果有,转步骤4);没有,则继续;

步骤12).从当前时刻开始,按已排列好的时间片顺序对业务队列进行调度;

步骤13).判断是否到达一个周期T,若未达到,转步骤17);若到达一个周期T,继续;

步骤14).根据当前路由器资源和队列状态计算所有队列的动态权重;判断是否到达时间间隔10T,若已到达时间间隔10T,重置周期计数器,转步骤2);

步骤15).判断处于非正常状态的队列数与总队列数的比值是否达到快照更新触发阀值V,若达到快照更新触发阀值V,转步骤2);

步骤16).本周期T沿用上一个周期T的快照,转步骤12);

步骤17).判断当前是否出现空时间片且空时间片与标准时间片的比值达到转让阀值R,若是,则转步骤19);

步骤18).判断是否有队列出现突发抢占事件,若有,则选择一个权重最高的队列,转步骤20);否则,转步骤12);

步骤19).挑选当前权重最高的队列,占用该空时间片,转步骤12);

步骤20).判断当前标准时间片是否执行完成,若未完成,等待该时间片执行完成;

步骤21).抢占当前时间片;

步骤22).判断是否抢占超时,若超时,转步骤12);若未超时,判断抢占事件是否完成,若完成,转步骤12),若未完成,转步骤21);

步骤23).全过程结束;

计算队列的权重方式为:

定义队列的权重W以队列对应业务在SLA中签订的QoS参数为基础,根据当前队列长度动态调整,其值为静态权重wS和动态权重wD之和,即:W=wS+wD

=f(d,j,b)+h(Li)

其中,f、h表示函数名,d、j、b、Li分别表示队列所对应业务签订的最小时延、最小抖动、最大带宽和队列预警长度差;

在静态权重wS的计算公式中主要考虑队列所对应业务的最小时延d、最小抖动j和最大带宽b三个SLA参数。为了保证公平性,采用通过ISP得到的所有用户的时延、抖动、带宽统计平均值 由于时延、抖动与权重成反比,而带宽与权重成正比,为了反应这种关系,所以定义:其中α、β、γ分别为时延、抖动、带宽的数量级调节系数。由于 三个数值的数量级可能会有很大的差异,所以为了权重计算的公平性,引入数量级调节系数,使 能够处于相同的数量级;

在动态权重wD的计算公式中主要考虑队列的实时拥塞情况,即考虑队列预警长度差 为队列的当前队列长度 减去队列拥塞阀值θ2与队列长度上限 之积,即 i表示队列序号,我们定义:

WD=h(Li)

=ρ×Li;

其中ρ为微调系数,由于队列权重是在保证各个业务QoS参数的大前提下,兼顾各个队列的实时突发情况,所以定义微调系数ρ,使函数h(Li)的值比函数f(d,j,b)的值小一个数量级,队列预警长度差Li的取值可以为正数或负数,则动态权重wD也可以为正或为负,这样,就可以基于静态权重,在一定范围内微调各个队列的权重,使各个队列的时间片预排更为合理。

说明书 :

基于服务等级协议的时间片散列调度方法

技术领域

[0001] 本发明是一种优化的路由器队列调度方法,主要用于解决队列中的数据包优化转发的问题,属于QoS(服务质量)保障技术领域。

背景技术

[0002] SLA(Service Level Agreement为“服务等级协议”)是关于网络服务供应商(ISP)和用户间的一份合同,其中定义了服务类型、服务质量和客户费用等术语。网络服务供应商和用户间签订SLA,就是要按照SLA的具体条款来保证用户的服务质量。同时,用户根据SLA的具体条款来付费。
[0003] 随着Internet规模的不断增大,各种各样的网络服务争相涌现,先进的多媒体系统层出不穷。由于实时业务对网络传输时延、抖动、丢包率等特性较为敏感,当网络上有突发流量时,实时业务就会受到很大影响;另一方面,多媒体业务占用了大量的带宽,这样,现有网络要保证的关键业务就难以得到可靠的传输。
[0004] 解决这些问题的最简单的办法当然是增大带宽,但是这种方法代价高昂,可行性不高。这就要求网络管理者对不同的服务区别管理,而不能对所有的数据包一视同仁。
[0005] 队列调度机制作为IP网络QoS的实现机制之一,对数据包进行合理的调度,对含有内容标识的数据包进行优化,并对其中特定的数据包赋以较高的优先级,从而加速传输的进程,并实现实时交互。路由器中调度算法所要完成的功能就是如何从多个(或一个)队列中选择下一个待转发的分组。
[0006] 一个有效的队列调度算法应达到的性能指标主要有:公平性、时延特性、对恶意业务流的隔离能力、链路带宽的利用率和复杂性等,前4个指标与QoS密切相关。基于SLA的时间片散列调度算法充分考虑以上几个性能指标。
[0007] 与本发明相关的现有技术分析:
[0008] 当前,成熟的队列调度算法有FIFO、PQ、CQ、WFQ、CBWFQ、LLQ等。它们只考虑带宽这个QoS参数,以带宽来间接保障时延、抖动、丢包率等QoS参数;而且都是根据事先确定的算法对当前情况作出处理,不对以后的情况作出预判;也不能根据实际的网络负载状况来动态改变调度策略。
[0009] 其中,CBWFQ队列调度算法是思科路由器的主要调度算法,它是一种动态的调度算法,根据事先确定的算法对当前情况作出处理,不对以后的情况作出预判。CBWFQ算法为每个类分配一个队列,每个队列规定了带宽、权重、最大数据包限制。权重是基于带宽确定的,即CBWFQ只考虑了带宽这个QoS参数。CBWFQ算法中的权重是静态的,根据设定好的带宽确定权重后,就不再改变。当某个队列处于空闲状态,会导致处理资源的浪费。

发明内容

[0010] 技术问题:本发明的目的是提供一种基于SLA的时间片散列调度方法,来解决路由器内部QoS保障的问题。与传统的队列调度算法不同,本调度方法提出时间片描述机制,通过对时间片的预排和动态调整,精确保证QoS的多种参数。
[0011] 技术方案:本方法中提出时间片描述机制,是为了精确保障各个业务类的时延、抖动、带宽、丢包率等QoS参数;提出快照法预排,是为了在一段时间内预分配资源,提高各个队列的总体服务质量;为了克服实际网络情况变化带来的影响,提出综合QoS参数的动态队列权重,即根据当前实际的路由器资源和队列状况动态调整队列的权重。
[0012] 各种业务类有自己的特性,它们对QoS参数的要求也各有侧重。例如,高清晰视频业务,要求带宽大、时延小、抖动小;FTP业务,要求带宽大,而对时延和抖动的要求不严格。各种业务对QoS的具体需求,在SLA中已经做了规定。本算法中,标准时间片的大小固定。
在一个标准时间片里,转发的数据包流量是相同的。在时间轴上,带宽表现为队列分到的标准时间片的个数;时延表现为某个队列的两个相邻时间片之间的最大间隔大小;抖动表现为某一队列的相邻时间片之间间隔的均匀程度,QoS参数与时间片分布的对应关系如图1所示。
[0013] 基于服务等级协议的时间片散列调度方法包括时间片描述机制、时间片的快速预排方法和综合QoS参数的动态队列权重,能够合理分配资源,确保服务质量,达到整体精确的QoS优化和SLA保障;该方法所包含的步骤为:
[0014] 步骤1).对路由器上的所有业务队列,根据SLA映射的QoS参数,计算静态队列权重wS;
[0015] 步骤2).判断路由器上是否有等待预排的队列,即队列长度大于0的队列,如果没有,转步骤23),否则继续;
[0016] 步骤3).根据当前路由器资源,对所有等待预排的队列计算可分配的时间片个数,设第i个队列的时间片数为Mi;
[0017] 步骤4).读取一个待预排的队列i,从时间片分布轴上从头开始查找出第一个为空的位置,插入该队列第一个时间片,且使队列i的时间片数Mi减1;
[0018] 步骤5).为队列i计算出下一个时间片的插入位置:下一个时间片与当前时间片间隔 个时间片,这里di为队列i所对应业务在SLA中签订的最小时延,t为标准时间片的大小;判断该位置是否空闲,若不空闲,转步骤7);空闲,则继续;
[0019] 步骤6).插入队列i的时间片,转步骤10);
[0020] 步骤7).判断此队列是否为延时敏感的队列,若不是敏感队列,转步骤9);
[0021] 步骤8).从冲突点向前查找,找出离冲突点最近的空位点插入时间片,转步骤10);
[0022] 步骤9).从冲突点向后查找,找出离冲突点最近的空位点插入时间片;
[0023] 步骤10).使队列i的时间片数Mi减1,并判断Mi是否大于0,如果是,则转步骤5);
[0024] 步骤11).判断是否有等待预排时间片的队列,如果有,转步骤4);没有,则继续;
[0025] 步骤12).从当前时刻开始,按已排列好的时间片顺序对业务队列进行调度;
[0026] 步骤13).判断是否到达一个周期T,若未达到,转步骤17);若到达一个周期T,继续;
[0027] 步骤14).根据当前路由器资源和队列状态计算所有队列的动态权重;判断是否到达时间间隔10T,若已到达时间间隔10T,重置周期计数器,转步骤2);
[0028] 步骤15).判断处于非正常状态的队列数与总队列数的比值是否达到快照更新触发阀值V,若达到快照更新触发阀值V,转步骤2);
[0029] 步骤16).本周期T沿用上一个周期T的快照,转步骤12);
[0030] 步骤17).判断当前是否出现空时间片且空时间片与标准时间片的比值达到转让阀值R,若是,则转步骤19);
[0031] 步骤18).判断是否有队列出现突发抢占事件,若有,则选择一个权重最高的队列,转步骤20);
[0032] 步骤19).挑选当前权重最高的队列,占用该空时间片,转步骤12);
[0033] 步骤20).判断当前标准时间片是否执行完成,若未完成,等待该时间片执行完成;
[0034] 步骤21).抢占当前时间片;
[0035] 步骤22).判断是否抢占超时,若超时,转步骤12);若未超时,判断抢占事件是否完成,若完成,转步骤12),若未完成,转步骤21);
[0036] 步骤23).全过程结束。
[0037] 有益效果:与现行的队列调度算法相比,本发明设计的基于SLA的时间片散列调度算法具有以下特点:
[0038] (1)时间片描述机制,精确保障QoS。
[0039] 用时间片的描述方法量化带宽资源,在排列时间片的时间轴上,带宽表现为某一队列分到的时间片的个数;时延表现为某个队列的两个相邻时间片之间的最大间隔大小;抖动表现为某一队列相邻时间片之间的间隔的均匀程度。
[0040] (2)通过时间片的快速预排,达到整体的QoS优化和SLA保障。
[0041] 基于SLA的时间片散列调度算法使用了时间片预排的方法,参考当前的队列调度结果,按照SLA为各个队列提前分配和排列时间片。并以预排结果为基础,根据需要动态调整队列的调度。通过对时间片的数量和间隔的控制,既精确保障各个QoS参数,又充分利用资源。不仅保障当前情况下某个队列的服务质量,而且能提高各队列的总体服务质量;
[0042] CBWFQ算法是一种动态的调度算法,根据事先确定的算法对当前情况作出处理,不对以后的情况作出预判。基于SLA的时间片散列调度算法使用了时间片预排的方法,在一段时间内,对资源进行预分配,把资源合理的分配给需要的队列,既可以确保服务质量,又可以充分利用资源。不仅能保障当前情况下某个队列的服务质量,而且能提高各队列的总体服务质量。
[0043] (3)综合QoS参数的动态队列权重,合理分配路由器资源。
[0044] 本调度算法中,各个队列的权重是会根据队列长度和实际享受到的时延、抖动、带宽、丢包率等因素动态变化的,以便于适应实际的网络情况。
[0045] CBWFQ算法为每个类分配一个队列,每个队列规定了带宽、权重、最大数据包限制。权重是基于带宽确定的。即CBWFQ只考虑了带宽这个QoS参数。基于SLA的时间片散列调度算法中的权重是综合考虑时延、抖动、带宽、丢包率等QoS参数,能够提升综合的服务质量。
[0046] CBWFQ算法中的权重是静态的,根据设定好的带宽确定权重后,就不再改变。当某个队列处于空闲状态,会导致处理资源的浪费。基于SLA的时间片散列调度算法的权重是动态的,当前队列情况发生变化时,该队列的权重就发生相应的变化。资源分配是按照权重来分配的,动态的权重,更有利于资源的合理分配。
[0047] 附图说明
[0048] 图1QoS参数与时间片分布的对应关系示意图。
[0049] 图2数据包在路由器上的处理流程示意图。
[0050] 图3快照法预分配时间片方法示意图。
[0051] 图4快照法预排时间片流程示意图。
[0052] 图5动态调整法流程示意图。
[0053] 图6队列长度的各个阀值示意图。

具体实施方式

[0054] 一、体系结构
[0055] 在路由器上,转发数据包的流程如图2所示。数据源S1、S2、S3到达路由器输入接口,速率检测器对入口处的总流量进行统计;标记器根据当前网络状况和入口处的流速,对数据包进行红、黄、绿三色标记,以表示这些数据包在拥塞情况下的丢弃优先级;然后,分类器根据SLA映射的QoS参数和业务等级,把数据包划分成各个业务类,每个业务类对应一个队列,在一个队列里的数据包是相同等级相同业务类的数据包;接着,调度器根据本文的调度算法对队列进行调度,分配资源,转发数据包。
[0056] 在上述流程中,高效的队列调度算法可以高效分配路由器资源,加速数据包转发,优化路由器性能,从而提高整个网络的服务质量。因此,本文主要讨论队列调度算法,即对图2中的调度器部分进行研究。
[0057] 二、方法流程
[0058] 如图2所示,在用本算法进行队列调度之前,分类器已根据SLA映射的QoS参数,把数据包划分成各个业务类,每个业务类对应一个队列。每个队列里,是相同等级相同业务类的数据包。
[0059] 1.调度算法的主要流程
[0060] ①初始化:根据SLA映射的QoS参数,计算静态队列权重wS;
[0061] ②时间片预排:在时间片开始预排前,根据当前的队列长度计算动态权重wD,并动态调整队列权重W;利用快照法对一个周期T内的队列调度进行时间片预排,即对各个队列预先分配和排列时间片,达到资源预分配的目的;
[0062] ③队列调度:按时间片排列结果调度队列,转发数据包;
[0063] ④动态调整:在一个周期T内,当出现空时间片且与标准时间片的比值大于等于转让阀值R或发生突发抢占事件的队列权重超过特权优先阀值X,进行时间片的动态调整;否则,表示网络状况或队列情况没有明显变化,保持预排的时间片排列结果;
[0064] ⑤快照更新:在下一周期T开始时,
[0065] 如果处于非正常状态的队列数量与队列总数量的比值没有达到快照更新触发阀值V,则该周期T内沿用上一周期T的快照;
[0066] 如果处于非正常状态的队列数量与队列总数量的比值达到快照更新触发阀值V,触发系统,提请快照更新,根据当前网络情况重新进行时间片预排;
[0067] 否则,连续时间间隔10T还没有进行快照更新,就要进行强制快照更新。
[0068] 2.时间片预排的快照算法
[0069] 对各类业务的正常带宽需求,可以通过发放时间片的数量保证;对时延、抖动要求,则通过参数周期T的选取和尽可能均匀地分布时间片来保证。如图3所示,排列时间片时,在不冲突的情况下,按权重从大到小的顺序,均匀排列分配给该队列的时间片。当在某个位置上发生冲突时,按邻近分配策略进行调整。分配时间片时,按权重的大小顺序进行,能够优先满足对QoS要求严格的队列;每个队列的时间片尽可能均匀地分布在整个时间轴上,可以避免较长时间内某一队列得不到服务,有助于确保时延。定义标准时间片的时间大小为t,周期为T的时间轴上分布的总时间片个数为M,路由器的总带宽为B,某队列i在SLA中签订的最大带宽为bi,最小时延为di。则理想情况下的该队列相邻时间片最大间隔数 分配给该队列的时间片个数
[0070] 详细算法流程如图4所示。
[0071] 3.时间片动态调整算法
[0072] 3.1需要动态调整的情况
[0073] 时间片的动态调整分为空时间片E的转让和突发事件抢占两种情况。第一种,分配给某队列的时间片出现了空闲(即已分配给该队列而该队列没有使用完的、部分或若干个完整的标准时间片,我们称为空时间片),可将该空时间片转让给其它队列。第二种,当有瞬时响应数据包等待转发或者有队列出现严重拥塞时,队列权重上升到特权优先阀值X以上,发生突发抢占事件。
[0074] 3.2空时间片E的转让
[0075] 转让的规则:给标准时间片S设置一个转让阀值R,当出现空时间片且空时间片与S的比值大于等于转让阀值R时,转让该空时间片;若空时间片与S的比值低于转让阀值R,就丢弃对该空时间片的使用。
[0076] 转让的方法:空时间片转让给权重最高的候选队列。队列的权重综合考虑了业务的类型和服务等级,以及当前的队列长度状况。
[0077] 3.3突发事件抢占
[0078] 抢占的规则:给队列的权重设置一个特权优先阀值X,当某个队列i有瞬时响应数now据包或者当前队列长度Li 大于严重拥塞预警长度,即 时,其中θ3是严重拥塞up
队列系数,Li 是最大队列长度,说明当前队列严重拥塞,该队列的权重就会动态调整,如果权重超过特权优先阀值X,则该队列就有机会对当前的时间片进行抢占。
[0079] 抢占的方法:当有突发抢占事件产生时,当前正在执行的标准时间片S执行完成后,开始抢占,以避免立即抢占产生零碎时间片,不便于时间片的管理。从下一个标准时间片开始,给抢占队列分配它所需要的若干个时间片。突发事件结束后,继续沿用本周期开始时确定的快照。这样,突发事件的发生不会影响整个时间片的分布。
[0080] 在每个周期T的开始,本算法动态计算所有队列的权重。若抢占队列延续到了下一个周期T的开始,经计算得到的抢占队列的权重已经下降到特权优先阀值X以下,则停止抢占。若抢占队列权重还是高于特权优先阀值X,则继续抢占。但当突发事件持续一个周期T后,若该突发事件还未结束,为了减少对其他队列的影响,则停止该突发事件继续抢占时间片,将抢占队列的权重降低到特权优先阀值X以下。
[0081] 突发事件抢占时间片后,会对当前网络状况产生影响,下一个快照将根据实际的网络状况修正时间片的预排结果。
[0082] 动态调整法流程具体描述如图5所示。
[0083] 4.队列长度阀值的定义
[0084] 如图6,i是队列标号,Lidown表示队列长度下限,Liup表示队列长度上限,Linow表示队列当前的实际长度。θ1、θ2、θ3分别是正常队列系数、拥塞队列系数和严重拥塞队列系数,且0<θ1<θ2<θ3<1。
[0085] 当 时,表示队列i处于正常状态。当 或时,表示该队列处于非正常状态。其中,当 时,表示该队列处于空闲状态,为不活跃队列;当 时,表示该队列为活跃队列。当 时,表示该队列处
于繁忙状态;当 时,表示该队列出现拥塞,此时,该队列有机会分配到空时间片;
当 时,表示该队列发生严重拥塞,该队列可以突发抢占时间片。
[0086] 5.队列权重
[0087] 定义队列的权重W以队列对应业务在SLA中签订的QoS参数为基础,根据当前队列长度动态调整,其值为静态权重wS和动态权重wD之和,即:
[0088] W=wS+wD
[0089] =f(d,j,b)+h(Li)
[0090] 其中,f、h表示函数名,d、j、b、Li分别表示队列所对应业务签订的最小时延、最小抖动、最大带宽和队列预警长度差。
[0091] 5.1静态权重的定义
[0092] 在用快照法安排各个队列的时间片分布时,要综合考虑各个队列的QoS参数。因此需要对各个队列设定不同的静态权重。
[0093] 在静态权重wS的计算公式中主要考虑队列所对应业务的最小时延d、最小抖动j和最大带宽b三个SLA参数。为了保证公平性,采用通过ISP得到的所有用户的时延、抖动、带宽统计平均值(d、j、b)。由于时延、抖动与权重成反比,而带宽与权重成正比,为了反应这种关系,所以定义:
[0094] wS=f(d,j,b)
[0095] =α×(1/d)/(1/d)+β×(1/j)/(1/j)+γ×b/b
[0096] =α×d/d+β×j/j+γ×b/b;
[0097] 其中α、β、γ分别为时延、抖动、带宽的数量级调节系数。由于d/d、j/j、b/b三个数值的数量级可能会有很大的差异,所以为了权重计算的公平性,引入数量级调节系数,使α×d/d、β×j/j、γ×b/b能够处于相同的数量级。因为静态权重是根据各个业务SLA得到的,所以静态权重在路由器启动后是固定不变的,除非人为的更新路由器内部各个业务的SLA参数的配置。
[0098] 5.2动态权重的定义
[0099] 因为在计算静态权重wS时,各个队列所对应业务的SLA参数以及时延、抖动、带宽的数量级调节系数α、β、γ均为静态变量,一旦设定它们的值,那么在相当长的一段时间内,静态权重wS的值是固定不变的。而路由器内部各个转发队列均在实时变动,为了动态反映各个队列的数据包需转发的迫切程度,体现各个队列在短时间内的相对优先级,还需要对各个队列设定即时的动态权重。
[0100] 在动态权重wD的计算公式中主要考虑队列的实时拥塞情况,即考虑队列预警长度now up差 为队列的当前队列长度Li 减去队列拥塞阀值θ2与队列长度上限Li
up
之积,即θ2×Li ,i表示队列序号。我们定义:
[0101] wD=h(Li)
[0102] =ρ×Li;
[0103] 其中ρ为微调系数,由于队列权重是在保证各个业务QoS参数的大前提下,兼顾各个队列的实时突发情况,所以定义微调系数ρ,使函数h(Li)的值比函数f(d,j,b)的值小一个数量级。队列预警长度差Li的取值可以为正数或负数,则动态权重wD也可以为正或为负,这样,就可以基于静态权重,在一定范围内微调各个队列的权重,使各个队列的时间片预排更为合理。
[0104] 队列的动态权重在每个周期T的开始(或结束)计算。
[0105] 为了方便描述,我们假定有如下应用实例:
[0106] 最初用户A1,A2,…,An与某个运营商P签订好SLA协议,并将每个用户的SLA协议信息录入到数据库。用户A1,A2,…,An登录时,接入网关C的认证模块对各用户进行身份认证。通过认证的用户A1,A2,…,An分别提出业务请求。如:用户A1向DiffServ域内的一台FTP服务器D提请FTP下载业务,……,用户An提出高清晰视频业务请求。接入网关C对各业务请求进行接纳控制,判断当前网络资源是否能满足用户提请的业务要求。如果能满足,就进行数据传输。各数据流在传输过程中,经过路由器E。
[0107] 各数据流到达路由器输入接口;速率检测器对入口处的流量进行统计;标记器对不同业务流的数据包进行丢弃优先级的标记;根据SLA映射的QoS参数,把数据包划分成各个业务类,每个业务类的数据包被归入一个对应的队列。路由器E开始按照本发明的调度方法转发数据包,具体实施方式为:
[0108] (1).对路由器上的所有业务队列,根据SLA映射的QoS参数,计算静态队列权重wS;
[0109] (2).判断路由器上是否有等待预排的队列,即队列长度大于0的队列,如果没有,转(23),否则继续;
[0110] (3).根据当前路由器资源,对所有等待预排的队列计算可分配的时间片个数;假设当前有n个等待预排的队列,第i个队列的时间片数为Mi;
[0111] (4).读取一个待预排的队列i,从时间片分布轴上从头开始查找出第一个为空的位置,插入该队列第一个时间片,且使队列i的时间片数Mi减1;
[0112] (5).为队列i计算出下一个时间片的插入位置:下一个时间片与当前时间片间隔个时间片,这里di为队列i所对应业务在SLA中签订的最小时延,t为标准时间片的大小;判断该位置是否空闲,若不空闲,转步骤7);空闲,则继续;
[0113] (6).插入队列i的时间片,转(10);
[0114] (7).判断此队列是否为延时敏感的队列,若不是敏感队列,转(9);
[0115] (8).从冲突点向前查找,找出离冲突点最近的空位点插入时间片,转(10);
[0116] (9).从冲突点向后查找,找出离冲突点最近的空位点插入时间片;
[0117] (10).使队列i的时间片数Mi减1,并判断Mi是否大于0,如果是,则转(5);
[0118] (11).判断是否有等待预排时间片的队列,如果有,转(4);没有,则继续;
[0119] (12).从当前时刻开始,按已排列好的时间片顺序对业务队列进行调度,转发数据包;
[0120] (13).判断是否到达一个周期T,若未达到,转(17);若到达一个周期T,继续;
[0121] (14).根据当前路由器资源和队列状态计算所有队列的动态权重;判断是否到达时间间隔10T,若已到达时间间隔10T,重置周期计数器,转(2),进行快照刷新;
[0122] (15).判断处于非正常状态的队列数与总队列数的比值是否达到快照更新触发阀值V,若达到快照更新触发阀值V,转(2);
[0123] (16).本周期T沿用上一个周期T的快照,转(12);
[0124] (17).判断当前是否出现空时间片且空时间片与标准时间片的比值达到转让阀值R,若是,则转(19);
[0125] (18).判断是否有队列出现突发抢占事件,若有,则选择一个权重最高的队列,转(20);
[0126] (19).挑选当前权重最高的队列,占用该空时间片,转(12);
[0127] (20).判断当前标准时间片是否执行完成,若未完成,等待该时间片执行完成;
[0128] (21).抢占当前时间片;
[0129] (22).判断是否抢占超时,若超时,转(12);若未超时,判断抢占事件是否完成,若完成,转(12),若未完成,转(21);
[0130] (23).结束。