基于SDN的特殊流量QOS保障方法
技术领域
本发明涉及一种网络QOS(Quality of Service,服务质量)保障方法,具体地说,是涉及一种基于SDN(Software Defined Network,软件定义网络)的特殊流量的QOS保障方法。
背景技术
IP网络提供尽力而为的服务,用最短路转发分组。这种简单的设计让IP网络在竞争中脱颖而出,成为当今互联网的基础。但随着VoIP(Voice over InternetProtocol,网络电话)、IPTV(Internet Protocol Television,全名网络协定电视)、在线流媒体等应用的兴起,IP网络无法提供QOS保障的软肋逐渐显现。为应对这个问题,学术界和产业界做了很多尝试,例如IntServ(Integrated Services,综合服务)和DiffServ(Differenciated Service,区分服务)的方案,以及MPLS-TE(多协议标签交换)等手段,但由于它们实现复杂,部署困难,并没有得到广泛应用。总的来说,在IP网络中提供QOS保障仍是一个挑战。SDN的出现为QOS保障提供了新的契机。
SDN具有控制与转发分离,集中式控制和网络可编程的特点。控制器集中式地管理网络状态信息,利用网络全局视图,可以实现更有策略的路由算法和控制逻辑。本发明要解决的技术问题就是如何利用SDN在尽力而为的IP网络中为特殊业务提供QOS保障。
发明内容
本发明的目的在于提供一种基于SDN的特殊流量的QOS保障方法,主要解决现有网络无法提供QOS保障的问题。
为了实现上述目的,本发明采用的技术方案如下:
基于SDN的数据中心网路流量工程方法,包括以下步骤:
(1)SDN控制器根据业务注册的情况,对网络中的业务流量进行区分,将网络中的流量分为普通流量和有QOS需求的特殊流量(注册的业务流量为特殊流量,没注册的流量为普通流量),分别对普通流量和特殊流量调用不同的处理模块、用不同的路由算法来处理。
(2)对网络中的普通流量,采用普通流的路由模型,对网络中的路径进行不同的权重设置,使普通流选路的时候尽量避开特殊流。当网络中链路的权重设置完成以后,使用Dijkstra(迪杰斯特拉,单源最短路径)算法,找出源节点到目的节点的最短路并发送数据。
(3)对网络中的特殊流量,首先判断网络能否接纳这条流,为它提供所需的QOS保障。如果判断结果是能接纳,则直接调用QOS选路算法;如果判断结果是不能接纳,控制器并不草率地认为当前网络不具有满足QOS需求的转发路径,而是通过尝试路径的动态调整,将一条和新到达的流同源同宿的现有特殊流迁移到其它路径,来容纳较大的新到达的特殊流。如果调整现有流量后仍然不能接纳新到的特殊流,则拒绝,否则调整现有的特殊流,同时接纳新流。
(4)对接纳的特殊流采用QOS选路算法,即结合多QOS指标聚合权重,根据聚合后的权重,利用k-shortest paths(K条最短路径)算法,选出备选路径,并从备选路径集中筛选出一条符合QOS需求并且负载最为均衡的路径作为最终的结果。
(5)当网络出现链路负载过高,尤其是丢包严重的时候,丢弃部分普通流的分组来保障特殊流的QOS需求。
步骤(1)中,所述业务流量区分通过以下步骤得出:
(1a)在SDN网络中,在服务器向用户发送数据包之前,服务器会根据业务的需求,将需要QOS保证的业务在控制器中进行注册。控制器中有一个注册管理模块对注册业务进行管理。
(1b)当数据包在发送时,控制器会查看注册管理模块,将未注册的业务流量设为普通流量,将已经注册的业务流量设为特殊流量。分别对普通流量和特殊流量调用不同的处理模块进行处理。
所述步骤(2)具体包括以下步骤:
(2a)对网络中的普通流量,采用普通流路由模型,对网络中的路径进行不同的权重设置,使普通流选路的时候尽量避开特殊流。普通流的路由模型如(2b)所述。
(2b)设G(N,E)表示网络拓扑,其中N是顶点集合,E是边的集合,e∈E表示一条边;
Rst表示源点为s,宿点是t的所有路由的集合,r∈Rst表示其中的一条路由;
ce表示链路e上容量(最大可用带宽);
ve表示当前链路e上的负载(当前已用的带宽);
re表示链路e上的剩余带宽,ve+re=ce;
θ'e表示链路上e在普通流选路时的权重;
分别表示链路e上的特殊流和普通流的比例,
α,β是两个参数,用于控制普通流和特殊流尽量分开,β>α.
α,β是两个参数,用于控制普通流和特殊流尽量分开,β>α,
代表所求目标,即目标是求源点为s,宿点是t的所有路由中,权重最小的路由,代表约束条件,
因此,普通路的路由模型表示为:
该模型可以理解为,以加权的链路利用率为权重,选择一条总代价最小的路径。
(2c)当网络中链路的权重设置完成以后,使用以θ′e为链路权重的Dijkstra算法,找出源节点到目的节点的最短路,按照该最短路发送数据。
所述步骤(3)具体包括以下步骤:
(3a)对网络中的特殊流量,采用保障QOS的特殊流路由模型。该模型如下:
de表示链路e上的时延,le表示链路e上的丢包率,jr表示路径r上的时延抖动,θe表示链路e上的利用率,re+ve=ce;b表示QOS流的带宽需求,dmax表示端到端允许的时延最大值,lmax表示端到端允许的丢包率最大值,jmax表示端到端允许的时延抖动最大值,代表优化目标,即目标是网络负载均衡,s.t.代表约束条件,则
这个模型数学化了QOS保障的特殊流,为一条具有QOS要求的特殊流选择一条满足的各个QOS指标,同时使网络负载最均衡的路径。
(3b)对网络中的特殊流量,首先判断网络能否接纳这条流,为它提供所需的QOS保障,即根据步骤(3a)所述模型,判断网络提供的路径能否同时满足时延约束、丢包率约束、带宽约束、时延抖动约束。判断的方法:1)预处理网络拓扑,删除带宽约束不满足的边来减少网络拓扑。2)在处理后的拓扑中分别找出时延最小、抖动程度最小、丢包率最小的路径,看它们每个是否满足其对应的指标要求。其中任何一个不满足,都初步判定不能接纳。
(3c)如果判定结果为可以接纳,则调用QOS选路算法来处理;如果判定结果为不能接纳,则检测能否通过调整网络中现有的QOS流的路径来接纳这条新流。基本的思路是,假设用这条新流替换网络中与它同源同宿的一条现有流(并没有真正替换,还处在算法计算阶段),而把这条替换出来的流当作“新到流”来处理,能否安排进网络。如果还是不能,则拒绝,否则调整那条被替换出来的流到新的路由,同时接纳新流。
所述步骤(4)具体包括以下步骤:
(4a)在确定了网络资源有可能接纳一条新到的特殊流之后,通过使用聚合权重的方式,设we表示链路e上的聚合权重,we=r1de+r2Je+r3Le,其中r1+r2+r3=1,然后以we作为链路权重,使用K-Shortest-Paths算法,得到备选路径集P1,然后删除不满足任意一个QOS指标的备选路,得到备选路径集合P2,再找出使网络负载最均衡的一条作为新到特殊流的路由。如果最后没有满足的路径,则拒绝这条新到的流。
所述步骤(5)具体包括以下步骤:
(5a)当网络中出现普通流量挤占特殊流量资源的时候,我们需要对普通流量进行抑制,而抑制的方式则是使用随机丢掉普通流的分组,来触发TCP的拥塞控制机制,降低发送端的发送速率,从而解决普通流量挤占特殊流量资源的问题。
综上述,本发明把网络中的流量分为普通流量和有QOS需求的特殊流量,分别对普通流和特殊流设计不同的路由算法。通过巧妙的链路权重设置,让普通流的选路尽量避开特殊流,降低普通流突发性对视特殊QOS指标的影响。此外,对特殊流不仅提供了多QOS指标约束下的路由算法,而且可以调整网络中现有的其他特殊流,提高网络吞吐。
与现有技术相比,本发明具有以下有益效果:
(1)通过使用本发明中的算法,能够为特殊业务(如视频业务)提供QOS保证,本发明不像IntServ(Integrated Services,综合服务)等方案需要交换设备额外的功能支持,不必实现复杂的分布式协议,实现简单;作为控制器上的应用,部署容易。
附图说明
图1为本发明的整体流程示意图;
图2为本发明的网络拓扑示意图一;
图3为本发明的实施例网络拓扑示意图二;
图4为本发明的实施例流量分配示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。
实施例
为了解决网络中特殊业务数据流的QOS保证的问题,本发明提供了一种基于SDN的特殊流量的QOS保障工程方法,如图1所示,该方法包括:
对到来的流进行区分,根据流量是否注册来判断该数据流是普通流量还是特殊流量。
对于普通流,使用以θ'e为链路权重的Dijkstra算法。通过一个简单的例子来说明它是如何使普通流和特殊流尽量分开的。如图2所示,链路容量为10Mbps,其中s1-s2-s4的路径上全部都是特殊流,链路负载为3Mbps,而s1-s3-s4路径上全部都是普通流,链路平均负载也是3Mbps,现在新到一条普通流。设此时的α=1,β=3,链路s1-s2,s2-s4上的权重都是θ'e=0.9,而s1-s3,s3-s4上的权重为θ'e=0.3,因此使用选择出来的最小权重路径是s1-s3-s4,也即普通流倾向于走同样的路径。关于α,β值的设定,可以根据对分离程度的需求灵活设定。
对于特殊流,首先判断网络能否接纳这条流,为它提供所需的QOS保障,如果不能,则检测能否通过调整网络中现有的QOS流来接纳这条流。如果确定能接纳这条流,就为它选择一条使网络负载最均衡的最佳路由。
判断能否接纳一条流,1)检测能否找到一条路径上最小可用带宽都大于需求b的路;2)分别找出时延最小、抖动程度最小、丢包率最小的路径,看它们每个是否满足其对应的指标要求。其中任何一个不满足,都初步判定不能接纳,于是检测能否通过调整网络中现有的QOS流的路径来接纳这条新流。基本的思路是,假设用这条新流替换网络中与它同源同宿的一条现有流(并没有真正替换,还处在算法计算阶段),而把这条替换出来的流当作“新到流”来处理,能否安排进网络。如果还是不能,则拒绝,否则调整那条被替换出来的流到新的路由,同时接纳新流。(可以预处理拓扑,比如删除带宽约束不满足的边来减少网络拓扑,提高判断阶段的效率。)
在确定了网络资源有可能接纳一条新到的特殊流之后,通过使用聚合权重的方式,设we表示链路e上的聚合权重,we=r1de+r2Je+r3Le,其中r1+r2+r3=1,然后以we作为链路权重,使用K-Shortest-Paths算法,得到备选路径集P1,然后删除不满足任意一个QOS指标的备选路,得到备选路径集合P2,再找出使网络负载最均衡的一条作为新到特殊流的路由。如果最后没有满足的路径,则拒绝这条新到的流。
另外,当网络出现链路负载过高,尤其是丢包严重的时候,丢弃部分普通流的分组来保障QOS需求。
该方法能有效保证了网络中特殊业务流量的QOS,提高了网络传输特殊业务的能力。
本发明的具体实现方法如下:
步骤一、SDN控制器获取如图3所示的全网拓扑信息,由图示的拓扑可知,全网一共有5个节点、6条链路,每条链路的带宽为10M,其中链路s1-s3的状态为高延时,链路s3-s5的状态为高抖动、高丢包率,其余链路的延时、抖动、丢包率都很低,可忽略不计。为了使网络正常工作,每条链路的利用率不能超过90%。现在,节点s1向节点s5发送6条数据流量,每条流量按照注册与否分为特殊流和普通流,流的信息如下:
Flow1:特殊流,带宽需求为2M
Flow2:特殊流,带宽需求为5M
Flow3:普通流,假设会持续占有5M的带宽
Flow4:普通流,假设会持续占有3M的带宽
Flow5:特殊流,带宽需求为3M
Flow6:带宽需求为6M
以上的flow均按照顺序先后到达。控制器按照流的类型调用不同的处理模块来转发流。
步骤二、开始,特殊流Flow1进入网络,控制器会判断是否接纳。网络中存在三条路径:s1-s2-s5、s1-s3-s5、s1-s4-s5。三条路径的带宽都满足,但路径s1-s3-s5是一条高延时、高抖动、高丢包率的链路,不能保证流量的QOS,故舍弃。Flow1从路径s1-s2-s5和s1-s4-s5中选出一条路径即可。这里假设选择路径s1-s2-s5。
步骤三、稍后,特殊流Flow2进入网络。控制器判断能否接纳,判断结果是能接纳。由于Flow1已经占据了路径s1-s2-s5,出于均衡,Flow2会选择另一条路径s1-s4-s5。
步骤四、之后,普通流Flow3进入网络。由于Flow3是普通流,所以不考虑延时、抖动、丢包率的影响。由于s1-s2-s5、s1-s4-s5已经有特殊流,为了使普通流和特殊流隔离,所以选择路径s1-s3-s5。
步骤五、之后,普通流Flow4进入网络。此时网络中的三条路径均有流量。为了使普通流和特殊流隔离,根据所述普通流的路由模型:
设此时的α=1、β=3,在路径s1-s2-s5中,θe=2/10*(1*0+3*1)=0.6;在路径s1-s3-s5中,θe=5/10*(1*1+3*0)=0.5;在路径s1-s4-s5中,θe=5/10*(1*0+3*1)=1.5;所以三条路径中,s1-s3-s5的权重最轻,故选择路径s1-s3-s5。
步骤六、之后,特殊流Flow5进入网络。控制器判断能否接纳,判断结果是能接纳。由于路径s1-s2-s5中,流量为2M;路径s1-s4-s5中,流量为5M。出于均衡,Flow2会选择路径s1-s2-s5。
步骤七、之后,特殊流Flow6进入网络。控制器判断能否接纳,判断结果是不能接纳。于是控制器检测能否通过调整网络中现有的特殊流的路径来接纳这条新流。首先,假设用这条新流替换网络中与它同源同宿的一条现有流,即用Flow6来替换Flow5,则此时路径s1-s2-s5中,存在Flow1和Flow6,占用带宽为8M,替换出来的Flow5调整到s1-s4-s5中,s1-s4-s5中存在Flow2和Flow5,占用的带宽为8M,满足要求。故调整Flow5到路径s1-s4-s5中,将Flow6安排到路径s1-s2-s5中。最后,网络中各个流量的分配如图4所示。
步骤八、另外,如果当网络出现链路负载过高,尤其是丢包严重的时候,丢弃部分普通流的分组来保障QOS需求。