一种高流量调整能力的混合SDN网络部署方法与流程

文档序号:12693148阅读:216来源:国知局
一种高流量调整能力的混合SDN网络部署方法与流程

本发明属于软件定义网络(SDN)技术领域,涉及一种高流量调整能力的混合SDN网络部署方法。



背景技术:

随着互联网的迅速发展,互联网的规模越来越大,互联网服务也越来越多。与此同时,网络管理员却依然要通过使用各种各样的命令手动逐行配置复杂的网络服务。这使得管理员的管理效率已经难以满足当前网络的需求,网络出现故障的情况也越来越普遍。如果不能尽早研究出更好的网络管理方案,将来互联网出现问题的频率将会越来越高。因此如何对网络进行有效管理已经成为亟待解决的问题。

为了解决这个问题,很多工作都对这个问题进行了相关研究,但由于这些解决方案实现起来都比较复杂(最典型的就是多协议标签交换,即MPLS),因此它们都难以大规模商用。

与此同时,斯坦福大学提出的SDN逐渐吸引了人们的注意,它就是为了解决当前网络难以管理这个问题而被提出来的。SDN是一种新型的网络架构,它将网络中的控制平面和转发平面分离开来,使得管理员能够对网络实现集中式、自动化的高效管理。正是由于SDN的巨大潜力,学术界和工业界包括谷歌、思科、华为等公司都对它的研究投入了大量精力。

不过虽然SDN是一种很有前景的网络管理解决方案,但要在短期内实现SDN的完全部署还存在一些问题,如代价太高、功能不成熟等问题。比如对于端口数相同、转发速率相同的转发设备,SDN交换机要比传统的路由器贵五倍。

为了解决这个问题,目前已经有很多研究人员开始研究如何通过部署少量的SDN交换机来实现对网络的有效管理。这些解决方案将传统网络中的一些路由器替换成SDN交换机,通过控制器对这些SDN交换机进行控制,从而实现对网络的有效管理。不过它们也都存在一个很大的问题,那就是这些解决方案对网络流量的调整能力还存在一些不足。有的SDN交换机的部署完全是随机的,有的则是根据网络的流量分布来部署的,还有的部署方案只能使少量的流量能够得到调整。这就造成这些解决方案的流量调整能力要么没有通用性,要么调整能力较弱。



技术实现要素:

根据上述背景技术中存在的缺陷和不足,发明了一种高流量调整能力的混合SDN网络部署方法。在这种新的部署方法中,首先需要利用SDN交换机来监控一些链路的负载。然后,SDN控制器就可以根据这些链路负载,为经过SDN交换机的流量选择合适的转发路径。这就是本方案所在的网络环境的整体工作流程。为了保证在网络负载变化趋势难以预测的情况下,依然能保证这个网络中有尽量多的流量能被合理调整,本发明通过合理部署SDN交换机实现了这个目标。因此,本发明的目标是通过在传统网络中合理选择给定数量的传统路由器并把它们替换成SDN交换机,实现在网络负载变化趋势难以预测的情况下依然能保证部署的SDN交换机对网络流量具有较高的调整能力。

为了实现这个目标,本发明会先计算出每条流的默认路径(最短路径)和可以走的备选路径。然后在部署SDN交换机的时候,尽量将能满足以下两点条件那些节点部署为SDN交换机。

●能够让更多流既能走最短路径又能走它们的备选路径的节点;

●上一条约束中提到的这些最短路径和备选路径所涉及到的链路的负载要能通过部署的SDN交换机获得到。

在传统网络中,当网络拓扑确定之后,任意两个节点之间的流量的路径也会确定,这个路径就是这些流量默认要走的路径(一般是最短路径)。因此传统网络中流量的路径难以根据网络负载进行调整。而在当前大多数的混合SDN网路中,它们会将这个网络中的一些传统路由器替换成SDN交换机,然后就可以通过SDN控制器控制这些节点,从而让经过这些节点的流量有机会走其它路径到达终点,就可以满足流量工程的需求。

然而,在当前的混合SDN网络解决方案中,部署的SDN交换机对流量调整能力都存在局限性。有的SDN交换机的部署是完全随机的,根本不考虑SDN交换机位置对流量调整能力的影响。有的是根据网络的负载特点来部署的,但由于网络的负载难以预测,而且经常会出现预测不准确的问题,就会导致这种部署方案的效果经常会大打折扣。还有的部署策略只能使网络中少量的流量能被调整,对网络负载的调整能力较小,会影响流量调整的总体效果。上述几个方案要么不具有通用性,要么对网络流量的调整能力比较弱。

为了提高对流量的调整能力,在这种新的部署方法中,先计算出每条流的默认路径(在本发明中即为最短路径)、该流可以走的其它备选路径以及将该流调整到它的备选路径上时需要知道哪些链路的负载这三种信息。然后在部署SDN交换机的时候,优先选择将能够让更多流既能走最短路径、又能走它们的备选路径且需要知道的负载都能获得的那些节点部署为SDN交换机。由于本发明是根据网络拓扑来选择SDN交换机的部署位置的,因此本发明中的SDN交换机在网络负载变化后依然能保证对网络流量具有较高的调整能力。

本发明采用的技术方案如下:

一、通过合理选择流的备选路径并增加网络可被调整的流数量,提高对混合SDN网络流量调整能力的具体策略

将各节点能调整网络中流的数量作为衡量网络节点对流量的调整能力,也就是将每个网络节点能让多少经过这个节点的流变换传输路径作为衡量它们对网络流量调整能力的重要指标。换句话说,如果某个网络节点能变换最多的流的传输路径,就可以认为这个网络节点对流量的调整能力最大。

本发明中的一条流是指这样的一些流量的集合,这些流量经过的第一个网络节点(可以是混合SDN网络中的传统路由器,也可以是混合SDN网络中的SDN交换机)必须相同,且它们通过的最后一个网络节点也必须相同。值得注意的是,SDN领域中通常所说的流有多种粒度,而本发明提到的流只是其中的一种。

另一方面,网络中能变换传输路径的流越多则SDN交换机对网络的流量调整能力越大也不是绝对的。这是因为如果这些可被变换传输路径的流的备选路径都很长,就算网络中能变换传输路径的流最多,在实际的流量工程工作中,会因为这些备选路径过长而导致这些流其实根本不会被调整到这些备选路径上,这就会造成实际上能被调整的流数量不多,这就会削弱对网络流量的调整能力。因此为了让本发明具有较高的实用价值,还要认真考虑如何为流选择备选路径的问题。当然,为流选好了备选路径之后,那么就可以认为网络中能变换传输路径的流越多则SDN交换机对网络的流量调整能力越大。

(1)流的备选路径的选择策略

只用一个SDN交换机就可以让这条流从最短路径上调整到这个备选路径上。也就是说,当一个SDN交换机将这条流调整到该流的备选路径上后,该备选路径上的所有节点只负责将该流通过自身到该流的目的地的最短路径进行转发。这样就可以在流的备选路径数量较多的同时,保证备选路径不会太长。

(2)增加网络可被调整的流数量的策略

如果SDN交换机s和流f满足以下条件,那么说s可以调整这条流f:

●s在流f的默认路径上,即为在最短路径上;

●流f至少有两条备选路径;

●s能够调整流f使之能够经过另一条备选路径到达终点;

●流f的最短路径和s能够将f调整到的备选路径上的所有非公用链路都至少连接一个SDN交换机

二、构建相关数学模型

●部署的SDN交换机的个数等于规定要部署的SDN交换机的个数;

●所有SDN交换机能调整的总的流数量最大。

根据约束条件及求解目标,建立如下数学模型:

·Maximize:

·Subject to:

用无向图G(V,E)表示网络拓扑,用到的各个参数及其含义如下表。

约束(1)规定了要部署的SDN设备的个数。约束(2)表示如果节点w被部署为SDN设备且链路(u,v)的任意一端连接节点w,则链路(u,v)可被监控。约束(3)和(4)表示节点w能调整流f(i,j)所需要知道的链路负载确实能够得到,则w在当前情况下能够调整f(i,j)。约束(5)表示如果f(i,j)能被任一节点调整,则该流在当前情况下确实能被调整。该数学模型的主要工作是选择M个节点,使得这M个节点能调整的流数量最多。

三、近似算法的选取及求解

该算法称为Monitor-TE算法,分为两个部分:

第一部分就是计算出各个节点能够调整哪些流,以及对应依赖的链路。通过多次利用Dijkstra算法求解,此部分的时间复杂度为O(|E|·|V|3)。

第二部分就是依次选择能增加最多可调整流的节点,将这些节点部署成SDN 交换机。此部分的时间复杂度为O(M·|V|3)。由于M小于|V|,因此本算法总的时间复杂度为O(|E|·|V|3)。每个节点能调整的流数量最坏都会小于|V|,因此这部分的时间复杂度通常不超过O(M·|V|2),另外本算法第一部分的时间复杂度通常为O(|V|4),因此本算法的时间复杂度通常情况下不超过O(|V|4)。

所述的Monitor-TE算法处理过程如下:

输入:F,各节点能调整的流集合(不考虑链路负载的情况下)

E,各节点在调整各流时,需要知道负载的链路集合

T,部署各个节点后可以监控的链路集合

输出:C,当前已被部署成SDN交换机的节点集合

A,当前已能被调整的流集合

其中,F(v)表示节点v能调整的流集合,E(f,v)表示节点v要调整流f要依赖的链路集合,T(v)表示部署节点v后可以监控的链路集合,U(s)表示s节点因为某些链路的负载没被监控而不能调整的流集合,F(s)表示节点s能调整的流集合,T(s)表示部署节点s后可以监控的链路集合。

本发明的Monitor-TE算法先计算出网络中每个节点能调整的流数量,然后优先部署能调整最多流的节点。当然这里能调整最多的流不但需要这条流能被某个SDN交换机调整到它的备选路径上,还需要该流的最短路径和这个备选路径的非公有链路的负载能够被已部署的SDN交换机监控到。因为节点能调整的流数量和该节点的度数具有正相关性,而能调整最多的流也必然需要能通过SDN交换机监控更多的链路负载,因此这正好达到让部署的SDN交换机能调整最多的流的目标。这个算法不但保证了部署的SDN交换机能调整更多的流量,也使得较多的链路负载能被监控。

本发明通过合理选择传统路由器并把它们替换成SDN交换机,实现在网络负载变化趋势难以预测的情况下依然能保证部署的SDN交换机对网络流量具有较高的调整能力。

附图说明

图1是本发明所在的网络环境图。

图2是本发明的工作原理图。

图3是本发明中的流的定义图。

图4是备选路径选取策略图。

图5解释了为什么与SDN交换机直接相连的链路负载能够被获得。

图6是流能被调整的定义图。

图7用例子讲述了Monitor-TE算法。

图8为图1至图7的附图说明。

具体实施方式

下面结合附图和实例对本发明进行详细说明。

图1展示了本发明所在的网络环境。在本发明中,SDN控制器只需要利用SDN交换机能监控到的链路负载,并合理地调整网络负载。在这种混合SDN网络中,如果还未部署任何SDN交换机,那么此时就相当于是一个传统网络。那么当网络拓扑确定之后,任意两个节点之间的流量的路径也会确定,这个路径就是这些流量默认要走的路径,一般是最短路径。如果这个混合SDN网络中部分的节点被部署成了SDN交换机,由于这些网络节点可以由SDN控制器控制,因此经过这些节点的流量就可以根据需要通过其它路径到达终点。而只经过剩余的传统路由器的流量则只能通过最短路径到达目的地。

图2展示了利用本发明部署的混合SDN网络进行负载均衡的工作原理图。在控制器中添加的功能包括三个方面,分别为链路信息收集模块、流的路径计算模块和负载均衡模块。链路信息收集模块负责从部署的SDN交换机上获取与SDN交换机直接相连的链路使用情况,流的路径计算模块负责为网络中的流量计算它们能走的路径,负载均衡策略模块负责根据网络负载为网络流量选择负载小的路径。

图3展示了在本发明中哪些流量属于同一条流。节点0和节点1都是网络转发节点,根据本发明的定义,本发明中的流f(0,1)包括h1到h3的流量、h1到h4的流量、h2到h3的流量和h2到h4的流量。

图4展示了为了增加对网络流量的调整能力,应如何为各条流选择备选路径。流f(0,1)的最短路径是0-1。除此之外,这条流还有两条路径可选,分别为0-5-1和0-4-3-2-1。如果将路径0-4-3-2-1选做这条流的备选路径,那么当有流量需要从0发往1时,0就要将这些流量转发到4节点。由于4到1的最短路径是4-0-1,因为4是传统路由器,所以4就会根据最短路径将流量转发到0,而并没有像预想的那样将流量往3转发。因此这些流量无法仅仅在0的帮助下通过路径0-4-3-2-1到达1,所以0-4-3-2-1就不是这条流的合格的备选路径。针对这种情况,有两种解决方案,第一种就是将4也替换成SDN交换机,但是这样做的话不但会使备选路径的计算变得很复杂,而且还会损失一定的SDN交换机对流量的调整能力(因为需要两个SDN交换机才能调整一条流),另外还会造成这些流量所经过的链路过多造成延迟增大和网络负载加重。所以最好的解决方案就是第二种解决方案,就是不把路径0-4-3-2-1作为此流的备选路径,这样的话就不会有上述的各种问题。反之,对于路径0-5-1,不仅通过0就可以将流量调整到这条路径上,而且将流量调整到这条路径上后也不会让这些流量经过的链路增加太多,具有较高的实用价值。因此才规定了上面的备选路径的选取规则。

图5解释了为什么与SDN交换机直接相连的链路负载能够被获得。节点1知道从自己启动到现在向链路(1,4)发送了和接收了多少字节的数据,即为t1与r1之和。由于该节点被部署成了SDN交换机,因此控制器可以通过这个交换机获取链路(1,4)在最近这个阶段中经过的数据量。同理可知,链路(1,2)在最近这个阶段中经过的数据量也可以获得到。即所有和SDN交换机直接相连的链路的负载都可以获得到。在本解决方案中,与传统路由器直接相连不与SDN 交换机直接相连的链路的负载则无法被获得。

图6展示了什么情况下流能被某个节点调整。在图6(a)中,路径0-2-4是流f(0,4)的默认路径,0在流f(0,4)的默认路径上,而且0能够让流f(0,4)不走其默认路径而走路径0-1-4,并且该流的最短路径0-2-4和备选路径0-1-4上的所有非公有链路都能被某个SDN交换机监控到。因此说0可以调整流f(0,4)。同理可知,2也可以调整流f(0,4)。而在图6(b)中,前面部分和图6(a)相同,只不过该流的最短路径0-2-4和备选路径0-1-4上的一条非公有链路(1,4)不能被监控,因此节点0就不能调整流f(0,4)。

图7和下表展示了用Monitor-TE算法在传统网络中部署三个SDN交换机的求解过程。其中,下表的第2到第6行表示在某个部署轮次部署了某个节点后可以增加哪些可被调整的流,第7行表示每个轮次结束后集合A里含有的元素,第8行表示每个轮次后集合C里应该有的元素。另外,在下面的表中只列出了几个比较关键的变量,其它的可以根据之前的讲述进行理解。

刚开始时,传统网络中没有部署任何SDN交换机,这时所有链路负载都无法获得,并且没有流能被调整。由于第一轮中节点3能够干涉最多条流的转发路径,因此第一轮将节点3部署为SDN交换机。这里要注意的是部署第一个节点时不考虑链路负载的情况,因为部署第一个节点时,无论部署哪一个都不能调整网络中的任意一条流,因此第一步只考虑部署能够干涉最多条流的转发路径的节点。这时链路(2,3),(3,4)的负载就能够通过节点3获得了,但网络中没有流能被调整。第二轮时,由于节点4能新增加更多被调整的流,包括f(1,2),f(1,3),f(3,0),f(3,1),f(3,2),f(3,4),f(4,0),f(4,2),f(4,3),因此这轮将节点2部署为SDN交换机。比如对于流f(1,3),这一轮部署了节点2后,就能保证它能被调整。流f(1,3)的最短路径是1-4-3。由于节点1是传统路由器,因此它将会把从节点发往节点3的流f(1,3)通过最短路径转发到节点4。由于节点4是SDN交换机,且节点4到节点3的备选路径4-2-3上的链路负载都知道,最短路径4-3上的链路负载也知道,因此节点4就可以根据这两条路径的负载情况选择为这些流量选择合适的转发路径。即节点4可以让通过路径1-4-3转发到目的地,也可以通过路径1-4-2-3转发到目的地(节点2是传统路由器,因此如果流量到达节点2后它便会将流量转发到节点3)。这是因为这两条路径的非公有链路有链路(2,3),2,4),(3,4)这三条,只需要比较这三条链路的负载就可以合理为流f(1,3)选择走路径1-4-2-3还是路径1-4-3。而且这三条链路的负载都可以通过已部署的SDN交换机(节点3或节点4)获得,因此此时流f(1,3)就是可被调整的。其它的流都可以此类推。这时可被监控的链路有(2,3),(3,4),(1,4),(2,4)。第三轮时,由于节点0能新增加更多被调整的流,包括f(0,3),f(0,4),f(2,1),f(2,3),f(2,4),因此这轮将节点0部署为SDN交换机。此时所有链路负载已经都能被获得了。因此最终的结果是将三个SDN交换机部署在节点0,3,4上,剩余的节点则依然沿用原来的传统路由器。

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