一种实现层次化QoS的五级队列调度装置及方法转让专利

申请号 : CN201711102124.0

文献号 : CN107872403B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邱智亮高丽丽潘伟涛郑凌王伟娜赵海峰张汶汶张森付新宇陈郝明

申请人 : 西安电子科技大学

摘要 :

本发明公开了一种实现层次化QoS的五级队列调度装置及方法,其装置包括流分类模块、入队级调度模块、共享缓存模块、业务流级调度模块、用户级调度模块、子网级调度模块、输出端口级调度模块、调度算法配置模块、流量控制模块和CPU接口模块。方法包括:对数据分组进行流分类,通过计算队列的入队门限来判断数据分组能否入队。依据待调度队列的权值属性,利用调度算法配置模块来配置各级调度算法,同时结合流量控制算法共同完成数据分组的出队调度过程。本发明通过选择合适的调度算法和流量控制算法,结合五级队列调度装置,能够更灵活的分配带宽。

权利要求 :

1.一种实现层次化服务质量QoS的五级队列调度装置,其特征在于,包括流分类模块、入队级调度模块、共享缓存模块、业务流级调度模块、用户级调度模块、子网级调度模块、输出端口级调度模块、调度算法配置模块、流量控制模块、CPU接口模块;所述流分类模块与入队级调度模块相连;入队级调度模块与流分类模块、共享缓存模块、业务流级调度模块相连;业务流级调度模块与入队级调度模块、用户级调度模块、调度算法配置模块相连;用户级调度模块与业务流级调度模块、子网级调度模块、调度算法配置模块相连;子网级调度模块与用户级调度模块、输出端口 级调度模块、调度算法配置模块相连;输出端口级调度模块与子网级调度模块、流量控制模块相连;调度算法配置模块与业务流级调度模块、用户级调度模块、子网级调度模块、CPU接口模块相连;CPU接口模块与调度算法配置模块相连;其中,所述流分类模块,用于提取待入队的数据分组的服务类型ToS,根据服务类型ToS将其分为四种业务流之一;提取待入队的数据分组的源IP和目的IP,查询源IP所属的用户队列号,查询目的IP所属的子网队列号;根据待入队的数据分组的业务流类型、用户号和子网号得到待入队的数据分组的队列号,并将待入队的数据分组的队列号传送给入队级调度模块;

所述入队级调度模块,用于判断待入队的数据分组是否满足入队条件,将满足入队条件的数据分组入队,并更新入队后的队列容量和缓存模块的存储容量;将不满足入队条件的数据分组丢弃;

所述的入队条件是指同时满足以下两个条件的情形:

条件1,缓存模块存储容量的剩余值大于待入队的数据分组的长度;

条件2,待入队的数据分组所属的队列容量未达到入队门限值;

所述入队门限由共享缓存模块按照下式计算得到:

T=αi*(B-∑Q),

其中,T表示入队门限值,αi表示第i种业务流的入队门限系数,该入队门限系数由共享缓存模块依据四种业务流的优先级,用大于1的整数来设置每种业务流的值,*表示相乘操作,B表示共享缓存模块的总容量,∑表示求和操作,Q表示共享缓存模块中单个队列的长度;

所述表示共享缓存模块的总容量B由下式计算得到:

B=(SUBNET*USER*FLOW*AVGLEN),

其中,SUBNET表示子网数目,USER表示用户数目,FLOW表示业务流类型数目,AVGLEN表示平均队列长度;

所述共享缓存模块,用于存储所有的数据分组;

所述业务流级调度模块,用于依据待调度队列的权值属性,利用调度算法配置模块所选的业务流级调度算法,让待调度队列中的数据分组出队;并判断所选的业务流级调度算法是否完成数据分组出队,完成就将数据分组传送给用户级调度模块;

所述用户级调度模块,用于用户级调度模块依据待调度队列的权值属性,利用调度算法配置模块所选的用户级调度算法,让待调度队列中的数据分组出队;判断所选的用户级调度算法是否完成数据分组出队,完成就将数据分组传送给子网级调度模块;

所述子网级调度模块,用于依据待调度队列的权值属性,利用调度算法配置模块所选的子网级调度算法,让待调度队列中的数据分组出队;判断所选的子网级调度算法是否完成数据分组出队,完成就将数据分组传送给输出端口级调度模块;

所述输出端口级调度模块,用于在流量控制模块中的令牌桶中有令牌时,输出端口级调度模块让在输出端口处排队的数据分组依次出队,同时令牌数依次递减,直至令牌数为零或者数据分组全部出队;

所述CPU接口模块,用于设置流量控制模块中的令牌数目,并将各级调度所需的数据分组个数、数据分组长度、数据分组的虚拟完成时间写入到相应队列的权值信息中;

所述调度算法配置模块,用于配置业务流级调度模块、用户级调度模块、子网级调度模块所需的调度算法;

所述流量控制模块,用于接收CPU接口模块设置的令牌数目,并控制输出端口级调度模块数据分组的出队。

2.一种实现层次化服务质量QoS的五级队列调度方法,其特征在于,使用实现层次化服务质量QoS的五级队列调度装置,在交换设备进行数据传输时实现多层次的带宽分配,包括步骤如下:(1)对数据分组进行分类:

(1a)流分类模块提取待入队的数据分组的服务类型ToS,依据不同的服务类型ToS将所提取的待入队数据分组分为四种业务流之一;

(1b)流分类模块提取待入队的数据分组的源IP和目的IP,查询源IP所属的用户队列号,查询目的IP所属的子网队列号;

(2)获取数据分组的队列号:

流分类模块通过查询待入队的数据分组的业务流类型、用户号和子网号得到待入队的数据分组的队列号,并将待入队的数据分组的队列号传送给入队级调度模块;

(3)入队级调度模块判断待入队的数据分组是否满足入队条件,若是,则执行步骤(5),否则,执行步骤(4);

所述的入队条件是指同时满足以下两个条件的情形:

条件1,缓存模块存储容量的剩余值大于待入队的数据分组的长度;

条件2,待入队的数据分组所属的队列容量未达到入队门限值;

所述入队门限由共享缓存模块按照下式计算得到:

T=αi*(B-∑Q),

其中,T表示入队门限值,αi表示第i种业务流的入队门限系数,该入队门限系数由共享缓存模块依据四种业务流的优先级,用大于1的整数来设置每种业务流的值,*表示相乘操作,B表示共享缓存模块的总容量,∑表示求和操作,Q表示共享缓存模块中单个队列的长度;

所述表示共享缓存模块的总容量B由下式计算得到:

B=(SUBNET*USER*FLOW*AVGLEN),

其中,SUBNET表示子网数目,USER表示用户数目,FLOW表示业务流类型数目,AVGLEN表示平均队列长度;

(4)数据分组入队失败,丢弃待入队的数据分组;

(5)数据分组入队:

入队级调度模块将满足入队条件的数据分组入队,并更新入队后的队列容量和缓存模块的存储容量后执行步骤(6);

(6)对调度算法配置模块和流量控制模块进行初始化:

(6a)中央处理单元CPU接口模块,将各级调度所需的数据分组个数、数据分组长度、数据分组的虚拟完成时间写入到相应队列的权值信息中;

(6b)中央处理单元CPU接口模块设置流量控制模块中的令牌数目;

(7)开始本次出队调度周期;

(8)业务流级调度:

业务流级调度模块依据待调度队列的权值属性,利用调度算法配置模块所选的业务流级调度算法,让待调度队列中的数据分组出队;

(9)判断所选的业务流级调度算法是否完成数据分组出队,若是,则执行步骤(10),否则,执行步骤(15);

(10)用户级调度:

用户级调度模块依据待调度队列的权值属性,利用调度算法配置模块所选的用户级调度算法,让待调度队列中的数据分组出队;

(11)判断所选的用户级调度算法是否完成数据分组出队,若是,则执行步骤(12),否则,执行步骤(15);

(12)子网级调度:

子网级调度模块依据待调度队列的权值属性,利用调度算法配置模块所选的子网级调度算法,让待调度队列中的数据分组出队;

(13)判断所选的子网级调度算法是否完成数据分组出队,若是,则执行步骤(14),否则,执行步骤(15);

(14)输出端口级调度:

当流量控制模块中的令牌桶中有令牌时,输出端口级调度模块让在输出端口处排队的数据分组依次出队,同时令牌数依次递减,直至令牌数为零或者数据分组全部出队为止;

(15)本次出队调度周期结束,完成出队调度处理。

3.根据权利要求2所述的一种实现层次化服务质量QoS的五级队列调度方法,其特征在于,步骤(1a)中所述的四种业务流是指,将0或1的服务类型ToS分类为语音业务流;将2或3的服务类型ToS分类为视频业务流;将4或5的服务类型ToS分类为虚拟专用网络VPN业务流;

将6或7的服务类型ToS分类为数据业务流。

4.根据权利要求2所述的一种实现层次化服务质量QoS的五级队列调度方法,其特征在于,步骤(6b)中所述的令牌是指,中央处理单元CPU接口模块以给定的速率填充令牌桶的虚拟信息包。

5.根据权利要求2所述的一种实现层次化服务质量QoS的五级队列调度方法,其特征在于,步骤(8)中所述的依据待调度队列的权值属性选择调度算法是指,若待调度队列的权值为数据分组的个数,则所选算法为加权轮询调度算法WRR;若所调度队列的权值为数据分组的长度,则所选算法为加权差额轮询调度算法DWRR;若所调度队列的权值为数据分组的虚拟完成时间,则所选算法为加权公平排队算法WFQ。

说明书 :

一种实现层次化QoS的五级队列调度装置及方法

技术领域

[0001] 本发明属于通信技术领域,更进一步涉及数据传输技术领域中的一种实现层次化服务质量QoS(Quality of Service)的五级队列调度装置及方法。本发明可通过对各级调度算法中队列权值的设置和流量的控制,实现对交换机或者路由器带宽的管理。

背景技术

[0002] 队列调度和QoS技术广泛应用于路由器以及交换机中,它按照一定的服务规则对交换节点的输入报文分别进行流分类、调度和流量控制,使所有的数据分组能按预定的方式共享交换节点的输出链路带宽。
[0003] 基于队列的调度方法是拥塞管理中最常使用的,传统的基于队列的调度方法中使用的都是单级队列,即出端口下有固定个数的队列,将出端口上的流量根据接口设置的流分类策略映射到不同的队列中,然后根据设置的队列调度算法进行调度,从而实现对不同业务流量的区别调度;目前基于队列的调度算法,主要包括严格优先级调度SP,加权轮询调度WRR,查分加权轮询DWRR,加权公平调度 WFQ等。这几种调度算法各有优缺点,当使用单级队列调度方法时,其调度算法的选择也会受到限制;传统的QoS是基于端口带宽进行调度的,结合上述单级队列的分类结果进行端口级的带宽分配,不能实现用户和子网之间的带宽管理。
[0004] 随着目前网络设备的高速发展,单端口容量变大,接入用户数目增加,业务类型繁多,基于单队列和单端口的带宽调度带来了很多问题,因此有关于层次化服务质量调度方法的研究日益趋多。
[0005] 中兴通讯股份有限公司在其申请的专利文献“一种层次化服务质量调度方法和装置”(申请号201310031861.1,申请日期2013.01.28,公开日期2013.06.12) 中提出了一种实现在上行方向上进行层次化QoS的调度方法及装置。该专利文献所公开的装置包括数据交换通道、上行队列调度模块、上行数据交换模块、接收模块和发送模块。其中接收模块用于接收上行传送的数据包,并将数据包进行解析,将数据包报文进行封装后发送给上行数据交换模块;发送模块用于将数据包进行发送处理;上行数据交换模块用于根据封装中的上行方向队列信息将数据包存储到上行方向队列中,向上行队列调度模块发送上行调度请求;上行队列调度模块用于根据上行数据交换模块发送的上行调度请求,向上行数据交换模块回复相应的信息。该装置存在的不足之处是:只在接收模块之上进行了上行方向队列信息的封装,并未传递它的子网号和用户号属性,并且队列只有一级,无法实现各子网和用户的带宽配置。该专利文献所公开方法的主要步骤是:(1)对上行接收的数据包进行解析,对并数据包报文进行封装,封装的信息包括上行方向队列信息;(2)根据所述上行方向队列信息将所述数据包存储到上行方向队列中,并向上行队列调度模块发送上行调度请求;(3)若所述上行队列调度模块回复上行授权信息,则将所述数据包进行发送。该方法存在的不足之处是:该方法只能保证用户的服务质量,不能进一步为用户的不同业务流进行服务;只有端口级调度,不能保证不同子网的带宽分配。
[0006] 烽火通信科技股份有限公司在其申请的专利文献“多级层次化带宽管理的方法”(申请号2011110120369.2,申请日期2011.05.11,公开日期2011.09.14) 中提出了一种基于两级流量整形的带宽管理方法。该专利文献所公开方法的主要步骤是:(1)根据业务模型配置各级调度节点的CIR和PIR、或CIR和EIR;在第一级调度的各节点,根据用户购买的带宽设置该节点的CIR;第二级调度开始,各节点的带宽分配原则符合自定义的一个准则;(2)在第一级调度的各节点,利用MEF、RFC2697或RFC2698算法分别将报文标记为绿色、黄色或红色;从第二级调度的各节点开始,将各节点均配置为色敏感模式和耦合模式,并根据 MEF算法进行流量整形。该方法存在的不足之处是:基于流量整形的带宽管理算法过于复杂,硬件实现成本高,而且只能在支持MEF Traffic Shapping算法的交换芯片上应用该方案,利用面不够广泛。

发明内容

[0007] 本发明的目的在于克服上述基于端口级队列调度技术的不足,提出一种实现层次化QoS的五级队列调度装置及方法,通过选择合适的调度算法和流量控制算法,结合五级队列调度装置,更灵活的分配带宽。
[0008] 为了实现上述目的,本发明方法的思路是:首先对到达的数据分组进行分类,流分类模块通过提取数据分组的服务类型ToS来将数据分组分为不同的业务流,通过提取数据分组的源IP和目的IP查询得到数据分组所属的队列号;然后入队级调度模块查询待入队数据分组的入队门限信息和共享缓存的容量,在满足最大门限要求,同时共享缓存容量足够的情况下,将分组入队;最后,通过调度算法配置模块和流量控制模块的各级配置,依次完成业务流级调度、用户级调度、子网级调度和输出端口级调度。
[0009] 为了实现上述目的,本发明的装置包括流分类模块、入队级调度模块、共享缓存模块、业务流级调度模块、用户级调度模块、子网级调度模块、输出端口级调度模块、调度算法配置模块、流量控制模块、CPU接口模块;所述流分类模块与入队级调度模块相连;入队级调度模块与流分类模块、共享缓存模块、业务流级调度模块相连;业务流级调度模块与入队级调度模块、用户级调度模块、调度算法配置模块相连;用户级调度模块与业务流级调度模块、子网级调度模块、调度算法配置模块相连;子网级调度模块与用户级调度模块、输出端级调度模块、调度算法配置模块相连;输出端口级调度模块与子网级调度模块、流量控制模块相连;调度算法配置模块与业务流级调度模块、用户级调度模块、子网级调度模块、CPU接口模块相连;CPU接口模块与调度算法配置模块相连;其中,
[0010] 所述流分类模块,用于提取待入队的数据分组的服务类型ToS,根据服务类型ToS将其分为四种业务流之一;提取待入队的数据分组的源IP和目的IP,查询源IP所属的用户队列号,查询目的IP所属的子网队列号;根据待入队的数据分组的业务流类型、用户号和子网号得到待入队的数据分组的队列号,并将待入队的数据分组的队列号传送给入队级调度模块;
[0011] 所述入队级调度模块,用于判断待入队的数据分组是否满足入队条件,将满足入队条件的数据分组入队,并更新入队后的队列容量和缓存模块的存储容量;将不满足入队条件的数据分组丢弃;
[0012] 所述共享缓存模块,用于存储所有的数据分组;
[0013] 所述业务流级调度模块,用于依据待调度队列的权值属性,利用调度算法配置模块所选的业务流级调度算法,让待调度队列中的数据分组出队;并判断所选的业务流级调度算法是否完成数据分组出队,完成就将数据分组传送给用户级调度模块;
[0014] 所述用户级调度模块,用于用户级调度模块依据待调度队列的权值属性,利用调度算法配置模块所选的用户级调度算法,让待调度队列中的数据分组出队;判断所选的用户级调度算法是否完成数据分组出队,完成就将数据分组传送给子网级调度模块;
[0015] 所述子网级调度模块,用于依据待调度队列的权值属性,利用调度算法配置模块所选的子网级调度算法,让待调度队列中的数据分组出队;判断所选的子网级调度算法是否完成数据分组出队,完成就将数据分组传送给输出端口级调度模块;
[0016] 所述输出端口级调度模块,用于在流量控制模块中的令牌桶中有令牌时,输出端口级调度模块让在输出端口处排队的数据分组依次出队,同时令牌数依次递减,直至令牌数为零或者数据分组全部出队;
[0017] 所述调度算法配置模块,用于配置用户级调度模块、子网级调度模块、输出端口级调度模块所需的调度算法;
[0018] 所述流量控制模块,用于接收CPU接口模块设置的令牌数目,并控制输出端口级调度模块数据分组的出队;
[0019] 所述CPU接口模块,用于设置流量控制模块中的令牌数目,并将各级调度所需的数据分组个数、数据分组长度、数据分组的虚拟完成时间写入到相应队列的权值信息中。
[0020] 本发明的调度方法使用实现层次化服务质量QoS的五级队列调度装置,在交换设备进行数据传输时实现多层次的带宽分配,包括步骤如下:
[0021] (1)将数据分组进行分类:
[0022] (1a)流分类模块提取待入队的数据分组的服务类型ToS,根据服务类型ToS 将其分为四种业务流之一;
[0023] (1b)流分类模块提取待入队的数据分组的源IP和目的IP,查询源IP所属的用户队列号,查询目的IP所属的子网队列号;
[0024] (2)获取数据分组的队列号:
[0025] 流分类模块根据待入队的数据分组的业务流类型、用户号和子网号得到待入队的数据分组的队列号,并将待入队的数据分组的队列号传送给入队级调度模块;
[0026] (3)入队级调度模块判断待入队的数据分组是否满足入队条件,若是,则执行步骤(5),否则,执行步骤(4);
[0027] (4)数据分组入队失败,丢弃待入队的数据分组;
[0028] (5)数据分组入队:
[0029] 入队级调度模块将满足入队条件的数据分组入队,并更新入队后的队列容量和缓存模块的存储容量后执行步骤(6);
[0030] (6)对调度算法配置模块和流量控制模块进行初始化:
[0031] (6a)中央处理单元CPU接口模块,将各级调度所需的数据分组个数、数据分组长度、数据分组的虚拟完成时间写入到相应队列的权值信息中;
[0032] (6b)中央处理单元CPU接口模块设置流量控制模块中的令牌数目;
[0033] (7)开始本次出队调度周期;
[0034] (8)业务流级调度:
[0035] 业务流级调度模块依据待调度队列的权值属性,利用调度算法配置模块所选的业务流级调度算法,让待调度队列中的数据分组出队;
[0036] (9)判断所选的业务流级调度算法是否完成数据分组出队,若是,则执行步骤(10),否则,执行步骤(15);
[0037] (10)用户级调度:
[0038] 用户级调度模块依据待调度队列的权值属性,利用调度算法配置模块所选的用户级调度算法,让待调度队列中的数据分组出队;
[0039] (11)判断所选的用户级调度算法是否完成数据分组出队,若是,则执行步骤(12),否则,执行步骤(15);
[0040] (12)子网级调度:
[0041] 子网级调度模块依据待调度队列的权值属性,利用调度算法配置模块所选的子网级调度算法,让待调度队列中的数据分组出队;
[0042] (13)判断所选的子网级调度算法是否完成数据分组出队,若是,则执行步骤(14),否则,执行步骤(15);
[0043] (14)输出端口级调度:
[0044] 当流量控制模块中的令牌桶中有令牌时,输出端口级调度模块让在输出端口处排队的数据分组依次出队,同时令牌数依次递减,直至令牌数为零或者数据分组全部出队;
[0045] (15)本次出队调度周期结束,完成出队调度处理。
[0046] 本发明与现有技术相比具有如下优点:
[0047] 第一,由于本发明装置中的流分类模块,用于提取待入队的数据分组的服务类型ToS,并根据服务类型ToS将其分为四种业务流之一;提取待入队的数据分组的源IP和目的IP,查询源IP所属的用户队列号,查询目的IP所属的子网队列号;根据待入队的数据分组的业务流类型、用户号和子网号得到待入队的数据分组的队列号,克服了现有技术只在接收模块之上进行了上行方向队列信息的封装、无法实现各子网和用户的带宽配置的问题,使得本发明装置具有可配置的多级带宽分配的优势。
[0048] 第二,由于本发明的方法在对调度算法配置模块和流量控制模块进行初始化,实现了加权轮询调度算法WRR、加权差额轮询调度算法DWRR、加权公平排队算法WFQ和流量控制的模块化实现,克服了现有技术中基于流量整形的带宽管理算法过于复杂,硬件实现成本高,而且只能在支持MEF Traffic Shapping算法的交换芯片上应用,利用面不够广泛的问题,使得本发明具有灵活性高,算法可配置的优点。

附图说明

[0049] 图1为本发明装置的方框图;
[0050] 图2为本发明方法的流程图。

具体实施方式

[0051] 下面结合附图对本发明做进一步的描述。
[0052] 参照附图1,本发明的装置包括流分类模块1、入队级调度模块2、共享缓存模块3、业务流级调度模块4、用户级调度模块5、子网级调度模块6、输出端口级调度模块7、调度算法配置模块8、流量控制模块9、CPU接口模块10;所述流分类模块1与入队级调度模块2相连;入队级调度模块2与流分类模块1、共享缓存模块3、业务流级调度模块4相连;业务流级调度模块4与入队级调度模块2、用户级调度模块5、调度算法配置模块8相连;用户级调度模块5与业务流级调度模块4、子网级调度模块6、调度算法配置模块8相连;子网级调度模块6与用户级调度模块5、输出端口 级调度模块7、调度算法配置模块8相连;输出端口级调度模块7与子网级调度模块6、流量控制模块9相连;调度算法配置模块8与业务流级调度模块4、用户级调度模块5、子网级调度模块6、CPU 接口模块10相连;CPU接口模块10与调度算法配置模块8相连;其中,
[0053] 所述流分类模块1,用于提取待入队的数据分组的服务类型ToS,根据服务类型ToS将其分为四种业务流之一;提取待入队的数据分组的源IP和目的IP,查询源IP所属的用户队列号,查询目的IP所属的子网队列号;根据待入队的数据分组的业务流类型、用户号和子网号得到待入队的数据分组的队列号,并将待入队的数据分组的队列号传送给入队级调度模块2;
[0054] 所述入队级调度模块2,用于判断待入队的数据分组是否满足入队条件,将满足入队条件的数据分组入队,并更新入队后的队列容量和共享缓存模块 3的存储容量;将不满足入队条件的数据分组丢弃;
[0055] 所述共享缓存模块3,用于存储所有的数据分组;
[0056] 所述业务流级调度模块4,用于依据待调度队列的权值属性,利用调度算法配置模块8所选的业务流级调度算法,让待调度队列中的数据分组出队;并判断所选的业务流级调度算法是否完成数据分组出队,完成就将数据分组传送给用户级调度模块5;
[0057] 所述用户级调度模块5,用于依据待调度队列的权值属性,利用调度算法配置模块8所选的用户级调度算法,让待调度队列中的数据分组出队;判断所选的用户级调度算法是否完成数据分组出队,完成就将数据分组传送给子网级调度模块6;
[0058] 所述子网级调度模块6,用于依据待调度队列的权值属性,利用调度算法配置模块8所选的子网级调度算法,让待调度队列中的数据分组出队;判断所选的子网级调度算法是否完成数据分组出队,完成就将数据分组传送给输出端口级调度模块7;
[0059] 所述输出端口级调度模块7,用于在流量控制模块中的令牌桶中有令牌时,输出端口级调度模块7让在输出端口处排队的数据分组依次出队,同时令牌数依次递减,直至令牌数为零或者数据分组全部出队;
[0060] 所述CPU接口模块10,用于设置流量控制模块7 中的令牌数目,并将各级调度所需的数据分组个数、数据分组长度、数据分组的虚拟完成时间写入到相应队列的权值信息中;
[0061] 所述调度算法配置模块8,用于配置用户级调度模块5、子网级调度模块6、输出端口级调度模块7所需的调度算法;
[0062] 所述流量控制模块9,用于接收CPU接口模块10设置的令牌数目,并控制输出端口级调度模块7数据分组的出队。
[0063] 下面参照附图2,对本发明的实现方法做进一步的描述。
[0064] 本发明的五级队列调度方法,使用实现层次化服务质量QoS的五级队列调度装置,在交换设备进行数据传输时实现多层次的带宽分配。
[0065] 步骤1,将数据分组进行分类。
[0066] 流分类模块1提取待入队的数据分组的服务类型ToS,根据服务类型ToS将其分为四种业务流之一。
[0067] 四种业务流是指将0或1的服务类型ToS分类为语音业务流;将2或3的服务类型ToS分类为视频业务流;将4或5的服务类型ToS分类为虚拟专用网络VPN业务流;将6或7的服务类型ToS分类为数据业务流。
[0068] 流分类模块1提取待入队的数据分组的源IP和目的IP,查询源IP所属的用户队列号,查询目的IP所属的子网队列号。
[0069] 步骤2,获取数据分组的队列号。
[0070] 流分类模块1根据待入队的数据分组的业务流类型、用户号和子网号得到待入队的数据分组的队列号,并将待入队的数据分组的队列号传送给入队级调度模块2。
[0071] 步骤3,入队级调度模块2判断待入队的数据分组是否满足入队条件,若是,则执行步骤5,否则,执行步骤4。
[0072] 所述的入队条件是指同时满足以下两个条件的情形:
[0073] 条件1,共享缓存模块3存储容量的剩余值大于待入队的数据分组的长度;
[0074] 条件2,待入队的数据分组所属的队列容量未达到入队门限;
[0075] 所述入队门限由共享缓存模块3按照下式计算得到:
[0076] T=αi*(B-∑Q),
[0077] 其中,T表示队列门限值,αi表示第i种业务流的入队门限系数,该入队门限系数由共享缓存模块3依据四种业务流的优先级,用大于0的整数来设置每种业务流的值,*表示相乘操作,B表示共享缓存模块3的总容量,∑表示求和操作,Q表示当前时刻各队列的长度;
[0078] 所述表示共享缓存模块3的总容量B由下式计算得到:
[0079] B=(SUBNET*USER*FLOW*AVGLEN),
[0080] 其中,SUBNET表示子网数目,USER表示用户数目,FLOW表示业务流类型数目,AVGLEN表示平均队列长度。
[0081] 步骤4,数据分组入队失败,丢弃待入队的数据分组。
[0082] 步骤5,数据分组入队。
[0083] 入队级调度模块2将满足入队条件的数据分组入队,并更新入队后的队列容量和共享缓存模块3的存储容量,执行步骤6。
[0084] 步骤6,对调度算法配置模块8和流量控制模块9进行初始化。
[0085] 中央处理单元CPU接口模块10,将各级调度所需的数据分组个数、数据分组长度、数据分组的虚拟完成时间写入到相应队列的权值信息中。
[0086] 中央处理单元CPU接口模块10设置流量控制模块中的令牌数目。
[0087] 所述的令牌是指以给定速率填充令牌桶的虚拟信息包。
[0088] 步骤7,开始本次出队调度周期。
[0089] 步骤8,业务流级调度。
[0090] 业务流级调度模块4依据待调度队列的权值属性,利用调度算法配置模块8 所选的业务流级调度算法,让待调度队列中的数据分组出队。
[0091] 所述的依据待调度队列的权值属性选择调度算法是指,若所调度队列的权值为数据分组的个数,则所选算法为加权轮询调度算法WRR;若所调度队列的权值为数据分组的长度,则所选算法为加权差额轮询调度算法DWRR;若所调度队列的权值为数据分组的虚拟完成时间,则所选算法为加权公平排队算法WFQ。
[0092] 步骤9,判断所选的业务流级调度算法是否完成数据分组出队,若是,则执行步骤10,否则,执行步骤15。
[0093] 步骤10,用户级调度。
[0094] 用户级调度模块5依据待调度队列的权值属性,利用调度算法配置模块8所选的用户级调度算法,让待调度队列中的数据分组出队。
[0095] 步骤11,判断所选的用户级调度算法是否完成数据分组出队,若是,则执行步骤12,否则,执行步骤15。
[0096] 步骤12,子网级调度。
[0097] 子网级调度模块6依据待调度队列的权值属性,利用调度算法配置模块8所选的子网级调度算法,让待调度队列中的数据分组出队。
[0098] 步骤13,判断所选的子网级调度算法是否完成数据分组出队,若是,则执行步骤14,否则,执行步骤15。
[0099] 步骤14,输出端口级调度。
[0100] 当流量控制模块9中的令牌桶中有令牌时,输出端口级调度模块7让在输出端口处排队的数据分组依次出队,同时令牌数依次递减,直至令牌数为零或者数据分组全部出队。
[0101] 步骤15,本次出队调度周期结束,完成出队调度处理。