背景技术
互联网在定义当今世界中获取并交换信息方式的模型上取得了巨大的成功。在过去的三十年中,互联网通过支持大批分散的应用以及大量不同的网络技术,证实了自身结构的价值。然而,互联网的广泛使用也成为了其进一步发展的最大阻碍,由于其多供应商的特性,在互联网的现有结构中加入新的结构或调整需要获得所有运营商的共同认可,从而现今的网络结构受到限制只能够进行迟缓简单的更新,而无法进行迅速的变革。
网络虚拟化作为解决当前互联网僵化问题的技术手段,近年来受到了国内外未来网络领域研究的广泛关注。网络虚拟化的优势之一是支持多个异构的网络架构共享物理基础设施。网络虚拟化技术其本质是通过抽象、分配、隔离机制在一个公共物理网络上独立地运营多个虚拟网,从而能够有选择性地进行最佳的资源分配与调度。网络虚拟化的目的就是实现分布式虚拟资源的广泛共享,因此虚拟资源映射是网络虚拟化技术需要实现的重要功能。虚拟资源映射算法作为网络虚拟化技术的关键问题之一,它实现了将用户的虚拟网络请求合理地映射至底层物理网络的物理资源上的过程,其中如何高效分配物理网络资源以满足各虚拟网络的链路带宽和节点性能要求,是虚拟资源映射问题的关键。
目前网络间的通信有单播、多播、广播等形式,其中多播已在许多需要高QoS(Quality of Service,服务质量)的实时性应用中被广泛使用,然而在虚拟网络中,现有的多数虚拟资源映射算法仅对单播业务有效,而不适用于多播的情况。启发式算法是解决虚拟资源映射问题的常用方法,其在网络节点上定义函数h(n),用于评估从此节点到目标节点最便宜的路径。算法中包含节点资源分配和链路资源分配两部分。节点资源分配是指:根据虚拟网络节点的约束条件,将底层节点的资源分配给虚拟网络节点。链路资源分配是指:根据虚拟链路的源节点和宿节点被映射的底层节点、以及虚拟链路的约束条件,将底层网络的一条底层链路或者多条底层链路的资源分配给虚拟链路。目前已提出的几种针对虚拟资源映射问题的启发式算法,几乎全部都是基于单播情况。
在针对单播的虚拟网络映射方法中,CPP(Cluster and Path Protection,集群和路径保护)和VNP(Virtual Network Protection,虚拟网络保护)算法是比较常见的考虑抗毁性的虚拟网络映射的方法,能够同时允许一个虚拟网络节点的映射服务器和一条底层数据中心网络链路的失效,并及时地从失效中进行恢复。该方法是通过1:1(每份工作资源对应于一份等量的保护资源)的方式对节点和链路进行保护,以最小化映射成本为目标,将虚拟网络映射到底层网络上。在映射完成后以相同的资源代价为映射完成的工作虚拟网络提供保护。其他很多类似的考虑抗毁性的虚拟网络映射,也是基于这样的思想实现的,1:1的方式能够很好的实现失效恢复。在抗毁虚拟网络映射问题中进行资源分配时,上述方法仅仅采用了较为简单的1:1的资源分配机制,并未引入资源共享策略,这将导致在虚拟网络映射过程中会消耗较高的资源成本。并且这些方法只是针对单播虚拟网络映射问题而提出的,这些方法无法兼顾多播虚拟网络映射的各种特殊性约束,比如时延,时延抖动等。
多播虚拟网络的业务需求约束可用下式表示:
Ci≤Rn,Cei≤Rl;n∈NF,l∈E(P(i)) (1)
∑l∈E(P(i))dl≤CD (2)
|∑l∈E(P(i))dl-∑l∈E(P(i′))dl|≤CDV (3)
其中,NF表示各节点可接入的底层数据中心网络节点集合,v表示虚拟根节点,VN表示虚拟叶子节点的集合,vi表示与根节点v连接的第i个虚拟叶子节点,vi∈VN,n表示与叶子节点vi对应的底层数据中心,ei表示叶子节点vi与根节点v的虚拟链路,P(i)表示虚拟链路ei映射的底层路径,E(P(i))表示底层路径P(i)的底层链路集合,l表示底层链路,Ci表示虚拟网络节点vi的资源需求,Rn表示底层数据中心n的剩余资源,Cei表示虚拟链路ei的资源需求,Rl表示底层链路l的剩余资源容量,dl表示底层链路l的时延,CD表示多播虚拟网络的时延约束,CDV表示多播虚拟网络的时延抖动约束。
约束式(1)确保:多播虚拟网络节点资源需求不大于所映射的数据中心服务器节点的可用资源容量;虚拟链路的资源需求不超过所映射路径上任意一条底层链路的可用带宽资源量。
约束式(2)确保:映射的路径P的时延不超过时延上限。
约束式(3)确保:任意两条映射路径间的时延差不超过时延差上限。
针对多播虚拟网络映射问题,也有很多相应方法的研究。VMNDDVCM(Virtual Multicast Networks Subject to Delay and Delay Variation Constraints Mapping,时延和时延抖动约束下的多播虚拟网络映射)算法是一种常见的解决多播虚拟网络的映射方法,该方法综合考虑了多播虚拟网络的特殊性,引入了多播网络的时延和时延抖动的特性,通过引入窗口滑动机制解决了映射过程中的时延抖动约束,采用枚举策略寻找满足约束的最优多播树以完成映射,保证了最优的映射成本。但是该方法并未考虑到底层网络的突发失效情况,不能够对底层网络中节点和链路的失效做出相应的处理,即无法实现多播虚拟网络的抗毁映射。并且该方法在完成映射时采用了枚举的机制,虽然保证了映射结果的最优,但是算法复杂度较高、收敛速度太慢,不能适用于较大规模的虚拟网络映射问题。在实际应用中,多播虚拟网络的节点映射时往往会有接入区域的限制,而VMNDDVCM算法不能应对此类业务需求。
发明内容
本发明的目的在于克服现有技术的不足,提供一种多播虚拟网络的抗毁性映射方法,在进行多播情况下的虚拟资源映射的同时引入容错机制,提高多播虚拟网络的抗毁性能。
为实现上述发明目的,本发明多播虚拟网络的抗毁性映射方法包括以下步骤:
S1:记多播虚拟网络中根节点为v,叶子节点集合为VN,各节点可接入的底层数据中心集合为NF,根节点v可接入的底层数据中心的集合为Loc(v),根据多播虚拟网络中各叶子节点vi可接入的底层数据中心的区域的要求,i为叶子节点的序号,得到每个叶子节点vi可接入的底层数据中心的集合Loc(vi),以及每个底层数据中心Nj可覆盖的叶子节点集合Cov(Nj),vi∈VN,Nj∈NF;
S2:采用最小集合覆盖算法求得集合Cov(Nj)中以最小集合数覆盖所有叶子节点的集合方案,如果得到两个以上等效的集合方案,则选择一个集合方案作为执行集合方案,对应的底层数据中心集合为NE,包含的集合为Cov(Nx),Nx∈NE;遍历执行集合方案中的各个集合,对于覆盖相同叶子节点的集合,删除叶子节点数量较小的集合中的相同叶子节点,最终得到的执行集合方案包含的集合为Cov_n(Nx),Nx∈NE;
S3:依次将步骤S2得到的执行集合方案中每个集合Cov_n(Nx)覆盖的叶子节点映射到相应的底层数据中心Nx上,其中节点保护资源需求等于覆盖的叶子节点资源需求中的最大值,计算各底层数据中心Nx映射叶子节点的节点资源消耗量Cost(Nx);
S4:将根节点v可接入的底层数据中心Ny作为备选底层数据中心,Ny∈Loc(v),计算根节点v的节点资源消耗量Cost(Ny);
S5:对于不同的备选底层数据中心Ny,将步骤S2得到的每个集合Cov_n(Nx)覆盖的叶子节点vi到根节点v的虚拟链路ei按链路资源需求降序排列,依次对每个虚拟链路ei进行映射,映射方法为:
S5.1:初始化所有底层链路l的权重Weight(l)=1,如果虚拟链路ei是当前集合Cov_n(Nx)中的第一条虚拟链路,进入步骤S5.2,如果不是,进入步骤S5.3;
S5.2:利用链路分离路径对算法计算出两条满足多播虚拟网络资源要求和时延要求的链路分离的一对底层路径,其中可用资源多的一条作为工作路径Pw(i),另外一条作为保护路径Pb(i),工作路径与保护路径的总链路资源消耗量即为虚拟链路资源消耗量Cost(ei),记录虚拟链路资源消耗量Cost(ei)和映射信息,映射信息包括虚拟链路ei的工作路径和保护路径,更新已占用的底层链路l的权重Weight(l)=∞,l∈Pw(i)∪Pb(i);
S5.3:根据底层链路l的权重Weight(l)利用最短路算法计算底层路径,如果计算成功,则将该底层路径作为其工作路径Pw(i),保护路径与第一条虚拟链路相同,其虚拟链路资源消耗量Cost(ei)为工作路径的链路资源消耗量,记录虚拟链路资源消耗量Cost(ei)和映射信息,更新已占用的底层链路l的权重Weight(l)=∞,l∈Pw(i);如果计算不成功,则进入步骤S5.2映射其工作路径和保护路径;
S6:重新初始化所有底层链路l的权重Weight(l)=1,计算步骤S5得到的所有底层路径的时延,其中最大时延记为Dmax,得到时延窗口T=[Dmax-CDV,Dmax],CDV是多播虚拟网络的时延抖动约束,如果有底层路径的时延不在时延窗口T的范围内,则说明该底层路径不符合时延抖动要求,进入步骤S7,如果所有底层路径的时延都在时延窗口T的范围内,则说明所有底层路径符合时延抖动要求,进入步骤S8;
S7:对于时延抖动要求不符合的底层路径,根据映射信息得到与其分离的所有底层路径,这些底层路径的链路集合记为S,重新设置权重Weight(l)=∞,l∈S,通过前K条最短路径算法找到K条最短底层路径,按时延升序排列,选取满足时延窗口T的时延最短的底层路径作为新底层路径,对原底层路径进行更新,同时更新其对应的虚拟链路资源消耗量Cost(ei)和映射信息,进入步骤S8;
S8:根据节点资源消耗量和虚拟链路资源消耗量计算每个备选底层数据中心Ny对应的总资源消耗量TotalCosty,选择总资源消耗量最小的备选底层数据中心,将其对应的链路映射方案作为最佳链路映射方案进行链路映射,虚拟资源映射结束。
其中,步骤S2中执行集合方案的选择方法为:
S2.1:对于每个等效集合方案,将集合按覆盖的叶子节点数量降序排列,记排列序号Num=1;
S2.2:选取等效集合方案中排列序号Num相同的集合,对于每个集合计算其对应的底层数据中心与集合Loc(v)中各底层数据中心的平均路径长度;
S2.3:比较步骤S2.2中得到的各个平均路径长度,如果出现唯一一个平均路径长度最短的集合方案,则将其作为执行集合方案;如果平均路径长度最短的集合方案存在两个以上,则将这些集合方案作为等效集合方案,如果此时排列序列Num等于集合个数,则从此时的等效集合方案中任意选择一个作为执行集合方案,如果不等于,则令排列序号Num=Num+1,返回步骤S2.2。
其中,步骤S2中的集合Cov_n(Nx)是按叶子节点数量降序排列的。
进一步地,还包括对最佳链路映射方案的优化,优化方法为:在集合Cov_n(Nx)中选择叶子节点数量为1的集合,遍历其叶子节点vi可接入的底层数据中心的集合Loc(vi),分别对每个底层数据中心计算两条链路分离并满足资源需求要求、时延要求、时延抖动要求的路径,计算对应的虚拟链路资源消耗量Cost(ei),如果该虚拟链路资源消耗量Cost(ei)比原有映射的虚拟链路资源消耗量更小,则以该映射更新原有映射,否则不作任何操作。
本发明的发明目的是这样实现的:
本发明多播虚拟网络的抗毁性映射方法,根据多播虚拟网络中各叶子节点可接入的底层数据中心的区域的要求,得到每个底层数据中心可覆盖的叶子节点集合,采用最小集合覆盖算法得到以最小集合数覆盖所有叶子节点的集合方案,以对应的底层数据中心进行叶子节点的映射,同一个底层数据中心覆盖的叶子节点共享节点保护资源;再将根节点可接入的底层数据中心作为备选底层数据中心,对于每个备选底层数据中心进行一次链路映射,在链路映射时同一个底层数据中心覆盖的叶子节点可以共享保护路径,链路映射完成后选择每个备选底层数据中心对应的链路映射方案中总资源消耗量最小的作为最佳链路映射方案进行链路映射。
本发明多播虚拟网络的抗毁性映射方法具有以下有益效果:
(1)、本发明的虚拟资源映射可以满足多播虚拟网络对于资源需求、时延、时延抖动要求,并能实现具有接入区域限制的多播虚拟网络的映射;
(2)、在节点映射、链路映射时均设置保护资源,可允许最多一个底层数据中心和一条底层链路的失效,提高多播虚拟网络的抗毁性能;
(3)、同一个底层数据中心覆盖的叶子节点可以共享节点保护资源和链路保护资源,采用这种保护策略可以有效节约网络资源;
(4)、在确定执行集合方案和链路映射方案都选择资源消耗量最小的方案,还可以根据资源消耗量对链路映射方案进行优化,从而优化了虚拟资源映射成本;
(5)、本发明所提出的映射方法,收敛速度快,可应用于大业务量场景,实现多播虚拟网络的高效映射。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图1是本发明多播虚拟网络的抗毁性映射方法一种具体实施方式流程图。如图1所示,本发明多播虚拟网络的抗毁性映射方法包括以下步骤:
S101:多播虚拟网络数据统计:
记多播虚拟网络中根节点为v,叶子节点集合为VN,各节点可接入的底层数据中心集合为NF,根节点v可接入的底层数据中心的集合为Loc(v),根据多播虚拟网络中各叶子节点vi可接入的底层数据中心的区域的要求,i为叶子节点的序号,得到每个叶子节点vi可接入的底层数据中心的集合Loc(vi),以及每个底层数据中心Nj可覆盖的叶子节点集合Cov(Nj),vi∈VN,Nj∈NF。例如本实施方式中,有九个可接入的底层数据中心,有一个根节点,Loc(v)={N7,N8,N9};有五个叶子节点,其中Loc(v1)={N1,N2},Loc(v2)={N1,N2,N6},Loc(v3)={N2,N3},Loc(v4)={N1,N4},Loc(v5)={N5}。图2是底层数据中心可覆盖的叶子节点集合示例图。如图2所示,以椭圆表示各底层数据中心可覆盖的叶子节点集合Cov(Nj),分别为:Cov(N1)={v1,v2,v4},Cov(N2)={v1,v2,v3},Cov(N3)={v3},Cov(N4)={v4},Cov(N5)={v5},Cov(N6)={v2}。
S102:采用最小集合算法得到执行集合方案:
采用最小集合覆盖算法求得集合Cov(Nj)中以最小集合数覆盖所有叶子节点的集合方案,如果得到两个以上等效的集合方案,则选择一个集合方案作为执行集合方案,对应的底层数据中心集合为NE,包含的集合为Cov(Nx),Nx∈NE。并且由于多播虚拟网络中叶子节点是不可能同时映射在多个数据中心节点上的,因此还需要遍历执行集合方案中的各个集合,对于覆盖相同叶子节点的集合,删除叶子节点数量较小的集合中的相同叶子节点,最终得到的执行集合方案包含的集合为Cov_n(Nx),Nx∈NE。在实际应用中,集合Cov_n(Nx)可以按叶子节点数量降序排列,因为叶子节点数量多的底层数据中心,其节点资源消耗量和链路资源消耗量都较大,这样在后期链路映射时可以先照顾资源消耗量大的底层数据中心。
最小集合覆盖算法是一种利用贪心策略得到覆盖所有元素的最少集合数的现有算法,具有较快收敛速度,因此可以提高本发明的运算效率。例如有H个元素分别存在于G个集合中,这G个集合之间存在交叠,通过最小集合覆盖算法的贪心策略可以求出最少的集合数J(J<=G),J个集合能够覆盖H个元素。
在实际应用中,采用最小集合覆盖算法有可能会出现等效结果,即得到两个以上等效的集合方案都能覆盖所有叶子节点。等效的集合方案中集合数量相同,并且将集合按叶子节点数量排序后,各集合方案中相同序号的集合覆盖的叶子节点数量也相同。图3是图2示例采用最小集合覆盖算法得到的两个等效集合方案示意图。如图3所示,集合方案(a)为:底层数据中心集合NE={N1,N3,N5},集合方案为Cov(N1)={v1,v2,v4},Cov(N3)={v3},Cov(N5)={v5}。集合方案(b)为:底层数据中心集合NE′={N2,N4,N5},集合方案为Cov(N2)={v1,v2,v3},Cov(N4)={v4},Cov(N5)={v5}。
出现两个以上等效的集合方案时,需要选择一个作为执行集合方案,可以任意选择一个,也可以从映射成本方面考虑,选择映射成本最小的作为执行集合方案。本发明中,还提供了一种基于平均路径长度进行等效结果选择的方法,具体方法包括以下步骤:
S2.1:对于每个等效集合方案,将集合按覆盖的叶子节点数量降序排列,记排列序号Num=1。如图3所示的两种集合方案,表1为图3所示两种集合方案的排序结果。
排列序号Num |
1 |
2 |
3 |
集合方案(a) |
Cov(N1) |
Cov(N5) |
Cov(N3) |
集合方案(b) |
Cov(N2) |
Cov(N4) |
Cov(N5) |
表1
S2.2:选取等效集合方案中排列序号Num相同的集合,对于每个集合计算其对应的底层数据中心与集合Loc(v)中各底层数据中心的平均路径长度。例如排列序号Num=1时,计算底层数据中心N1与集合Loc(v)中各底层数据中心N7、N8、N9的平均路径长度length_1,路径长度可以根据情况选择跳数、带宽、时延等。同样地,计算底层数据中心N2与集合Loc(v)中各底层数据中心N7、N8、N9的平均路径长度length_2。
S2.3:比较步骤S2.2中得到的各个平均路径长度,如果出现唯一一个平均路径长度最短的集合方案,则将其作为执行集合方案;如果平均路径长度最短的集合方案存在两个以上,则将这些集合方案作为等效集合方案,如果此时排列序列Num等于集合个数,则从此时的等效集合方案中任意选择一个作为执行集合方案,如果不等于,则令排列序号Num=Num+1,返回步骤S2.2。
本实施方式中,如果步骤S2.2中得到length_1<length_2,则采用集合方案(a)作为执行集合方案;如果length_1>length_2,则采用集合方案(b)作为执行集合方案;如果length_1=length_2,则集合方案(a)和(b)仍然是等效集合方案,令排列序号Num=2返回步骤S2.2重新计算。如果所有的集合都计算完毕,仍然存在等效集合方案,则说明他们的映射成本是一样的,可以任意选择一个作为执行集合方案。
假定本实施方式中,以集合方案(a)作为执行集合方案。遍历各集合删除重叠的叶子节点,由于该执行集合方案中没有集合包含有相同的叶子节点,因此最终得到的执行集合方案不变,即Cov(N1)_n={v1,v2,v4},Cov(N3)_n={v3},Cov(N5)_n={v5}。
S103:叶子节点映射底层数据中心:
依次将步骤S102得到的执行集合方案中每个集合Cov_n(Nx)覆盖的叶子节点映射到相应的底层数据中心Nx上,计算各底层数据中心Nx映射叶子节点的节点资源消耗量Cost(Nx)。本实施方式中,使用的计算公式为:
Cost(Nx)=cost(Nx)×(∑C(vi)+max{C(vi)}) (4)
其中,vi∈Cov_n(Nx),cost(Nx)表示底层数据中心Nx的资源单位成本,C(vi)表示叶子节点vi的资源需求。max{C(vi)}是指采用叶子节点的资源需求最大值作为该底层数据中心的节点保护资源,从而使底层数据中心覆盖的叶子节点共享节点保护资源。
S104:对根节点可接入的每个底层数据中心分别进行链路映射:
由于在实际应用中,根节点v可接入的底层数据中心不止一个,因此为了实现映射成本的最小化,需要针对每个底层数据中心分别进行链路映射,从中选择映射成本最小的链路映射方案。当然,如果根节点v可接入的底层数据中心只有一个,得到的映射成本最小的链路映射方案就是其本身的链路映射方案。映射成本计算方法包括具体以下步骤:
S4.1:将根节点v可接入的底层数据中心Ny均作为备选底层数据中心,Ny∈Loc(v),计算根节点v的节点资源消耗量Cost(Ny),在本实施方式中的计算公式为:
Cost(Ny)=2×cost(Ny)×C(v) (5)
其中,cost(Ny)表示网络底层链路l的链路资源单位成本,C(v)表示根节点v的节点资源需求。公式(5)中2倍的原因是为根节点v配备节点保护资源。
S4.2:对于不同的备选底层数据中心Ny,将步骤S102得到的每个集合Cov_n(Nx)覆盖的叶子节点vi到根节点v的虚拟链路ei按链路资源需求降序排列,依次对每个虚拟链路ei进行映射。即本发明中集合中的保护路径是共享的第一个虚拟链路的保护路径,因此要通过链路资源需求降序排列进行映射,从而使保护路径能够满足所有工作路径的资源需求。映射方法为:
S4.2.1:初始化所有底层链路l的权重Weight(l)=1,如果虚拟链路ei是当前集合Cov_n(Nx)中的第一条虚拟链路,进入步骤S4.2.2,如果不是,进入步骤S4.2.3;
S4.2.2:利用链路分离路径对算法计算出两条满足多播虚拟网络资源要求和时延要求的链路分离的一对底层路径,其中可用资源多的一条作为工作路径Pw(i),另外一条作为保护路径Pb(i),工作路径与保护路径的总链路资源消耗量即为虚拟链路资源消耗量Cost(ei),记录虚拟链路资源消耗量Cost(ei)和映射信息,映射信息包括虚拟链路ei的工作路径和保护路径,更新已占用的底层链路l的权重Weight(l)=∞,l∈Pw(i)∪Pb(i)。本实施方式中,此处虚拟链路资源消耗量Cost(ei)的计算公式为:
其中,cost(l)表示底层链路的单元成本,C(ei)表示虚拟链路ei的资源需求。
S4.2.3:根据底层链路l的权重Weight(l)利用最短路算法计算底层路径,如果计算成功,则将该底层路径作为其工作路径Pw(i),保护路径与第一条虚拟链路相同,其虚拟链路资源消耗量Cost(ei)为工作路径的链路资源消耗量,本实施例中此处虚拟链路资源消耗量Cost(ei)的计算公式为:
记录虚拟链路资源消耗量Cost(ei)和映射信息,更新已占用的底层链路l的权重Weight(l)=∞,l∈Pw(i);如果计算不成功,则进入步骤S5.2映射其工作路径和保护路径。可见,对于一个底层数据中心,其覆盖的叶子节点到根节点不一定只存在一个保护路径,但是只要能够采用最短路算法成功计算出底层路径的虚拟链路,就可以与第一条虚拟链路共享一条保护路径,从而节省资源。
S4.3:重新初始化所有底层链路l的权重Weight(l)=1,计算步骤S4.2得到的所有底层路径的时延,其中最大时延记为Dmax,得到时延窗口:
T=[Dmax-CDV,Dmax] (8)
其中,CDV是多播虚拟网络的时延抖动约束。本发明将(3)式的约束等效为(8)式。
如果有底层路径的时延不在时延窗口T的范围内,则说明该底层路径不符合时延抖动要求,进入步骤S4.4,如果所有底层路径的时延都在时延窗口T的范围内,则说明所有底层路径符合时延抖动要求,进入步骤S105。
S4.4:根据映射信息得到与时延抖动要求不符合的底层路径分离的所有底层路径,这些底层路径的链路集合记为S,重新设置权重Weight(l)=∞,l∈S,通过前K条最短路径(kshortestpath)算法找到K条最短底层路径,按时延升序排列,选取满足时延窗口T的时延最短的底层路径作为新底层路径,对原底层路径进行更新,同时更新其对应的虚拟链路资源消耗量Cost(ei)和映射信息,进入步骤S105;
S105:根据节点资源消耗量和虚拟链路资源消耗量计算每个备选底层数据中心Ny对应的总资源消耗量TotalCosty,本实施方式中的计算公式为:
其中,E(V)表示虚拟链路的集合。可见(9)式中第一项表示所有叶子节点在映射的底层数据中心所消耗的资源成本,第二项表示所有虚拟链路映射成功所需要消耗的资源成本。
选择总资源消耗量最小,即映射成本最小的备选底层数据中心,将其对应的链路映射方案作为最佳链路映射方案进行链路映射,虚拟资源映射结束。
对于最佳链路映射方案,还可以进行进一步地优化。该优化方法仅针对映射叶子节点数量为1的底层数据中心,即该底层数据中心不存在共享保护路径的叶子节点。优化方法为:在集合Cov_n(Nx)中选择叶子节点数量为1的集合,遍历其叶子节点vi可接入的底层数据中心的集合Loc(vi),分别对每个底层数据中心计算两条链路分离并满足资源需求要求、时延要求、时延抖动要求的底层路径,例如采用链路分离路径对算法得到多对链路分离的底层路径,选择满足时延抖动要求的一对底层路径。计算对应的虚拟链路资源消耗量Cost(ei),如果该虚拟链路资源消耗量Cost(ei)比原有映射的虚拟链路资源消耗量更小,则以该映射更新原有映射,即将叶子节点迁移到虚拟链路资源消耗量更小的节点,否则不作任何操作。
本发明具有较快的收敛速度,可实现多播虚拟网络的高效映射。采用55节点中国拓扑的底层物理网络进行实验仿真。图4是本发明仿真基于的55节点中国拓扑示意图。如图4所示,这些拓扑的节点数目和连通度不尽相同,可以很好的检验算法对各种拓扑的普适性。在仿真实验中,假定底层物理网络的节点和链路资源充足。底层物理网络的具体属性为:每条物理链路的带宽资源容量为10000个单位,每个单位带宽资源的成本为1,每条物理链路的时延在1~2之间随机生成;每个物理节点的资源容量为10000个单位,每个单位节点资源的成本为8。
仿真中用到的虚拟网络请求均按一定的规则随机生成,即先给定待生成的虚拟网络请求的节点数目,生成多播虚拟网络请求的树形拓扑结构。虚拟网络节点的资源需求量在1~10之间随机生成;虚拟链路的资源需求量在1~10之间随机选取,虚拟链路的时延为14,任意虚拟链路的时延差不超过4。实际应用中,虚拟网络请求的拓扑和属性参数等以业务请求的方式由用户给出。每个虚拟网络节点都有可接入的底层数据中心节点集合,考虑到不同的虚拟网络节点间的可映射区域可能存在重叠的情况,在仿真中设定了四种重叠程度。重叠程度M,表示同一多播虚拟网络的任意两个叶子节点至少有M个公共可映射物理节点,即底层数据中心。
图5是本发明与VMNDDVCM算法收敛速度的仿真对比图。从图5可以看出,采用本发明完成虚拟网络映射所需的时间远远少于VMNDDVCM算法完成虚拟网络映射所消耗的时间,并且不会随着虚拟网络节点的增多而大幅增长。这是由于本发明中引入了最小集合覆盖算法完成叶子节点映射,既保证了所求结果的优化性,又大大减少了映射所需时间。因此,本发明能适应大规模的底层物理网络,随着多播网络业务规模的增大,时间效率远远高于VMNDDVCM算法。
图6是本发明在SDN网络中的实际应用流程图。
SDN(Software Defined Network,软件定义网络)网络是一种新型网络,其特点是将控制功能从网络交换设备中分离出来,将其移入逻辑上独立的控制环境——网络控制系统之中。这种网络控制系统系统可以在通用的服务器上运行,任何用户可随时、直接进行控制功能编程。因此,控制功能既不再局限于路由器中,也不再局限于只有设备的生产厂商才能够编程和定义。SDN的本质是逻辑集中控制层的可编程化。SDN可以实现网络的计算和存储资源的整合,最终使得只要通过一些简单的软件工具组合,就能实现对整个网络的控制和管理。这是SDN网络的众多优势之一,也是决定可以用它实现虚拟网络映射的关键因素。
网络运营商可以将本发明所提出的多播虚拟网络的抗毁性映射方法部署在SDN的控制路由器中的控制层上,SDN控制路由器可以调度自身带有的控制管理功能收集全网信息,获取网络中所有节点资源情况,以及链路的资源,时延等信息。通过这种集中式的控制方式该路由器就可以获取全网的拓扑以及相应的资源信息。
当有多播虚拟网络业务到来时,SDN控制路由器可以根据自己所掌握的全网信息,调度部署在其控制层上的基于多播虚拟网络的抗毁映射方法,计算出映射信息。将相应多播虚拟网络业务的节点任务分配给映射的物理节点(即底层数据中心),并发送相应的工作路由和备份路由信息(即虚拟多播网络的链路映射情况),以这样的方式来完成多播虚拟网络的实际映射。在映射完成后由该控制路由器扣除相应的节点和链路资源,进行成本计算,并反馈给运营商。
如图6所示,本发明在SDN网络中的实际应用包括以下步骤:
S601:SDN控制路由器初始化系统状态,初始化多播虚拟网络映射任务队列。
S602:依次弹出队首的映射任务,调用本发明进行映射。
S603:判断是否映射成功,如果不成功,进入步骤S604,如果成功,进入步骤S605。
S604:更新失败次数,返回步骤S602,对下一个映射任务进行映射。
S605:更新成功次数,保存映射信息,更新系统状态,即更新相应数据中心节点和链路的资源等。
S606:对最佳链路映射方案进行优化,判断是否存在更优的映射方案,如果存在,进入步骤S607;如果不存在,进入步骤S609。
S607:根据最优方案进行叶子节点迁移,进入步骤S608。
S608:更新系统状态和映射结果,统计映射成本。
S609:统计映射成本。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。