保证时延最小的SDN网络多控制器部署方法与流程

文档序号:11279095阅读:558来源:国知局
保证时延最小的SDN网络多控制器部署方法与流程

本发明属于下一代网络控制与管理和软件定义网络领域,是一种新颖的用于对软件定义网络合理分区以及部署控制器算法。具体涉及到一种保证时延最优的情况下对软件定义网络整片网络进行分区,并进行控制器部署的一种算法。具体讲,涉及保证时延最小的sdn网络多控制器部署算法。



背景技术:

近年来,各大运营商、设备商及大型政企用户对互联网的投入成本越来越大,与此同时,社交网络、物联网等的发展速度增快,数据量爆炸增长,这些都使得传统互联网架构暴露出越来越多的问题。

软件定义网络是一种新兴的网络体系架构,其主要思想是将数据的控制和转发分离开来,从而实现集中控制。控制功能由控制器实现,一个控制器控制许多转发设备,转发设备依据控制器下发的规则实现数据的转发。

sdn使管理者可以对数据的转发进行精细的控制,同时交换机也能够被做的简单和便宜,交换机只需要实现数据转发功能,路由、安全策略等控制任务由控制器负责。sdn网络带来的另一个好处就是易于扩展,由于所有的控制逻辑都转移到控制器上,只要升级控制器的软件,整个网络就能支持相应的新特性。但是,由于控制器担负了整个网络的控制工作,控制器的处理能力以及控制器与交换机之间通信的实验对整个网络的性能有着重要的影响。对于大型的网络,靠单台控制器进行流表的分发无法胜任全体交换机的需求,这时需要使用多个控制器来共同分担整个系统的通信压力。因此,如何对整个sdn进行合理的控制器部署,既保证每个控制器的负载均衡,又能保证平均时延最小,是sdn的一个非常重要的研究方向。

文献[1]最早提出了控制器的部署问题,使用平均时延和最大时延作为衡量指标来分析控制器的部署问题,并使用贪心算法对其求解。文献[2]提出了k-critical算法,根据最大允许时延来计算所需控制器数量以及部署位置,但该文献同样没有考虑控制器的负载均衡问题。文献[3]在使用谱聚类算法来解决这个wan中的控制器部署问题。文献[4]使用了粒子群算法来求解sdn的控制器部署问题。

[1]hellerb,sherwoodr,mckeownn.thecontrollerplacementproblem[c]//proceedingsofthefirstworkshoponhottopicsinsoftwaredefinednetworks.acm,2012:7-12

[2]y,-pastorc,garciaaj.onthecontrollerplacementfordesigningadistributedsdncontrollayer[c]//networkingconference,2014ifip.ieee,2014:1-9.

[3]xiaop,quw,qih,etal.thesdncontrollerplacementproblemforwan[c]//ieee/cicinternationalconferenceoncommunicationsinchina.ieee,2014:220-224.

[4]gaoc,wangh,zhuf,etal.aparticleswarmoptimizationalgorithmforcontrollerplacementprobleminsoftwaredefinednetwork[c]//internationalconferenceonalgorithmsandarchitecturesforparallelprocessing.springerinternationalpublishing,2015:44-54。



技术实现要素:

为克服现有技术的不足,本发明旨在提出一种保证时延的sdn控制器部署算法,保证整个网络的时延最小。本发明采用的技术方案是,保证时延最小的sdn网络多控制器部署方法,首先对网络时延及拓扑结构进行分析,计算每个交换机到剩下所有交换机的时延,然后任意选择一个交换机作为初始的控制器部署点,再根据k-medoids算法更新该部署位置到一个新的交换机,保证到剩下所有的交换机时延最小;再选择整个网络中到控制器部署点时延最大的交换机作为另一个新的控制器部署点,根据时延对整个网络中的交换机重新分配,然后通过k-medoids算法更新每个控制器部署点;一直重复上述过程直到有k个控制器部署点。

k-medoids算法步骤如下:

步骤1:任意选择k个点作为初始的中心点;

步骤2:根据最短路径将所有节点分配到离它们最近的中心点,将整个网络分成k个类;

步骤3:在每个类中将中心点更新到距离剩下所有节点的时延之和最小的节点;

步骤4:重复步骤2,3,直到中心点不再变化或者达到迭代次数。

一个实例中:

设一个拓扑结构为g(v,e),v表示节点集合,e表示边的集合,交换机总数为n,要部署k个控制器,控制器部署点看作是中心点,交换机节点被看作节点;

步骤1:在整个网络中选择一个节点i,i=0,1,…n-1为中心点,用ci表示,此时整个网络以该节点为中心,所以节点标签都为ci,即所有的交换机都归于ci管理;

步骤2:根据k-medoids算法更新中心点,此时k-medoids的初始中心点之前已给定;

步骤3:在每个类中找离中心点最远的点,将其存在一个集合t中,计算t中每个节点到所有中心点距离之和,选出和最大的节点为一个新的中心点,用cj,j=0,1,…n-1;

步骤4:重复步骤2更新此时的中心点,计算此时中心点的个数k',判断k'是否等于k:

若k'<k,返回步骤3继续该算法;

若k'=k,返回此时中心点集合p以及每个节点所属中心点的标签集合q,结束。

本发明的特点及有益效果是:

本发明的优点主要是部署控制器之后,整个网络的时延最小,可以生成合理的控制器部署结果。

在sdn控制器部署的问题上,也有一些学者做了很多研究。也有的学者使用贪心算法、粒子群算法、模拟退火等算法对控制器部署问题进行求解。与这些算法不同的是,本算法充分利用了软件定义网络灵活性以及拓扑结构的简单性,结合改进的kmedoids算法对sdn控制器部署之和时延最小问题进行求解。求解过程复杂度较低,运行时间极其短。

在求解结果性能估计方面,本算法用时延最小作为性能的衡量指标。结果如图2所示,以美国internet2拓扑为例,假设k=3,其中节点0,10,29分别为中心节点。

附图说明:

图1算法流程图。

图2k=3分类结果。

具体实施方式

现有的sdn控制器部署算法极少,控制器部署没有具体的时延最优方案,部署后控制器分散。这种分布不均匀,导致整个网络中控制器到交换机的时延不是最小的,工作效率比较低下,且造成了资源的浪费。所以,合理的控制器部署位置对减小时延来说很重要。本发明的目的在于提出一种保证时延的sdn控制器部署算法,保证整个网络的时延最小。

本发明的主要过程是,首先对网络时延及拓扑结构进行分析,计算每个交换机到剩下所有交换机的时延。然后任意选择一个交换机作为初始的控制器部署点。再根据k-medoids算法更新该部署位置到一个新的交换机(到剩下所有的交换机时延最小)。再选择整个网络中到控制器部署点时延最大的交换机作为另一个新的控制器部署点,根据时延对整个网络中的交换机重新分配。然后通过k-medoids算法更新每个控制器部署点。一直重复上述过程直到有k个控制器部署点。

具体方案如下:

保证时延最小的sdn多控制器部署算法:

本发明是一个改进k-medoids的时延最小控制器部署算法。k-medoids算法步骤如下:

步骤1:任意选择k个点作为初始的中心点。

步骤2:根据最短路径将所有节点分配到离它们最近的中心点,将整个网络分成k个类。

步骤3:在每个类中将中心点更新到距离剩下所有节点的时延之和最小的节点。

步骤4:重复步骤2,3,直到中心点不再变化或者达到迭代次数。

假设一个拓扑结构为g(v,e),v表示节点集合,e表示边的集合。交换机总数为n,要部署k个控制器。控制器部署点看作是中心点,交换机节点被看作节点。

步骤1:从n个节点中任意选出一个节点作为初始中心点。

步骤2:根据k-medoids算法更新中心点。

步骤3:找到每个类中距离中心点最远的节点,将其存在一个集合中。选择该集合中到所有中心点距离之和最大的点作为一个新的中心点。

步骤4:重复步骤2。判断整个网络有没有被分成k个类:

如果分成k个类,就返回分类结果,结束算法。

如果没有分成k个类,重复步骤3并继续。

具体步骤如图1所示。

以下是本发明的一个实例。

保证时延最小的sdn多控制器部署算法:

步骤1:在整个网络中选择一个节点i,i=0,1,…n-1为中心点,用ci表示。此时整个网络以该节点为中心,所以节点标签都为ci,即所有的交换机都归于ci管理。

步骤2:根据k-medoids算法更新中心点(此时k-medoids的初始中心点之前已给定)。

步骤3:在每个类中找离中心点最远的点,将其存在一个集合t中。计算t中每个节点到所有中心点距离之和,选出和最大的节点为一个新的中心点,用cj,j=0,1,…n-1。

步骤4:重复步骤2更新此时的中心点。计算此时中心点的个数k',判断k'是否等于k:

若k'<k,返回步骤3继续该算法;

若k'=k,返回此时中心点集合p以及每个节点所属中心点的标签集合q,结束该算法。

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