一种基于最小生成树的虚拟网络保护性映射方法与流程

文档序号:15296733发布日期:2018-08-31 19:27阅读:274来源:国知局

本发明涉及光通信的技术领域,尤其涉及一种基于最小生成树的虚拟网络保护性映射方法,根据虚拟拓扑的最小生成树为虚拟网络提供备份路径,用于弹性光网络环境的虚拟网络保护性映射,能够减少虚拟网络映射的资源消耗。



背景技术:

物联网、云计算等应用的出现推动了互联网技术的快速发展,同时也对底层网络提出了更高的要求。与波分复用光网络相比,弹性光网络能够动态的为业务分配频谱资源,然而多运营商运营的网络环境使得对网络资源的管控具有一定的难度,因此虚拟网络映射技术被提出并用于解决网络管控问题。虚拟网络映射技术是网络虚拟化中的一种关键技术,是指为虚拟网络中的虚拟节点和虚拟链路寻找满足条件的底层物理节点和路径的过程。链路是指两节点之间的物理线路;路径是源节点和目的节点之间的物理线路,可能包含多段链路。另外,随着网络规模的不断扩大,底层物理网络故障将会影响虚拟光网络的正常运行,甚至造成巨大的经济损失。因此,对生存性虚拟网络映射的研究至关重要。生存性是网络发生故障后,尽快将受影响的业务倒换到空闲资源,以减少因故障而造成的社会影响和经济损失,使网络维持一个可接受的业务水平的能力。

文献[yez,patelan,jipn,etal.survivablevirtualinfrastructuremappingwithdedicatedprotectionintransportsoftware-definednetworks[j].journalofopticalcommunicationsandnetworking,2015,7(2):a183-a189.]提出一种并行的虚拟网络映射方法,虚拟网络映射时,在底层物理网络上寻找两份互不相交且满足约束条件的物理节点和物理路径。若工作网络出现故障则将该工作网络上的业务迁移到备份网络上。这种映射方案不仅对每条工作路径进行了备份,同时也对工作节点进行备份,大大增加了底层物理资源的预留量。

文献[chenb,zhangj,xiew,etal.cost-effectivesurvivablevirtualopticalnetworkmappinginflexiblebandwidthopticalnetworks[j].journaloflightwavetechnology,2016,34(10):2398-2412.]提出一种弹性光网络中注重开销的生存性虚拟网络映射方法,为保证高生存性,虚拟网络映射成功后,采用专用路径保护方式为每条工作路径提供一条备份路径。同样,该生存性映射方法的缺陷是虚拟网络映射的物理节点过于分散,底层网络预留的资源过多。

目前,生存性虚拟网络映射方法主要分为两个步骤:首先将带有资源约束的虚拟节点和虚拟链路映射到底层物理网络,且虚拟节点和虚拟链路采用两步映射方式;然后采用专用路径保护方法为工作路径提供备份。然而虚拟网络映射时采用两步映射方式易造成虚拟节点映射的物理节点过度分散,从而造成虚拟链路映射的物理路径消耗更多的带宽资源。专用路径保护策略是目前常用的一种提高网络生存性的措施。通过为两个不同节点间的工作路径提供一条互不相交的备份路径来保证该条物理路径上通信的正常进行。由于底层物理网络的资源是有限的,这种方法预留了过多的底层物理网络资源,从而造成虚拟网络的映射成本高,资源利用率低,虚拟网络的阻塞率高。

随着虚拟请求的不断增加,所需要的底层物理网络资源也不断增多。然而现有底层物理网络资源并不是无限的,因此在保证不影响虚拟请求的同时减少虚拟网络的映射成本十分重要。



技术实现要素:

针对虚拟网络映射成本高,资源利用率低的技术问题,本发明提出一种基于最小生成树的虚拟网络保护性映射方法,通过减少虚拟网络映射时虚拟链路的资源消耗及减少底层物理网络预留的备份资源,减少了虚拟网络的映射成本,提高了资源的利用率。

为了达到上述目的,本发明的技术方案是这样实现的:一种基于最小生成树的虚拟网络保护性映射方法,其步骤如下:

步骤一:获取当前物理网络的资源状态信息,得到物理网络的无向图gs=(vs,es,cs(ns),bs(ls)),并初始化未映射物理节点集合unvs=vs;其中,vs和es分别表示物理节点集合和物理链路集合。cs(ns)为物理节点ns∈vs上的可用计算资源,bs(ls)为物理链路ls上的可用带宽;

步骤二:在虚拟请求到来时,获取到来的虚拟请求的资源状态信息,得到虚拟网络请求无向图gv=(vv,ev,cv(nv),bv(lv));其中,vv和ev分别表示虚拟节点集合和虚拟链路集合。cv(nv)为虚拟节点nv∈vv所需要的计算容量,bv(lv)为虚拟链路lv所需要的带宽;

步骤三:计算虚拟网络请求中各虚拟节点的节点度,将节点度最大的虚拟节点,即主动节点nvz,放入主动节点集合vvz,与其相连的虚拟节点,即被动节点nvb,放入被动节点集合vvb;

步骤四:将剩余未放入集合中的虚拟节点重新按节点度排序,重复步骤三,将主动节点按选取顺序依次放入主动节点集合中,直至所有虚拟节点被放入主动节点集合vvz或被动节点集合vvb中,即vvz+vvb=vv;

步骤五:根据主动节点集合vvz和被动节点集合vvb将虚拟链路分为主动链路和被动链路,其中主动链路集合为evz,被动链路集合为evb;

步骤六:将物理节点集合unvs中的物理节点作为候选物理节点,映射主动节点集合中节点度最大的虚拟节点nvz,节点映射满足资源约束和位置约束,且映射成功后将该物理节点从集合unvs中删除;

步骤七:映射与主动虚拟节点nvz相连的主动链路lvz及该主动链路lvz另一端的被动节点nvb;

步骤八:将已经映射完成的主动虚拟节点nvz和被动节点nvb分别从主动节点集合vvz和被动节点集合vvb中删除,并重复步骤六和七,直至所有的虚拟节点和主动链路映射完成。

步骤九:映射被动链路集合evb中全部被动链路lvb,链路映射满足约束条件及频谱连续性约束、频谱邻接性、频谱不冲突性约束。

步骤十:计算虚拟拓扑的最小生成树,选取虚拟拓扑中属于最小生成树的虚拟链路,为虚拟链路提供备份路径。

所述节点度是节点的关联度,是与该节点相关联的边的条数;所述主动链路是虚拟链路映射时,只有一个端点被映射,另一个端点仍未被映射的链路,被动链路是链路的两端点均已被映射。

所述步骤六中节点映射满足的资源约束为:物理节点ns的可用资源cs(m(nv))必须不小于虚拟节点nv所需求的计算资源:

在完成虚拟网络映射后,底层的物理节点的剩余容量为:

其中,rn(ns)为物理节点ns上的剩余可用计算资源,cv(nv)为物理节点ns上分配给虚拟节点nv所需的计算资源;将虚拟节点nv映射在物理节点ns上表示为m(nv)=ns,定义如下:

nv→ns:m(nv)=ns,nv∈vv,ns∈vs。

所述步骤六中节点映射满足的位置约束为:虚拟节点映射在不同的底层物理节点上:

其中,表示不同的虚拟节点。

所述链路映射满足的资源约束为:链路映射时需要物理链路上有足够的带宽资源提供给虚拟链路,约束如下:

bs(ls)≥bv(lv);

在完成虚拟网络映射后,底层物理链路的剩余容量变化如下:

其中,rl(ls)为物理链路ls上的剩余可用带宽资源。

所述频谱邻接性约束为每个连接请求分配连续的频谱隙,频谱邻接性表示为:

频谱连续性约束为沿路由每条链路上分配相同的频谱资源,频谱连续性表示为:

频谱不冲突性约束为每个连接请求在频谱资源上所占用的带宽必须不冲突且相隔离,频谱不冲突性表示为:

其中,表示物理链路的属性,则表示物理链路ls的频谱资源状况,表示物理链路ls的频隙占用状况,表示频隙i被不同的带宽请求z的占用状况。

所述步骤七中映射与主动虚拟节点nvz相连的主动链路lvz及该主动链路lvz另一端的被动节点nvb的实现步骤为:

7.1从与主动虚拟节点nvz相连的主动链路中随机选取一条主动链路lvz进行映射,并假设该条链路另一端的节点为nvb,链路映射满足资源约束及频谱连续性约束频谱邻接性、频谱不冲突性约束,且应优先选择跳数小的物理链路;

7.2主动链路lvz映射成功后,判断对应的物理节点是否满足被动节点nvb的要求,若满足映射要求则映射该被动节点nvb,并将已被映射的物理节点从物理节点集合unvs删除;若不满足则返回步骤7.1重新映射主动链路lvz;

7.3重复步骤7.1和7.2,直至与主动节点nvz相连的主动链路及主动链路另一端的被动节点nvb全部映射完成。

所述步骤九中运用k最短路径算法映射被动链路集合evb中全部被动链路lvb;采用广度优先搜索的思想实现k最短路径算法,具体步骤为:

1.假设n表示路径中包含的节点数,起始n=1;

2.从起点s开始遍历与s相连的一跳的节点并记录每一条路径作为候选路径,此时n=2;

3.对每一条候选路径,在已构造路径的基础上遍历该路径的下一跳即n=n+1的路径,将新节点加入对应路径作为新路径并记录。若路径中包括环路,则此路径不再遍历;若路径中已包含终点d则此条路径满足要求,将此路径放入结果集合中;

4.重复步骤3,每遍历一个新的节点将该节点加入路径中作为新的候选路径,直至所有从起点s到终点d的路径都遍历完;

5.算法停止,从结果集合中输出其中的前k条路径。

所述步骤十中采用prim算法计算虚拟拓扑的最小生成树;prim算法从任意一个顶点开始,每次选择一个与当前顶点集最近的一个顶点,并将两顶点之间的边加入到树中,直到所有节点都被加入到树中;具体实现方法为:设虚拟拓扑节点集合为ev,生成树链路集合为mst:

步骤1、任意选出一个虚拟节点作为初始顶点,标记为visit;

步骤2、在剩下的节点中,计算与已标记visit点距离最小的点标记为visit,并将对应的链路加入集合mst中;

步骤3、重复步骤2,直到所有节都被标记为visit;集合mst即为最小生成树的链路集合。

本发明的有益效果:采用基于节点度的节点和链路协同映射方法,缩小了虚拟网络映射的物理节点的分布范围,从而减少了链路的带宽资源消耗,一定程度上减小了虚拟网络映射的资源消耗;同时,由于节点映射时考虑了虚拟节点的节点度,增加了备份路径的选择范围。通过为虚拟拓扑的最小生成树链路所映射的工作路径提供备份路径减少了底层物理网络预留的资源总量,间接的提高了底层物理网络的资源利用率。因此,本发明虚拟网络映射时采用虚拟节点和虚拟链路协同映射的方式减少被映射物理节点的分散度,从而减少虚拟链路的资源消耗,提高了资源的利用率;通过减少备份路径的数量,减少底层物理网络的预留备份资源,从而减少虚拟网络的映射成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的流程示意图。

图2为传统保护性映射算法的实例。

图3为虚拟网络拓扑图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

底层物理网络由无向图gs=(vs,es,cs(ns),bs(ls))模型表示,其中,vs和es分别表示物理节点集合和物理链路集合。cs(ns)为物理节点ns∈vs上的可用计算资源,bs(ls)为物理链路ls上的可用带宽。

类似的,虚拟网络请求由无向图gv=(vv,ev,cv(nv),bv(lv))模型表示,其中,vv和ev分别表示虚拟节点集合和虚拟链路集合。cv(nv)为虚拟节点nv∈vv所需要的计算容量,bv(lv)为虚拟链路lv所需要的带宽。

虚拟网络映射是指为带有资源约束的虚拟节点和虚拟链路选取满足约束条件的物理节点和物理链路的过程。将虚拟节点nv映射在物理节点ns上表示为m(nv)=ns,具体定义如下:

nv→ns:m(nv)=ns,nv∈vv,ns∈vs(1)

虚拟节点nv映射在物理节点ns上,意味着物理节点ns上分配给虚拟节点nv所需的计算资源cv(nv)。因此,物理节点ns的可用资源cs(m(nv))必须不小于虚拟节点nv所需求的计算资源,约束如下:

虚拟网络映射时,将虚拟节点映射在不同的物理节点上,可以保证单个物理节点的故障不会同时影响虚拟网络内的多个虚拟节点。因此,将虚拟节点映射在不同的底层物理节点上,表示如下:

其中,表示不同的虚拟节点。

链路映射时需要物理链路上有足够的带宽资源提供给虚拟链路,约束如下:

bs(ls)≥bv(lv)(4)

在将底层的计算资源和物理资源分配给虚拟网络后,相应的物理节点和物理链路的资源就会减少。定义物理节点ns上的剩余可用计算资源为rn(ns),物理链路ls上的剩余可用带宽资源为rl(ls)。在完成虚拟网络映射后,底层基础设施的剩余容量变化如下:

上述约束为虚拟网络映射时最基本的约束。在上面给出虚拟网络映射数学模型的基础上,图2中给出了一个传统具体的虚拟网络保护性映射实例。节点旁边对应的数字为它们所具有(或需要)的计算资源,链路旁边数字则表示它们具有(或需要)的带宽资源。将虚拟网络映射到物理网络中,则对应的节点映射为{a→b,b→c,c→d},链路映射为{(a,b)→(b,c),(a,c)→(b,d),(b,c)→(c,d)},如图2中虚线所示。为了保证虚拟网络的生存性,即实现保护性,为每条物理链路提供一条备份路径,如图中点划线所示。链路(b,c)的备份路径为(b,a,c),链路(b,d)的备份路径为(b,e,d),链路(c,d)的备份路径为(c,e,d),当某一物理链路出现故障时,可将该链路所承载的业务迁移到备份路径上以保证网络能够正常运行。虚拟网络映射成功后,对应的物理节点和物理链路的资源都会减少,当虚拟请求离开后则会释放所占用的资源。

如图1所示,一种基于最小生成树的虚拟网络保护性映射方法,具体执行步骤如下:

步骤1.获取当前物理网络的资源状态信息,得到物理网络的无向图gs=(vs,es,cs(ns),bs(ls)),并初始化未映射物理节点集合unvs=vs。

步骤2.在虚拟请求到来时,获取到来的虚拟请求的资源状态信息,得到虚拟网络请求无向图gv=(vv,ev,cv(nv),bv(lv))。

步骤3.计算虚拟网络请求中各虚拟节点的节点度,将节点度最大的虚拟节点,即主动节点nvz,放入主动节点集合vvz,与其相连的虚拟节点,即被动节点nvb,放入被动节点集合vvb。

节点度是节点的关联度,指和该节点相关联的边的条数,所以某节点的节点度=与该节点相连的边数。

根据节点关联度将虚拟节点从小到大排序,关联度最大的虚拟节点为主动节点。与此主动节点相连的虚拟节点为被动节点。将剩余节点仍按关联度排序,重复上述步骤,直到所以节点都被加入主动节点集合和被动节点集合。将图3中虚拟节点按关联度降序排序,因虚拟节点b、e的节点度相同,随机选节点b作为第一个主动节点,则与节点b相连的节点a、节点c、节点f为被动节点。将剩余节点e、d降序排序,关联度最大的节点e为主动节点,节点d为被动节点。

步骤4.将剩余未放入集合中的虚拟节点重新按节点度排序,重复步骤3,将主动节点按选取顺序依次放入主动节点集合中,直至所有虚拟节点被放入主动节点集合vvz或被动节点集合vvb中,即vvz+vvb=vv。

步骤5.根据主动节点集合vvz和被动节点集合vvb将虚拟链路分为主动链路和被动链路,其中主动链路集合为evz,被动链路集合为evb。

虚拟链路映射时,若该链路只有一个端点被映射,另一个端点仍未被映射,则此链路为主动链路。如果链路的两端点均已被映射,则该链路为被动链路。

步骤6.将物理节点集合unvs中的物理节点作为候选物理节点,映射主动节点集合中节点度最大的虚拟节点nvz,节点映射满足资源约束和位置约束,且映射成功后将该物理节点从集合unvs中删除。

节点映射的资源约束满足的约束条件为公式(2)和(5),位置约束满足的约束条件为公式(3)。

步骤7.映射与该主动虚拟节点nvz相连的主动链路lvz及该主动链路lvz另一端的被动节点nvb:

7.1从与主动虚拟节点nvz相连的主动链路中随机选取一条主动链路lvz进行映射,并假设该条链路另一端的节点为nvb,链路映射满足资源约束及频谱连续性约束频谱邻接性、频谱不冲突性约束,且应优先选择跳数小的物理链路。

选择满足要求的物理链路时,首先从与该主动节点直接相连的一跳的物理路径开始选择,若没有满足要求的物理路径则筛选两跳的物理路径,直至选出满足要求的物理路径。

链路映射的资源约束满足公式(4)和(6)的约束条件。本发明应用于弹性光网络环境,最基本的约束除了上述公式描述的以外,还有弹性光网络中特有的频谱连续性约束、频谱邻接性、频谱不冲突性约束。

频谱邻接性约束为每个连接请求分配连续的频谱隙。频谱邻接性表示为:

频谱连续性约束为沿路由每条链路上分配相同的频谱资源。频谱连续性表示为:

频谱不冲突性约束为每个连接请求在频谱资源上所占用的带宽必须不冲突且相隔离。频谱不冲突性表示为:

其中,表示物理链路的属性,则表示物理链路ls的频谱资源状况,表示物理链路ls的频隙占用状况,则表示频隙i被占用。表示频隙i被不同的带宽请求z的占用状况。

以图2为例,假设现有某一请求要从a传到f且该请求所占资源数为3,路由为a—b—d—f。频谱邻接性是指:该请求在每一条链路(a,b)、(b,d)、(d,f)占用连续的位置,如1,2,3或者2,3,4,等等,不能是1,4,5等。频谱连续性是指:若该请求在链路(a,b)上占用的位置为1-3,则在链路(b,d)上也是1-3,(d,f)上也是1-3。频谱不冲突性是指:假设现在请求1占用了位置1,2,3。那么别的请求则不能占用此位置,直至这个请求不再占用。

7.2主动链路lvz映射成功后,判断对应的物理节点是否满足被动节点nvb的要求,若满足映射要求则映射该被动节点nvb,并将已被映射的物理节点从物理节点集合unvs删除;若不满足则返回步骤7.1重新映射主动链路lvz。

7.3重复步骤7.1和7.2,直至与主动节点nvz相连的主动链路及主动链路另一端的被动节点nvb全部映射完成。

8.将已经映射完成的主动虚拟节点nvz和被动节点nvb分别从主动节点集合vvz和被动节点集合vvb中删除,并重复步骤6、7,直至所有的虚拟节点和主动链路映射完成。

9.运用k最短路径算法映射被动链路集合evb中全部被动链路lvb,链路映射满足约束条件(4)(6)及频谱连续性约束、频谱邻接性、频谱不冲突性约束。

k最短路径问题的目的是图中起点和终点间的多个备选路径,形成最短路径组,k值可以根据自己的需要设置。k最短路径算法则用来解决此问题,但这并不是只有一个算法。本发明采用广度优先搜索的思想实现k最短路径算法,具体步骤为:

1.假设n表示路径中包含的节点数,起始n=1。

2.从起点s开始遍历与s相连的一跳的节点并记录每一条路径作为候选路径,此时n=2。

3.对每一条候选路径,在已构造路径的基础上遍历该路径的下一跳即n=n+1的路径,将新节点加入对应路径作为新路径并记录。若路径中包括环路,则此路径不再遍历;若路径中已包含终点d则此条路径满足要求,将此路径放入结果集合中。

4.重复步骤3。每遍历一个新的节点将该节点加入路径中作为新的候选路径,直至所有从起点s到终点d的路径都遍历完。

5.算法停止,从结果集合中输出其中的前k条路径。

以图3为例(从a到d):

1.a—ba—f

2.a—b—ca—b—f;

a—f—ba—f—e

3.a—b—c—d(完成)a—b—c—ea—b—f—e;

a—f—b—ca—f—e—c

4.a—b—c—e—f(再次遍历f时,有环路,放弃)a—b—c—e—d(完成)

……………

10.计算虚拟拓扑的最小生成树,选取虚拟拓扑中属于最小生成树的虚拟链路,运用k最短路径算法为这些虚拟链路提供备份路径。

由于只考虑单节点故障场景,所以备份路径可以共享,即备份链路只要不与其备份的工作路径有共同的物理链路,且满足链路映射要求即可。

本发明采用prim算法计算虚拟拓扑的最小生成树。prim算法从任意一个顶点开始,每次选择一个与当前顶点集最近(此外的远近用虚拟链路的带宽需求值表示,即边的权重)的一个顶点,并将两顶点之间的边加入到树中,直到所有节点都被加入到树中。

设虚拟拓扑节点集合为ev,生成树链路集合为mst,具体方法为:

1.任意选出一个虚拟节点作为初始顶点,标记为visit;

2.在剩下的节点中,计算与已标记visit点距离最小的点标记为visit,并将对应的链路加入集合mst中;

3.重复步骤2,直到所有节都被标记为visit。

4.集合mst即为最小生成树的链路集合。

本发明采用节点和链路协同映射的方式,第一个主动节点映射成功后,映射与此主动节点相连的主动链路,接着映射主动链路另一端的被节点。重复上述步骤直至虚拟网络映射完成。如图3所示,节点b映射成功后,随机选择主动链路(b,a)、(b,f)、(b,c)中的一条进行映射。此处选择链路(b,c),该链路映射成功后,映射这条链路另一端的被动节点c,若节点c未映射成功,则重新映射(b,c)直到主动链路(b,c)和被动节点c都映射成功。接着映射剩余与主动节点b相连的链路及节点。第一个主动链路映射成功后,按上述步骤映射剩余主动节点。直到所有的主动节点均被映射完。然后映射仍未被映射的被动链路,此处为链路(f,e)、(c,d)。待所有的链路节点和虚拟链路映射完成后。根据虚拟拓扑的最小生成树,为工作路径提供备份路径。假设此外该虚拟拓扑的最小生成树对应的链路为(a,b)、(a,f)、(b,c)、(c,d)、(c,e),为上述虚拟链路映射的物理路径提供备份路径。

本发明在满足上述约束的前提下实现了虚拟网络的保护性映射,在发生单链路故障时保护虚拟网络能够正常通信。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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