一种基于AP聚类的SDN多控制器部署方法

allin2022-07-12  250


一种基于ap聚类的sdn多控制器部署方法
技术领域
1.本发明属于通信网络技术领域,尤其涉及一种基于ap聚类的sdn多控制器部署方法。


背景技术:

2.传统网络体系结构中存在大量的复杂协议,特定的网络协议只针对某个问题进行解决,没有为网络中存在的共性问题提供统一的解决方案。同时,传统的网络架构无法获取网络的全局视图,缺乏对网络实时调控的能力,因此它无法满足大数据、物联网等相关业务对资源灵活性的要求。
3.为了解决传统网络架构所带来的问题,软件定义网络(sdn)应运而生。与传统网络不同,sdn将控制与转发功能分离。控制器是控制平面的核心设备,主要负责路由的决策。交换机是数据平面的重要组成部分,主要负责数据的转发。目前控制平面的体系架构分为单控制器架构和多控制器架构。与单控制器架构相比,多控制器架构有效地提升了网络的服务质量,但也带来了一些问题。例如,在多控制器架构中,将控制器进行随机放置通常无法获得令人满意的性能。合理的控制器数量和部署位置有利于优化整个网络性能,诸如降低网络时延、保证负载均衡等等。


技术实现要素:

4.发明目的:本发明提出一种基于ap聚类的sdn多控制器部署方法,以降低网络时延和确保网络负载均衡为目标,通过改进近邻传播(ap)聚类算法,设计一种可以自动确定控制器数量和位置的多控制器部署算法。
5.技术方案:为实现本发明的目的,本发明所采用的技术方案是:一种基于ap聚类的sdn多控制器部署方法,具体包括:
6.第一阶段:通过量化sdn控制器即网络节点中的亲密度关系计算节点之间的最短路径距离,根据该距离构建聚类算法相似度矩阵;
7.第二阶段:利用相似度矩阵进行迭代计算,初步确定控制器的部署数量和位置;
8.第三阶段:通过启发式算法找到使得控制器间负载差异度最小的控制器放置方案,确保整个网络负载均衡。
9.进一步的,所述的相似度矩阵的构建方法如下:
10.将各个网络节点作为各个数据点,这些数据点作为ap聚类中的样本;使用dijkstra算法量化节点中的亲密度关系,计算节点之间的最短路径距离;
11.使用两点之间最短路径距离的负值表示节点i与j之间的相似度s(i,j);在计算完所有样本之间的相似度后,得到相似度矩阵s,s(i,j)为相似度矩阵s的矩阵元素;
12.设定每个样本的参考度p(i)反映每个样本作为集群中心的可能性,其位于相似度矩阵s的对角线,即p(i)=s(i,i);如果将所有样本均视为潜在集群中心,则将所有p(i)设为同一数值p。
13.进一步的,初步确定控制器的部署数量和位置,具体包括:
14.将吸引度矩阵r和归属度矩阵a初始化为零矩阵,基于相似度矩阵s,在节点之间迭代传递吸引信息和归属信息,更新矩阵r和a;
15.在每次更新之后均使用阻尼因子λ对r和a进行处理,每个信息值等于前一次迭代更新的信息值与此轮更新值的加权计算;
16.将吸引信息值与归属信息值之和大于0的交换机节点k作为聚类中心,判断是否满足终止条件,若满足,则迭代结束,否则继续进行迭代,直至满足条件;所述终止条件是指聚类结果多次不变或算法达到最大迭代次数;
17.迭代完成后得到初步的聚类中心,即寻找到了控制器的初步放置个数;将交换机分配至这些控制器的管理域中,得到了初步的局部控制器放置方案。
18.进一步的,分别按照公式(1)和(2)对吸引度矩阵r和归属度矩阵a进行循环更新操作;
19.r(i,k)

s(i,k)-maxk′
s.t.k

≠k
{a(i,k

)+s(i,k

)}
ꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0020][0021]
其中r(i,k)和a(i,k)分别表示吸引信息和归属信息,分别反映了节点k作为节点i的集群中心以及节点i选择节点k作为集群中心的适合程度;s(i,k)表示节点i和k之间的相似度。
[0022]
进一步的,在第t次循环迭代中,吸引度矩阵r
t
和归属度矩阵a
t
按照公式(3)和(4)进行加权计算;
[0023]rt
=(1-λ)r
t
+λr
t-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0024]at
=(1-λ)a
t
+λa
t-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0025]
其中λ为阻尼因子,λ取值范围在0和1之间;r
t-1
和a
t-1
分别为第t-1次迭代后的吸引度矩阵和归属度矩阵。
[0026]
进一步的,使用粒子群优化算法pso寻找使得负载差异度最小的参考度p值;
[0027]
将控制器间负载差异度作为pso算法适应度,参考度p作为粒子位置,通过迭代找到最佳部署方案;迭代流程如下:
[0028]
step1:种群初始化,计算个体的适应值,选择个体的局部最优位置向量和种群的全局最优位置向量;令当前迭代次数为1;
[0029]
step2:更新每个个体的速度向量和位置向量;
[0030]
step3:对每个粒子,将其适应值与其经过的最好位置局部最优位置p
pbest
和全局最优位置p
gbest
作比较,更新每个个体的局部最优解和种群的全局最优解;
[0031]
step4:判断迭代次数是否达到最大迭代次数,如果满足,输出全局最优解,否则继续进行迭代,迭代次数加1,跳转至step2;
[0032]
step5:迭代结束得到最优参考度p值使得控制器间的负载差异度最小,得到整体网络负载最均衡的局部控制器放置方案。
[0033]
有益效果:与现有技术相比,本发明的技术方案具有以下有益的技术效果:
[0034]
本发明提出的一种基于ap聚类的sdn多控制器部署算法,利用dijkstra算法量化网络节点中的亲密度关系来计算出节点之间的最短路径距离,能够有效地降低sdn网络时
延。通过启发式算法找到使得控制器间负载差异度最小的控制器放置方案,保证网络负载均衡。
附图说明
[0035]
图1为本发明的整体算法流程图;
[0036]
图2为本发明的初步确定控制器的部署数量和位置流程图;
[0037]
图3为本发明的粒子群优化算法流程图。
具体实施方式
[0038]
下面结合附图和实施例对本发明的技术方案作进一步的说明。
[0039]
本发明所述的一种基于ap聚类的sdn多控制器部署方法,以降低网络时延和确保网络负载均衡为目标,通过改进近邻传播(ap)聚类算法,设计一种可以自动确定控制器数量和位置的多控制器部署算法。总共分为三个阶段,在第一阶段,通过量化sdn控制器即网络节点中的亲密度关系来计算出节点之间的最短路径距离,将此距离应用于聚类算法相似度矩阵的构建。在第二阶段,利用相似度矩阵进行迭代计算,初步确定控制器的部署数量和位置。在第三阶段,通过启发式算法找到使得控制器间负载差异度最小的控制器放置方案,从而确保整个网络负载均衡。流程如图1,具体步骤如下:
[0040]
(1)相似度矩阵的构建
[0041]
传统的ap聚类算法通常基于节点之间的欧氏距离来构建,由于在sdn中交换机节点之间的距离不能简单使用欧氏距离来表达,因此本发明通过使用dijkstra算法量化节点中的亲密度关系来计算节点与节点之间的最短路径距离,有效降低传输时延。
[0042]
使用两点之间最短路径距离的负值来表示节点i与j之间的相似度s(i,j),当两点之间的最短路径的距离值越小时,其相似度值越大。将各个网络节点作为各个数据点,这些数据点作为ap聚类中的样本;在计算完所有样本之间的相似度后得到相似度矩阵s,s(i,j)为相似度矩阵s的矩阵元素;设定每个样本的参考度p(i),其位于相似度矩阵s的对角线,即p(i)=s(i,i),反映了每个样本作为集群中心的可能性。p(i)的大小影响最终集群个数,如果将所有样本均视为潜在集群中心,则可将所有p(i)设为同一数值p。在大部分资料中推荐将p设为s的中位数。通过计算数据点对之间的相似性和p值来构造相似度矩阵。
[0043]
(2)初步确定控制器的部署数量和位置
[0044]
基于相似度矩阵s,在数据点之间反复传递r(i,k)和a(i,k)值,不断更新归属度矩阵a和吸引度矩阵r,直到找到合适的聚类中心。其中r(i,k)和a(i,k)分别表示吸引信息和归属信息,分别反映了点k作为点i的集群中心以及点i选择点k作为集群中心的适合程度。
[0045]
本发明将归属度矩阵a和吸引度矩阵r初始化为零矩阵后,分别按照公式(1)和(2)对r和a进行循环更新操作。在每次更新之后,为防止数据震荡,均使用阻尼因子λ对r和a进行处理,每个信息值等于前一次迭代更新的信息值的λ倍加上此轮更新值的1-λ倍;λ取值范围在0和1之间,将λ设为接近1的数值可避免震荡,但算法的更新速度会变得缓慢,因此本发明算法优选将λ设为默认值0.5。
[0046]
在第t次循环迭代中,吸引度矩阵r
t
和归属度矩阵a
t
的值要与第t-1次迭代结果r
t-1
和a
t-1
的值按照公式(3)和(4)进行加权计算。寻找r(i,k)+a(i,k)>0的交换机节点k作为聚
类中心,判断聚类结果是否多次不变或算法达到最大迭代次数,若算法收敛或达到最大迭代次数,则跳出循环,否则继续进行循环直至算法收敛或达到最大迭代次数。至此本发明算法计算出了初步的聚类中心,即寻找到了控制器的初步放置个数。将交换机分配至这些控制器的管理域中,得到了初步的局部控制器放置方案。其过程如图2所示。
[0047]
r(i,k)

s(i,k)-maxk′
s.t.k

≠k
{a(i,k

)+s(i,k

)}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0048][0049]rt
=(1-λ)r
t
+λr
t-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0050]at
=(1-λ)a
t
+λa
t-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0051]
(3)支持负载均衡及时延优化的控制器最优部署方案
[0052]
参考度的大小决定了ap算法最终输出的聚类个数,p越大,算法最终所获得的聚类个数越多。由于网络负载均衡是多控制器放置问题的一个重要性能尺度,因此本算法以尽可能降低控制器间的负载差异度为目标,通过使用启发式算法来改变算法参考度p寻找使得负载差异度最小,整体网络负载最均衡的局部控制器放置方案,将此方案作为控制器的最终部署方案输出,从而保证网络的负载均衡。本算法使用粒子群优化算法(pso)寻找使得负载差异度最小的参考度值。算法将控制器间负载差异度作为pso算法适应度,参考度p作为粒子位置,通过反复迭代找到最佳部署方案。
[0053]
粒子群优化算法(pso)是一种基于群体智能的全局随机启发式搜索算法,粒子跟踪局部最优和全局最优来更新位置,源于对鸟群捕食的行为研究。粒子群优化算法的基本思想:是通过群体中个体之间的协作和信息共享来寻找最优解。pso的优势在于简单容易实现,没有许多参数的调节且有记忆性。目前已被广泛应用于函数优化、神经网络训练、模糊系统控制以及其他遗传算法的应用领域。
[0054]
假设有n个群体表示潜在的解决方案,每个群体都可以用d维向量表示。在粒子群算法中,每个粒子包含2个分量:速度和位置。
[0055]
当前的粒子群位置向量用xi=[x
i1
,x
i2


,x
id
](i=1,2,

,n)表示。当前的速度向量用vi=[v
i1
,v
i2


,v
id
]表示。粒子群的局部最优位置为pi=[p
i1
,p
i2


,p
id
],p
gbest
为全局最优位置向量。在t+1时刻,更新粒子群的位置x
id
和速度v
id
分别表示为公式(5)和公式(6)。
[0056][0057][0058]
式中,ω为惯性权重;r1和r2为[0,1]的随机数;c1和c2分别为调整个体部分的局部学习因子和调整整体部分的全局学习因子。一个大的惯性权重ω有利于展开全局寻优,而一个小的惯性权重值有利于局部寻优。因此,采用时变权重,在迭代过程中采用线性递减惯性权值,则粒子群算法在开始时具有良好的全局搜索性能,能够迅速定位到接近全局最优点的区域,而在后期具有良好的局部搜索性能,能够精确地得到全局最优解。时变权重的表达式为公式(7)。
[0059]
ω=ω
max-((ω
max-ω
min
)/i
max
)
×iꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0060]
式中:i
max
为最大迭代;i为当前迭代;通常ω
max
和ω
min
分别取0.9和0.1。
[0061]
每个粒子的最优位置向量为公式(8)。
[0062][0063]
其过程流程图如图3所示。标准算法流程下:
[0064]
stepl:种群初始化,可以进行随机初始化或者根据被优化的问题设计特定的初始化方法,然后计算个体的适应值,从而选择出个体的局部最优位置向量和种群的全局最优位置向量。
[0065]
step2:迭代设置:设置迭代次数,并令当前迭代次数为1;
[0066]
step3:速度更新:更新每个个体的速度向量;
[0067]
step4:位置更新:更新每个个体的位置向量;
[0068]
step5:局部位置和全局位置向量更新:对每个粒子,将其适应值与其经过的最好位置局部最优位置p
pbest
和全局最优位置p
gbest
作比较,更新每个个体的局部最优解和种群的全局最优解;
[0069]
step6:终止条件判断:判断迭代次数时都达到最大迭代次数,如果满足,输出全局最优解,否则继续进行迭代,迭代次数加1,跳转至step3。
转载请注明原文地址: https://www.8miu.com/read-53.html

最新回复(0)