本发明属于网络通信技术领域,更进一步涉及一种多粒度qos控制方法,可用于企业通信网。
背景技术:
近些年来,随着互联网时代网络技术的快速发展,越来越多的企业和机构开始研究及使用网络虚拟化和软件定义网络技术。网络虚拟化是一种重要的qos控制技术,该技术可在物理网络拓扑上创建出多个相互隔离的虚拟网络,从而使得不同用户之间使用独立的网络资源切片,提高网络资源利用率。软件定义网络sdn(softwaredefinednetwork)是一种集中控制的网络架构,主要分为sdn控制器和sdn交换机,可将网络划分为数据层面和控制层面。传统的网络虚拟化部署需要手动逐跳部署,其效率低下,人力成本很高,sdn的出现使得网络虚拟化的实现更加灵活和高效。但是这两种技术的结合使用门槛较高,目前只有部分相关企业和研究机构能够部署基于sdn的网络虚拟化环境,相关的商用产品也价格高昂。因此对于大多数企业和机构来说,要想完全使用到基于sdn的网络虚拟化技术难度很大,需要探索更容易的解决方案。
目前,现有技术对网络流量qos控制也从intserv综合服务和diffserv区分服务这两个角度来实施。其中:
intserv综合服务的工作方式,是使用资源预留协议为每一条流预留足够的资源,并在流途径的所有交换机中保存流的状态和信令信息,最终达到为每一条流都提供qos控制的效果。但是,基于intserv综合服务的qos控制粒度太细,维护成本太高。
diffserv区分服务的工作方式,是根据网络流数据报中ip头的tos字段值将所有具有相同tos值的流认为是同一种业务流,然后为不同的业务流提供不同的qos控制。但是,但这种基于diffserv区分服务的qos控制只能保证业务之间的区分服务,却无法从用户的角度来提供qos控制。
技术实现要素:
本发明的目的是针对上述现有技术的不足,提出一种面向网络虚拟化的多粒度qos控制方法,以降低网络设备的维护成本,并为不同虚拟子网下的用户提供不同的流量调度优先次序,为相同虚拟子网的不同业务分配不同的带宽资源。
本发明的技术方案是:首先在sdn控制器中创建ip平衡二叉树和虚拟子网配置文件,再在sdn交换机中配置队列规则,然后为到达sdn交换机的分组匹配流表,若匹配到流表则直接根据流表规则进入指定队列,若未匹配到流表,则将分组送到sdn控制器中先为分组的网络流匹配虚拟子网,接着为分组的网络流匹配业务类型,然后下发新的流表并按照流表动作将分组送入指定队列,最后将分组按照多粒度qos控制队列调度策略调度出队并离开交换机。其实现步骤包括如下:
(1)在sdn控制器中创建ip平衡二叉树;
(2)在sdn控制器中创建虚拟子网配置文件,即配置n种虚拟子网vsn,并为每种虚拟子网配置对应的qos策略;
(3)根据虚拟子网配置文件中的n种虚拟子网在sdn交换机中配置队列:
为每种虚拟子网配置立即转发业务cs、快速转发业务ef、确保转发业务af和尽力转发业务be四种业务队列,并将每个队列编号x:y,其中x表示虚拟子网编号,范围为0到n-1,y表示业务类型编号,y为1对应cs业务、y为2对应ef业务、y为3对应af业务和y为4对应be业务;
(4)为到达sdn交换机的分组匹配流表:
在网络流的一个分组到达sdn交换机后,将分组的源ip、目的ip、源端口、目的端口和传输协议这五元组与该交换机中所有流表的匹配域中的五元组进行匹配,如果匹配到五元组相同的流表,则跳转(8),否则,执行(5)。
(5)为分组的网络流匹配虚拟子网:
(5a)sdn交换机将分组通过openflow协议的ofpt_packet_in消息发送到sdn控制器;
(5b)sdn控制器将分组的源ip和目的ip转换成十进制整数,并在ip平衡二叉树中分别查找分组的源ip匹配的ip集合和目的ip匹配的ip集合:
对于源ip,若查找到匹配的ip集合,则记录该源ip匹配的ip集合ipsi,若未查找到匹配的ip集合,则将该源ip匹配的ip集合ipsi默认记录为ips0;
对于目的ip,若查找到匹配的ip集合,则记录该目的ip匹配的ip集合ipsj,若未查找到匹配的ip集合,则将该目的ip匹配的ip集合ipsj默认记录为ips0;
(5c)将记录的两个ip集合组合成一个虚拟子网vsn={ipsi,ipsj},i和j为ip集合编号,范围为任意非负整数,且i可以等于j;
(5d)在虚拟子网配置文件中查找与该虚拟子网vsn={ipsi,ipsj}匹配的虚拟子网vsnx,若未匹配到虚拟子网则记为vsn0,并记录该分组的网络流归属的虚拟子网编号x;
(6)取分组ip头部的tos字段数据,并判断前3bit数据的值,为分组的网络流匹配业务类型,并记录该分组的网络流匹配的业务类型编号y:
若前3bit数据的值为001,则该分组的网络流匹配为cs类型业务,
若前3bit数据的值为010,则该分组的网络流匹配为ef类型业务,
若前3bit数据的值为011,则该分组的网络流匹配为af类型业务,
若前3bit数据的值为其他值,则该分组的网络流匹配为be类型业务;
(7)为分组的网络流生成流表并发送到sdn交换机:
(7a)sdn控制器为分组的网络流生成一张流表,并设置流表的匹配域为该分组的源ip、目的ip、源端口、目的端口和传输协议这五元组,设置流表的动作域为将分组发送到编号为x:y的队列;
(7b)sdn控制器通过openflow协议的ofpt_packet_out消息,将该流表发送到sdn交换机;
(8)根据流表的动作域,sdn交换机将分组发送到编号为x:y的队列;
(9)多粒度qos控制队列调度策略为各队列中的分组提供调度服务:
(9a)在网络级粒度下,为编号x的n个虚拟子网配置一个严格优先级pq调度器,根据各虚拟子网qos策略中配置的通信优先级p的大小为不同的虚拟子网提供调度服务:
若分组到达的虚拟子网的通信优先级大于当前正在进行调度服务的虚拟子网的通信优先级,则pq调度器将为更大通信优先级的虚拟子网提供调度服务;
若分组到达的虚拟子网的通信优先级不大于当前正在进行调度服务的虚拟子网的通信优先级,则pq调度器将为当前正在进行调度服务的虚拟子网完成调度服务后继续为更小通信优先级的虚拟子网提供调度服务;
(9b)在业务级粒度下,为同一虚拟子网的编号y的cs、ef、af和be四个业务队列配置一个差额加权轮询dwrr调度器,该调度器按照各业务的通信优先级轮流为cs、ef、af和be业务队列提供调度服务,并且在每一轮调度服务中,将根据交换机出口总带宽b和各业务队列的通信带宽权值,为cs业务队列调度不超过w1*b字节的分组,为ef业务队列调度不超过w2*b字节的分组,为af业务队列调度不超过w3*b字节的分组,为be业务队列调度不超过w4*b字节的分组;
(10)各业务队列中经过调度的分组,将由sdn交换机的网卡转发离开sdn交换机。
本发明与现有技术相比,具有以下优点:
第一,由于本发明基于软件定义网络架构在一个sdn控制器中集中部署了虚拟子网匹配和业务类型匹配这些qos功能,并通过流表来集中管理多个sdn交换机实现qos策略,降低了qos功能部署以及qos策略配置的复杂度和维护成本,解决了现有技术中必须在每个传统交换机中分别部署qos功能和配置qos策略,导致网络设备维护难度高且维护成本大的问题。
第二,由于本发明在多粒度qos控制队列调度时,由于在网络级粒度使用了严格优先级pq调度器,能为不同虚拟子网下的用户提供不同的流量调度优先次序,由于在业务级粒度使用了差额加权轮询dwrr调度器,能为同一虚拟子网下不同类型的业务根据该虚拟子网的qos策略分配不同的通信带宽权值,因此可以同时从网络级粒度和业务级粒度提供qos控制,解决了现有技术中区分服务只能从业务这一个粒度提供qos控制,不能满足不同用户对qos的不同要求的问题。
附图说明
图1是本发明的实现总流程图;
图2是本发明中的ip平衡二叉树示意图;
图3是本发明中虚拟子网匹配子流程图;
图4是本发明中的多粒度qos控制队列调度示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面将结合附图和具体实施例,对本发明作进一步的详细描述。
参照图1,本发明具体步骤如下:
步骤1,在sdn控制器中创建ip平衡二叉树。
1a)将多组包含key和value的数据用于生成多个结点,其中key为二进制ip地址转换成的十进制整数,value为ip地址所属的ip集合ipsi,i为ip集合的编号,范围为任意非负整数;
本实施例使用7组包含key和value的数据生成了7个结点,如图2所示,其中:
第一结点1的key为3232235876,它是二进制ip192.168.1.100转换成的十进制整数,value为编号1的ip集合ips1;
第二结点2的key为3232235926,它是二进制ip192.168.1.150转换成的十进制整数,value为编号1的ip集合ips1;
第三结点3的key为3232235976,它是二进制ip192.168.1.200转换成的十进制整数,value为编号1的ip集合ips1;
第四结点4的key为3232236132,它是二进制ip192.168.2.100转换成的十进制整数,value为编号0的ip集合ips0;
第五结点5的key为3232236388,它是二进制ip192.168.3.100转换成的十进制整数,value为编号2的ip集合ips2;
第六结点6的key为3232236438,它是二进制ip192.168.3.150转换后的十进制整数,value为编号2的ip集合ips2;
第七结点7的key为3232236488,它是二进制ip192.168.3.200转换后的十进制整数,value为编号2的ip集合ips2;
1b)根据key值的大小对各结点排序后创建出ip平衡二叉树如图2所示。
步骤2,在sdn控制器中创建虚拟子网配置文件。
2a)配置n种虚拟子网vsn,每种虚拟子网由两个ip集合组合表示成vsnx={ipsi,ipsj},其中x为虚拟子网编号,范围为0到n-1,i和j为ip集合编号,范围为任意非负整数,且i可以等于j;
2b)为每种虚拟子网配置对应的qos策略,该qos策略包括虚拟子网的通信优先级p,以及设置虚拟子网中通过的立即转发业务cs的通信带宽权值w1、快速转发业务ef的通信带宽权值w2、确保转发业务af的通信带宽权值w3和尽力转发业务be的通信带宽权值w4,并规定各业务的通信优先级为cs>ef>af>be;
本实施例创建的虚拟子网配置文件中包括4种虚拟子网,各虚拟子网的表示方式和qos策略配置如下:
第一种虚拟子网vsn0={ips0,ips0},p=0,w1=0.25,w2=0.25,w3=0.25,w4=0.25;
第二种虚拟子网vsn1={ips0,ips1},p=1,w1=0.2,w2=0.3,w3=0.2,w4=0.3;
第三种虚拟子网vsn2={ips0,ips2},p=2,w1=0.3,w2=0.2,w3=0.25,w4=0.25;
第四种虚拟子网vsn3={ips1,ips2},p=3,w1=0.4,w2=0.3,w3=0.2,w4=0.1。
步骤3,根据虚拟子网配置文件在sdn交换机中配置队列。
本实施例的虚拟子网配置文件中有4种虚拟子网,对每种虚拟子网均要在sdn交换机中配置队列,其中:
为第一种虚拟子网vsn0配置的队列包括:编号0:1的cs业务队列、编号0:2的ef业务队列、编号0:3的af业务队列和编号0:4的be业务队列;
为第二种虚拟子网vsn1配置的队列包括:编号1:1的cs业务队列、编号1:2的ef业务队列、编号1:3的af业务队列和编号1:4的be业务队列;
为第三种虚拟子网vsn2配置的队列包括:编号2:1的cs业务队列、编号2:2的ef业务队列、编号2:3的af业务队列和编号2:4的be业务队列;
为第四种虚拟子网vsn3配置的队列包括:编号3:1的cs业务队列、编号3:2的ef业务队列、编号3:3的af业务队列和编号3:4的be业务队列。
步骤4,为到达sdn交换机的分组匹配流表。
在网络流的一个分组到达sdn交换机后,将分组的源ip、目的ip、源端口、目的端口和传输协议这五元组与该交换机中所有流表的匹配域中的五元组进行匹配,如果匹配到五元组相同的流表,则跳转(8),否则,执行(5)。
本实施例中,到达sdn交换机的一个分组的五元组为源ip192.168.1.150、目的ip192.168.3.150、源端口5000、目的端口8000和传输协议tcp,该分组的五元组未匹配到流表,执行步骤5。
步骤5,为分组的网络流匹配虚拟子网。
参照图3,本步骤的具体实现如下:
5a)sdn交换机将分组通过openflow协议的ofpt_packet_in消息发送到sdn控制器;
5b)sdn控制器将分组的源ip和目的ip转换成十进制整数,并在ip平衡二叉树中分别查找分组的源ip匹配的ip集合和目的ip匹配的ip集合:
对于源ip,若查找到匹配的ip集合,则记录该源ip匹配的ip集合ipsi,若未查找到匹配的ip集合,则将该源ip匹配的ip集合ipsi默认记录为ips0;
对于目的ip,若查找到匹配的ip集合,则记录该目的ip匹配的ip集合ipsj,若未查找到匹配的ip集合,则将该目的ip匹配的ip集合ipsj默认记录为ips0;
5c)将记录的两个ip集合组合成一个虚拟子网vsn={ipsi,ipsj},i和j为ip集合编号,范围为任意非负整数,且i可以等于j;
5d)在虚拟子网配置文件中查找与该虚拟子网vsn={ipsi,ipsj}匹配的虚拟子网vsnx,若未匹配到虚拟子网则记为vsn0,并记录该分组的网络流归属的虚拟子网编号x;
本实施例中,分组的源ip192.168.1.150转换成的十进制整数为3232235926,在图2的ip平衡二叉树中查找到结点2,因此匹配的ip集合为ips1;分组的目的ip192.168.3.150转换成的十进制整数为3232236438,在图2的ip平衡二叉树中查找到结点6,因此匹配的ip集合为ips2;将这两个ip集合组合成一个虚拟子网vsn={ips1,ips2},该虚拟子网vsn={ips1,ips2}在虚拟子网配置文件中匹配到vsn3,因此记录该分组的网络流归属的虚拟子网编号x为3。
步骤6,取分组ip头部的tos字段数据,并判断前3bit数据的值,为分组的网络流匹配业务类型,并记录该分组的网络流匹配的业务类型编号y。
若前3bit数据的值为001,则该分组的网络流匹配为cs类型业务;
若前3bit数据的值为010,则该分组的网络流匹配为ef类型业务;
若前3bit数据的值为011,则该分组的网络流匹配为af类型业务;
若前3bit数据的值为其他值,则该分组的网络流匹配为be类型业务。
本实施例中,分组ip头部的tos字段数据为010,因此该分组的网络流匹配为ef业务类型,并记录该分组的网络流匹配的业务类型编号y为2。
步骤7,为分组的网络流生成流表并发送到sdn交换机。
7a)sdn控制器为分组的网络流生成一张流表,并设置流表的匹配域为该分组的源ip、目的ip、源端口、目的端口和传输协议这五元组,设置流表的动作域为将分组发送到编号为x:y的队列;
7b)sdn控制器通过openflow协议的ofpt_packet_out消息,将该流表发送到sdn交换机。
本实施例中,sdn控制器为该分组的网络流生成的流表的匹配域设置为源ip192.168.1.150、目的ip192.168.3.150、源端口5000、目的端口8000和传输协议tcp这五元组,流表的动作域为将分组发送到编号为3:2的队列;sdn控制器通过openflow协议的ofpt_packet_out消息,将该流表发送到sdn交换机。
步骤8,根据流表的动作域,sdn交换机将分组发送到编号为x:y的队列。
本实施例中,流表的动作域为将分组发送到编号为3:2的队列,因此sdn交换机将分组发送到编号为3:2的队列。
步骤9,多粒度qos控制队列调度策略为各队列中的分组提供调度服务。
9a)在网络级粒度下,为编号x的n个虚拟子网配置一个严格优先级pq调度器,根据各虚拟子网qos策略中配置的通信优先级p的大小为不同的虚拟子网提供调度服务:
若分组到达的虚拟子网的通信优先级大于当前正在进行调度服务的虚拟子网的通信优先级,则pq调度器将为更大通信优先级的虚拟子网提供调度服务;
若分组到达的虚拟子网的通信优先级不大于当前正在进行调度服务的虚拟子网的通信优先级,则pq调度器将为当前正在进行调度服务的虚拟子网完成调度服务后继续为更小通信优先级的虚拟子网提供调度服务。
9b)在业务级粒度下,为同一虚拟子网的编号y的cs、ef、af和be四个业务队列配置一个差额加权轮询dwrr调度器,该调度器按照各业务的通信优先级轮流为cs、ef、af和be业务队列提供调度服务,并且在每一轮调度服务中,将根据交换机出口总带宽b和各业务队列的通信带宽权值,为cs业务队列调度不超过w1*b字节的分组,为ef业务队列调度不超过w2*b字节的分组,为af业务队列调度不超过w3*b字节的分组,为be业务队列队列调度不超过w4*b字节的分组。
本实施中,交换机出口总带宽b为10000字节,根据步骤2创建的虚拟子网配置文件中的4种虚拟子网及其qos策略,第一种虚拟子网vsn0的通信优先级p为0,第二种虚拟子网vsn1的通信优先级p为1,第三种虚拟子网vsn2的通信优先级p为2,第四种虚拟子网vsn3的通信优先级p为3。
参照图4,本实施例的队列调度策略是在网络级粒度和业务级粒度下为分组提供调度服务。其实现如下:
在网络级粒度下,pq调度器为这4个虚拟子网提供的优先调度顺序为vsn3、vsn2、vsn1、vsn0;
在业务级粒度下,dwrr调度器为同一虚拟子网的不同业务队列提供的每一轮调度服务为:
若是第一种虚拟子网vsn0获得调度服务,则为编号0:1的cs业务队列调度不超过2500字节的分组,为编号0:2的ef业务队列调度不超过2500字节的分组,为编号0:3的af业务队列调度不超过2500字节的分组,为编号0:4的be业务队列调度不超过2500字节的分组;
若是第二种虚拟子网vsn1获得调度服务,则为编号1:1的cs业务队列调度不超过2000字节的分组,为编号1:2业务队列调度不超过3000字节的分组,为编号1:3业务队列调度不超过2000字节的分组,为编号1:4业务队列调度不超过3000字节的分组;
若是第三种虚拟子网vsn2获得调度服务,则为编号2:1的cs业务队列调度不超过3000字节的分组,为编号2:2业务队列调度不超过2000字节的分组,为编号2:3业务队列调度不超过2500字节的分组,为编号2:4业务队列调度不超过2500字节的分组;
若是第四种虚拟子网vsn3获得调度服务,则为编号3:1的cs业务队列调度不超过4000字节的分组,为编号3:2业务队列调度不超过3000字节的分组,为编号3:3业务队列调度不超过2000字节的分组,为编号3:4业务队列调度不超过1000字节的分组。
步骤10,各业务队列中经过调度的分组,将由sdn交换机的网卡转发离开sdn交换机。
以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。