一种电力通信网络中基于密度聚类算法的OSPF区域划分方法与流程

文档序号:17850582发布日期:2019-06-11 22:10阅读:215来源:国知局

本发明属于电力通信网络的网络管理技术领域,具体涉及一种电力通信网络中基于密度聚类算法的OSPF区域划分方法。



背景技术:

电力通信网络由于其规模大、结构复杂等特点,若把电力通信网络作为一个自治系统运行,开放式最短路径优先(Open Shortest Path First,OSPF)协议来进行区域划分,则会为合理的划分电力通信网络带来挑战。随着电力通信网络规模的不断扩大,运行OSPF协议的路由器数量会相应的增加,而每个路由器需要维护庞大的链路状态数据库(Link State DataBase,LSDB),占用大量的内存空间,路由计算复杂度增加,且路由器之间的通信量会占用大量的带宽,导致OSPF协议路由效率低下。如何合理进行区域划分,是本专利提出的区域划分算法旨在解决的问题。现有关注网络收敛速度和网络负载均衡的路由方案或者区域搜索技术等尚未对区域划分有一个全局的划分方案,包括区域边界的确定等。

目前主流的区域划分算法如下:

(1)基于簇的区域划分方法。该类方法的主要思想是运用域生成算法,通过引入通信节点个数的概念,以通信节点个数较多的节点为中心生成域,将网络划分为多个域,避免节点及域的重复归属,选择域生成算法中的中心节点为簇首节点,由簇首节点负责路由转发,避免了路由的冗余转发,路由开销也随之减少,提高了路由效率。

(2)基于密度聚类的区域划分方法。该类方法运用密度聚类方法,要求聚类空间中的一定区域内所包含对象(点或其他空间对象)的数目不小于某一给定阈值,找出核心对象的E邻域中的所有直接密度可达点,间接从每个核心对象出发,划分网络。在改进式的密度聚类方法中,算法对聚类中的邻域半径和最小数目阈值进行修改,改进密度聚类中邻域半径和最小数目阈值的含义与计算方法,将给定的对象划分为多个类别,每个类别中的成员尽可能相似,不同组中的成员尽可能不同。

(3)基于连通支配集的区域划分方法。该类方法运用连通支配集协议对网络进行区域划分,解决规模较大网络易产生冗余数据包的问题。每个节点基于网络拓扑信息,对周围的邻居节点进行区域划分,作为中继转发的选择依据。这种方法节点需要获得完整的邻居信息,且各个节点依据各自邻居信息划分的区域容易产生重叠,仅仅在局部层面对网络进行了划分,未从全局角度考虑区域划分的合理性。

现有方法针对于特定的路由或其他协议进行基于区域划分的改进,并不适合OSPF区域划分的特性。



技术实现要素:

本发明提出的方法旨在通过结合电力通信网络实际情况通过选择未来区域内的中心汇聚节点对邻居节点进行区域划分,解决区域划分的覆盖度和合理度问题。

本发明采用以下技术方案:

一种电力通信网络中基于密度聚类算法的OSPF区域划分方法,包括以下步骤:

(1)区域划分

电力通信网络中所有路由器节点维护一跳邻居数据样本集合NB为S{(r1,N1(r1)),(ri,N1(ri)),…,(rm,N1(rm))},半径Eps和阈值MinPts,其中,任意路由器节点ri∈NB,i=1,…,m,m为电力通信网络中的路由器节点总数,将电力通信网络划分为min(m/M,|A0|)个区域,其中,M为每个区域承载路由器节点的饱和容量,|A0|为骨干区域边界内路由器的数量;

(2)核心节点的确定

任意路由器节点ri维护一组二维空间数据表示任意路由器节点ri与网络中其他路由器节点v的关系,其中hops表示任意路由器节点ri与其他路由器节点v的网络跳数,dist表示任意路由器节点ri与其他路由器节点v的地理空间距离,

对于任意路由器节点ri,以一跳邻居距离E为半径,即采用欧几里得距离计算方式时,值为1,计算任意路由器节点ri的E领域集合E(ri),若E(ri)中包含的元素个数满足核心对象节点的选举条件,则ri成为核心对象节点,记作rh;

(3)骨干区域的划分

确定核心节点rh后,以核心节点rh的一跳邻居节点集合N1(rh)为半径范围建立骨干区域,骨干区域的初始边界为A0={rh,N1(rh)},完成骨干区域的划分;

(4)非骨干区域的划分

核心节点rh的E领域E(rh)中的所有直接密度可达节点N1(rh)中任意节点作为种子节点寻找所有与之两跳密度可达的节点集合W,节点集合W为非骨干区域;

(5)重复步骤(4),直到所有种子节点聚类过程完成,此时与核心节点rh同属一个区域的节点集合W中有可能包含骨干区域的节点,相应的这些交集节点成为非骨干区域与骨干区域的边界路由器节点,加入边界路由器集合,边界路由器集合为DBR={br1,br2,…brj},br为边界路由器,j为边界路由器的数目,NB中未被进行区域划分的其他节点,暂时标记为自由节点;

(6)对于NB中选中的其他核心节点,重复步骤(2)-(5),遍历所有核心节点的区域划分过程,步骤(4)中被标记为自由节点的路由器在遍历所有k个核心节点的过程中部分可能会转换为已聚类节点,在此过程中如果出现某一个已聚类节点同时满足另一个核心节点的区域划分条件,则此节点自动成为两个区域的边界路由器节点,即同时属于两个区域集合,区域划分产生的簇集合为DV={dv1,dv2,…,dvk},dvk为区域划分产生的簇,k为簇的数目,每个簇都有相应的核心节点。

进一步地,簇集合DV中,dvi和dvj均为区域划分产生的簇,i,j∈k,若两个相邻区域dvi和dvj中交集元素个数大于2/3|dvi|或者|dvj|,将两个区域合并。

进一步地,核心节点的区域划分之后,自由节点未划分至任何核心节点的区域内,这些自由节点通过查询自身维护的一跳邻居集合,选中相距dist等于0的任意一个节点所属簇dvi为自由节点的簇,即自由节点加入距离较近的区域,作为区域中的一个节点。

进一步地,每个区域承载路由器节点的饱和容量M为50。

本发明具有如下有益效果:

通过实际网络节点地理位置因素,采用密度聚类算法将网络划分为骨干区域和非骨干区域,结合电力通信网络实际情况通过选择未来区域内的中心汇聚节点对邻居节点进行区域划分,解决区域划分的覆盖度和合理度问题。从网络全局流量负载均衡的角度出发,划分后的区域路由器数量在满足区域最大承载量的同时,保证各个区域尽可能均匀分布,从网络局部流量负载均衡的角度出发,为每个区域设置合适数目的边界路由器,以保证路由路径的多样性,避免域间路由器成为关键节点带来网络性能的降低,提高网络的故障恢复能力。

附图说明

图1本发明提供的一种电力通信网中区域划分的总体模块图;

图2本发明中基于网络密度聚类的区域划分示意图。

具体实施方式

本发明提出了一种电力通信网络中基于密度聚类算法的OSPF区域划分方法,包括骨干区域的确定和非骨干区域的确定。

由于OSPF协议可以将网络划分为多个逻辑上互连的区域,路由器链路状态通告(LSA)泛洪过程在所属区域进行,区域内部路由器只维护本区域的局部拓扑数据库和理解局部网络拓扑图,当网络拓扑变更时,会减少OSPF协议报文的传递数量,减少链路状态数据库(LSDB)传递次数,减少路由重计算量。区域之间LSA通告信息的交互,通过域间边界路由器(ABR)完成,同时属于多个区域的ABR为每个区域维护各自的LSDB。OSPF协议网络的区域类型可以简化概括为:骨干区域和非骨干区域,如图2所示。

电力通信网络拓扑区域划分问题实际上可以归结为图的划分问题,本发明中用无向图G=(R,E)来描述电力网络的拓扑结构,其中R表示路由节点集合,E表示节点之间的所有链路集合。对于任意节点r∈R,节点r的一跳邻居集合表示为N1(r),N1(r)={r∈R|(r,v)∈E}。

第一部分为骨干区域的确定。

步骤1:通过OSPF信息交换(hello报文),每个节点获得一跳邻居信息(包括节点ID等信息),并周期性的与邻居节点交换自身节点维护的1跳邻居列表信息,每个节点也可获得k-跳邻居信息(包括路径上的下一跳信息)。

步骤2:骨干区域汇总各个子区域的路由信息,并负责完成子区域之间的通信,故骨干区域与各个非骨干区域之间通过物理链路或者虚拟链路直接相连。考虑电力通信网络的实际情况,可以以网络中核心路由器节点RC为中心负责节点,以一跳邻居节点集合N1(RC)为半径范围,作为骨干区域的初始边界即A0={RC,N1(RC)},如图1所示,此时N1(RC)可能部分成为骨干区域内部的路由器节点,部分路由器元素节点集合成为区域边界路由器(ABR)。骨干区域内的非RC路由节点可作为非骨干区域与骨干区域相交的边界路由器节点,整个网络拓扑区域呈现一种以骨干区域为中心的星型连接。

第二部分为非骨干区域的确定。

完成网络拓扑的关于骨干区域的粗粒度分割后,需要对拓扑中未进行区域划分的其他节点集合NB进行细粒度的划分。各个非骨干区域内容元素节点的确定,可以采用基于密度聚类的迭代过程实现。

具体的,所谓聚类,就是将大量d维数据样本聚集为k个类,使同属一个类的样本相似度最高,不同类中样本的相似性最小。基于密度的聚类算法考虑将空间数据样本中被低密度区域分割开的高密度区域聚集为类(簇),并能识别噪声。

密度聚类算法(Density-based Spatial Clustering of Applications with Noise,DBSCAN)是一种代表性的聚类算法,其基本思想为:扫描整个数据样本集,选定一个核心点进行聚类,核心点邻域内的所有节点与核心点同属一个簇,并将这些节点作为下一轮扩充的种子节点,迭代聚类,直到找到所有与种子节点密度可达的点,形成一个完整的簇,重复此过程,直到所有种子节点聚类完成。对于数据样本中未聚类的点,继续如上过程,直到所有核心节点聚类过程完成,剩余未聚类的点成为噪声节点。

电力网络中划分后的区域可以看作聚类算法中的簇,虽然网络拓扑中的节点密度的特征没有那么明显,但可以通过指定网络跳数作为稀疏的另一种度量,即拓扑中节点之间的跳数作为衡量密度的距离指标。节点同时考虑网络跳数和空间地理位置因素的情况下,任意路由器节点ri维护一组二维空间数据表示任意路由器节点ri与网络中其他路由器节点v的关系,其中hops表示任意路由器节点ri与其他路由器节点v的网络跳数,dist表示任意路由器节点ri与其他路由器节点v的地理空间距离,为简化节点数据取样复杂度,当dist超过一定距离值后,dist等于1,否则dist取值为0。

值得注意的是,在本发明的区域划分方法中,对于节点集合R,如果节点q在节点p的E领域内,并且p为核心对象节点,那么称节点q从节点p直接密度可达。E领域为给定对象节点半径为E的区域。NB集合中路由器节点元素维护一跳邻居数据样本集合S{(r1,N1(r1)),(r2,N1(r2)),…,(rm,N1(rm))},半径Eps和阈值MinPts,其中,ri∈NB,i=1,…,m,m为NB集合中路由器节点的数目。设定区域划分产生的簇集合为DV={dv1,dv2,…,dvk},dvk为区域划分产生的簇,k为簇的数目;边界路由器集合为DBR={br1,br2,…brj},j为边界路由器的数目。

一种电力通信网络中基于密度聚类算法的OSPF区域划分方法,其特征在于,包括以下步骤:

(1)区域划分

电力通信网络中所有路由器节点维护一跳邻居数据样本集合NB为S{(r1,N1(r1)),(ri,N1(ri)),…,(rm,N1(rm))},半径Eps和阈值MinPts,其中,任意路由器节点ri∈NB,i=1,…,m,m为电力通信网络中的路由器节点总数,将电力通信网络划分为min(m/M,|A0|)个区域,其中,M为每个区域承载路由器节点的饱和容量,每个区域承载路由器节点的饱和容量M可以选择为50,|A0|为骨干区域边界内路由器的数量;

(2)核心节点的确定

任意路由器节点ri维护一组二维空间数据表示任意路由器节点ri与网络中其他路由器节点v的关系,其中hops表示任意路由器节点ri与其他路由器节点v的网络跳数,dist表示任意路由器节点ri与其他路由器节点v的地理空间距离,

对于任意路由器节点ri,以一跳邻居距离E为半径,即采用欧几里得距离计算方式时,值为1,计算任意路由器节点ri的E领域集合E(ri),若E(ri)中包含的元素个数满足核心对象节点的选举条件,则ri成为核心对象节点,记作rh;

(3)骨干区域的划分

确定核心节点rh后,以核心节点rh的一跳邻居节点集合N1(rh)为半径范围建立骨干区域,骨干区域的初始边界为A0={rh,N1(rh)},完成骨干区域的划分;

(4)非骨干区域的划分

核心节点rh的E领域E(rh)中的所有直接密度可达节点N1(rh)中任意节点作为种子节点寻找所有与之两跳密度可达的节点集合W,节点集合W为非骨干区域,即W中所有节点与节点rh三跳密度可达;

(5)重复步骤(4),直到所有种子节点聚类过程完成,此时与核心节点rh同属一个区域的节点集合W中有可能包含骨干区域的节点,相应的这些交集节点成为非骨干区域与骨干区域的边界路由器节点,加入边界路由器集合,边界路由器集合为DBR={br1,br2,…brj},br为边界路由器,j为边界路由器的数目,NB中未被进行区域划分的其他节点,暂时标记为自由节点;

(6)对于NB中选中的其他核心节点,重复步骤(2)-(5),遍历所有核心节点的区域划分过程,步骤(4)中被标记为自由节点的路由器在遍历所有k个核心节点的过程中部分可能会转换为已聚类节点,在此过程中如果出现某一个已聚类节点同时满足另一个核心节点的区域划分条件,则此节点自动成为两个区域的边界路由器节点,即同时属于两个区域集合,区域划分产生的簇集合为DV={dv1,dv2,…,dvk},dvk为区域划分产生的簇,k为簇的数目,每个簇都有相应的核心节点。

簇集合DV中,dvi和dvj均为区域划分产生的簇,i,j∈k,若两个相邻区域dvi和dvj中交集元素个数大于2/3|dvi|或者|dvj|,将两个区域合并,区域合并不会影响SPF计算时所需要的全局拓扑信息,也不会造成某个区域规模大幅的增长,不会影响网络的正常收敛过程。

核心节点的区域划分之后,自由节点未划分至任何核心节点的区域内,这些自由节点通过查询自身维护的一跳邻居集合,选中相距dist等于0的任意一个节点所属簇dvi为自由节点的簇,即自由节点加入距离较近的区域,作为区域中的一个节点。

对于核心节点的选举条件,NB中所有元素均为待选举的核心对象节点,若某对象E邻域内节点元素数量超过一定的阈值MinPts,则将该节点选作核心节点。考虑链路负载均衡,若MinPts值过大,减少聚类的数目,每个区域集合规模过大,达不到区域划分降低流量和快速收敛的目的,若MinPts值过小,区域数目过多,区域规模过小同样不利于快速收敛的实现。可通过对集合N1(RC)中节点一跳邻居数量进行降序排列,第min(N/M,|A0|)个节点的一跳邻居数量可设为初始的MinPts值。对于任意路由节点ri∈NB,以E等于一跳邻居距离为半径,即采用欧几里得距离计算方式时,值为1,计算此节点的E领域集合E(rnb),若E(rnb)中包含的元素个数满足核心对象节点的选举条件,则rnb成为核心对象节点,记作rh。

值得注意的是,步骤4中被标记为自由节点的路由器在遍历所有k个核心节点的过程中部分可能会转换为已聚类节点,在此过程中如果出现某一个已聚类节点同时满足另一个核心节点的区域划分条件,则此节点自动成为两个区域的边界路由器节点ABR,即同时属于两个区域集合。

以上算法描述了大致的聚类(区域划分)过程,完成了对整个网络拓扑的区域划分,返回达到密度要求的区域集合DV,如图2所示,形成Area1区域和Area2区域。当网络中有新节点加入时,根据新节点与边界路由器集合中元素拓扑距离,并比较其直接相邻的路由器节点的主要归属区域,分别计算节点与计算目标区域的相关度,作为区域选择的依据,即相关度最高的区域作为此新加入节点的归属区域。

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