连接性感知的虚拟网络嵌入的制作方法

文档序号:13561787阅读:160来源:国知局
相关申请案交叉申请本发明要求2015年7月30日递交的第62/199,150号美国临时专利申请案、2015年7月31日递交的第62/199,507号美国临时专利申请案以及2016年2月19日递交的第15/048,573号美国常规专利申请案的在先申请优先权,所有在先申请的内容以引用的方式并入本文中。本申请案涉及虚拟网络嵌入,且具体来说,涉及连接性感知的虚拟网络嵌入。
背景技术
::网络虚拟化允许一个或多个指定网络在衬底网络基础设施上实施。也就是说,可以在物理网络基础设施上指定和实施多个虚拟网络。虚拟网络嵌入将虚拟网络的虚拟节点与虚拟链路之间的映射提供到物理衬底网络的物理节点和物理链路或路径。除了满足虚拟节点和虚拟链路需求之外,映射还可以尝试优化或满足其它限制。虚拟网络嵌入允许多个虚拟节点和虚拟链路在可用物理资源中实施。然而,由于物理链路发生故障,虚拟网络嵌入可以产生使虚拟网络易受断开影响的映射,这将使虚拟网络或虚拟网络的一部分不可用。定义虚拟网络可以由于物理链路的故障而遭受连接性问题。尽管可以在单个物理链路发生故障的情况下确定保持虚拟节点之间的连接性的映射,但是在需要更多链路故障应变力并且虚拟节点的数目增加时,尤其当考虑其它条件,例如物理网络资源的有效使用时,复杂性问题快速增加。需要提供一种能够在多个物理链路发生故障的情况下提供可以保持虚拟网络连接性的映射的虚拟网络嵌入技术。技术实现要素:根据本发明,提供一种用于将定义虚拟网络的虚拟网络定义嵌入到物理网络上的方法,所述虚拟网络包括多个虚拟节点和多个虚拟链路,所述方法包括:确定用于虚拟网络定义的每个虚拟链路的冲突集合,每个冲突集合包括虚拟网络的多个虚拟链路,在k个物理链路发生故障的情况下,所述多个虚拟链路必须嵌入到物理网络中的不相交路径上以保持虚拟网络的连接性;以及将虚拟网络嵌入到物理网络上,使得每个冲突集合中的多个虚拟链路中的每一个嵌入到物理网络的不相交路径上。根据另一实施例,所述方法进一步包括通过在虚拟节点之间添加并行虚拟链路,使得虚拟节点中的每一个包括至少k+1个虚拟链路而扩增虚拟网络定义。根据所述方法的另一实施例,当确定用于每个虚拟链路的冲突集合时添加并行虚拟链路。根据所述方法的另一实施例,扩增虚拟网络定义和确定冲突集合包括:选择初始虚拟节点作为保护组件;选择保护组件外部的虚拟节点,所述虚拟节点具有到保护组件内部的虚拟节点的虚拟链路;尝试确定从保护组件到选定虚拟节点的k+1个边缘不相交的最短路径;如果确定k+1个边缘不相交的最短路径:将选定虚拟节点添加到保护组件;更新在选定虚拟节点与保护组件内部的虚拟节点之间的虚拟链路的冲突集合以包含k+1个边缘不相交的最短路径中的所有虚拟链路;以及根据对扩增虚拟网络定义和确定冲突集合的进一步考量来清除k+1个边缘不相交的最短路径中的所有虚拟链路;如果不确定k+1个边缘不相交的最短路径:在选定虚拟节点与保护组件内部的虚拟节点之间添加n个并行虚拟链路以提供k+1个边缘不相交的最短路径,其中n=k+1-(所确定的边缘不相交的最短路径的数目);将选定虚拟节点添加到保护组件;更新在选定虚拟节点与保护组件内部的虚拟节点之间的虚拟链路的冲突集合以包含所确定的边缘不相交的最短路径中的所有虚拟链路和n个并行虚拟链路;根据对扩增虚拟网络定义和确定冲突集合的进一步考量来清除所确定的边缘不相交的最短路径中的所有虚拟链路和n个并行虚拟链路;以及选择保护组件外部的下一虚拟节点,所述下一虚拟节点具有到保护组件内部的虚拟节点的虚拟链路。根据所述方法的另一实施例,确定用于虚拟链路中的每一个的冲突集合包括使用最佳割集方法确定用于虚拟链路中的每一个的冲突集合。根据所述方法的另一实施例,确定嵌入包括使用整数线性规划(integerlinearprogramming,ilp)模型来确定嵌入。根据所述方法的另一实施例,确定嵌入包括使用启发式方法来确定嵌入。根据所述方法的另一实施例,启发式方法包括:根据入射到相应虚拟节点的每个虚拟链路的冲突集合大小的总和按降序分类虚拟节点;从具有冲突集合大小的最大总和的虚拟节点开始将虚拟网络定义的虚拟节点和虚拟链路映射到物理网络。根据所述方法的另一实施例,入射到虚拟节点的每个虚拟链路按虚拟链路中的每一个的冲突集合大小的降序映射到物理网络。根据另一实施例,所述方法进一步包括接收虚拟网络定义作为对嵌入到物理网络上的虚拟网络请求。根据本发明,提供一种用于将虚拟网络嵌入到物理网络上的系统,所述系统包括:处理单元,用于执行指令;以及存储器单元,用于存储指令,所述指令在由处理器执行时配置系统以执行用于以下操作的步骤:确定用于定义虚拟网络的虚拟网络定义的每个虚拟链路的冲突集合,所述虚拟网络包括多个虚拟节点和多个虚拟链路,每个冲突集合包括虚拟网络的多个虚拟链路,在k个物理链路发生故障的情况下,所述多个虚拟链路必须嵌入到物理网络中的不相交路径上以保持虚拟网络的连接性;以及将虚拟网络嵌入到物理网络上,使得每个冲突集合中的多个虚拟链路中的每一个嵌入到物理网络的不相交路径上。根据所述系统的另一实施例,所述指令配置系统以进一步执行用于以下操作的步骤:通过在虚拟节点之间添加并行虚拟链路,使得虚拟节点中的每一个包括至少k+1个虚拟链路而扩增虚拟网络定义。根据所述系统的另一实施例,当确定用于每个虚拟链路的冲突集合时添加并行虚拟链路。根据所述系统的另一实施例,扩增虚拟网络定义和确定冲突集合包括:选择初始虚拟节点作为保护组件;选择保护组件外部的虚拟节点,所述虚拟节点具有到保护组件内部的虚拟节点的虚拟链路;尝试确定从保护组件到选定虚拟节点的k+1个边缘不相交的最短路径;如果确定k+1个边缘不相交的最短路径:将选定虚拟节点添加到保护组件;更新在选定虚拟节点与保护组件内部的虚拟节点之间的虚拟链路的冲突集合以包含k+1个边缘不相交的最短路径中的所有虚拟链路;以及根据对扩增虚拟网络定义和确定冲突集合的进一步考量来清除k+1个边缘不相交的最短路径中的所有虚拟链路;如果不确定k+1个边缘不相交的最短路径:在选定虚拟节点与保护组件内部的虚拟节点之间添加n个并行虚拟链路以提供k+1个边缘不相交的最短路径,其中n=k+1-(所确定的边缘不相交的最短路径的数目);将选定虚拟节点添加到保护组件;更新选定虚拟节点与保护组件内部的虚拟节点之间的虚拟链路的冲突集合以包含所确定的边缘不相交的最短路径中的所有虚拟链路和n个并行虚拟链路;根据对扩增虚拟网络定义和确定冲突集合的进一步考量来清除所确定的边缘不相交的最短路径中的所有虚拟链路和n个并行虚拟链路;以及选择保护组件外部的下一虚拟节点,所述下一虚拟节点具有到保护组件内部的虚拟节点的虚拟链路。根据所述系统的另一实施例,确定用于虚拟链路中的每一个的冲突集合包括使用最佳割集方法确定用于虚拟链路中的每一个的冲突集合。根据所述系统的另一实施例,确定嵌入包括使用整数线性规划(integerlinearprogramming,ilp)模型来确定嵌入。根据所述系统的另一实施例,确定嵌入包括使用启发式方法来确定嵌入。根据所述系统的另一实施例,启发式方法包括:根据入射到相应虚拟节点的每个虚拟链路的冲突集合大小的总和按降序分类虚拟节点;以及从具有冲突集合大小的最大总和的虚拟节点开始将虚拟网络定义的虚拟节点和虚拟链路映射到物理网络。根据所述系统的另一实施例,入射到虚拟节点的每个虚拟链路按虚拟链路中的每一个的冲突集合大小的降序映射到物理网络。根据所述系统的另一实施例,所述指令配置系统以进一步执行用于以下操作的步骤:接收虚拟网络定义作为对嵌入到物理网络上的虚拟网络请求。附图说明本文参考附图描述实施例,在附图中:图1描绘用于连接性感知的虚拟网络嵌入的系统和过程;图2描绘用于连接性感知的虚拟网络嵌入的方法;图3描绘用于连接性感知的虚拟网络嵌入的功能组件;图4描绘根据连接性感知的虚拟网络嵌入的确定虚拟网络映射的方法;图5描绘用于虚拟网络定义的预处理的方法;图6描绘链路扩增过程;图7描绘确定冲突集合;图8描绘将k-保护的虚拟网络嵌入到物理网络上;图9描绘用于将扩增后的虚拟网络定义映射到物理网络的启发式方法;图10和11描绘用于不同小规模虚拟网络和物理网络大小的嵌入成本;图12和13描绘用于不同小规模虚拟网络和物理网络大小的对数尺度的执行时间;图14描绘通过改变物理网络上的虚拟网络大小的嵌入成本;图15和16描绘用于具有不同链路-节点比的虚拟网络和物理网络拓扑的嵌入成本;图17描绘用于s-covine和d-covine嵌入算法的执行时间;图18和19描绘用于单个和双重故障情形的恢复带宽的百分比;以及图20和21描绘用于在嵌入成本和扩增后的虚拟链路的数目方面确保连接性的开销。具体实施方式下文描述的连接性感知的虚拟网络嵌入方法可以在衬底或物理网络中发生多个链路故障的情况下保持虚拟网络的连接性。对于任何虚拟网络配置,应该考虑,超过虚拟网络的使用期限,衬底网络资源可能会发生故障。衬底网络中的组件故障需要不影响虚拟网络保持连接性的能力。例如,如果衬底网络中的一个链路故障导致嵌入式虚拟网络中的多个虚拟链路故障,虚拟网络的连接性可能会损耗。可以在衬底网络上过量提供虚拟网络,使得即使衬底网络组件发生故障,也可以保持所有的虚拟链路。此过量提供可以增加用于保持和操作物理基础架构的成本,因为需要更多物理组件来提供所述过量提供。或者,可以寻找可以在一个或多个衬底链路发生故障的情况下保持总体虚拟网络连接性的虚拟网络嵌入。寻找可以经受住衬底网络节点和/或链路故障的虚拟网络嵌入在本文中称为“可生存虚拟网络嵌入问题”。用于可生存虚拟网络嵌入的一个方法是分配每个虚拟链路的冗余带宽或需要冗余的选定虚拟链路,这可以在计算映射时主动地完成。与分配冗余带宽相比,连接性感知的虚拟网络嵌入尝试提供在一个或多个衬底链路发生故障的情况下确保虚拟网络拓扑中的连接性的虚拟网络嵌入。防止链路故障的所需量可以改变。例如,一个虚拟网络可以通过在单个衬底链路发生故障的情况下保持连接性的方式嵌入,而第二虚拟网络可以通过在两个衬底链路发生故障的情况下保持连接性的方式嵌入。因为此嵌入不会保护衬底网络中具有专用备份的每个虚拟链路,所以某一衬底链路故障将会引起虚拟网络中的虚拟链路故障。然而,虚拟网络嵌入可以保持虚拟网络连接性,并且因此,虚拟网络运营商可以例如使用开放网络基金会的openflowtm协议标准基于消费者优先级从故障虚拟链路重路由业务。与向虚拟链路提供物理层中的备份相比,连接性感知的虚拟网络嵌入可以减少衬底网络中的资源开销。如下文中进一步描述,可以提供k-保护的虚拟网络嵌入,这是在k个衬底网络链路发生故障的情况下保持连接性的虚拟网络嵌入。此多链路故障可能不是大型传输网络中的小概率事件。维修例如由于切断或损坏光纤引起的故障链路可能要花费很长时间。在高平均修复时间(mean-time-to-repair,mttr)的情况下,第二同时链路故障的可能性是不可忽略的。此外,指定给不同地理位置的一些数据中心间链路可以共同地物理路由某一距离,并且回程故障可能会引起多个物理链路发生故障。图1描绘用于连接性感知的虚拟网络嵌入的系统和过程。系统可以包括一个或多个计算设备,表示为单个服务器100。尽管描绘为单个服务器,但是系统可以实施为一个或多个现实或虚拟服务器。不管具体实施方案如何,服务器100包含用于执行指令的处理单元102和用于存储指令以及数据的存储器104。服务器100可以进一步包括用于在长时间段内存储指令和数据两者的非易失性存储器106。此外,服务器可以包含允许服务器与用户和/或其它系统交互的一个或多个输入/输出接口108。例如,i/o接口108或设备可以包含键盘、鼠标、监视器、网络接口等。存储于存储器中的指令配置服务器100以提供虚拟网络嵌入功能110和虚拟网络提供功能112。广义地说,虚拟网络嵌入功能110接收虚拟网络定义并且确定满足限制的虚拟网络到物理网络或衬底网络的映射,所述虚拟网络定义可以包括所需连接性拓扑、关于可以嵌入虚拟节点的位置的限制以及对每个链路的带宽需求。在确定映射之后,映射可以用于在物理网络内实施虚拟网络。虚拟网络114可以在物理网络116上实施。如所描绘,虚拟网络114包括由圆中的数字识别的四个虚拟节点1、2、3、4以及标记为a、b、c、d的四个虚拟链路。在虚拟网络中,在单个虚拟链路发生故障的情况下可以保持连接性。例如,如果虚拟链路a发生故障,虚拟节点1仍可以通过虚拟链路d-c-b的路径与虚拟节点2通信。虚拟网络嵌入功能110可以确定虚拟网络114到物理网络116的可用物理资源的映射。第一说明性虚拟网络嵌入118描绘为不是连接性感知的并且在单个衬底链路发生故障的情况下不保持连接性。每个虚拟节点1、2、3、4嵌入到单独的物理节点上。由一个或多个物理链路提供每个虚拟链路。具体来说,由物理链路120和122以及中介物理节点提供虚拟链路a。由物理链路120和130以及中介物理节点提供虚拟链路d。如所描绘,虚拟链路b和c提供于单独的相应物理链路124和126上。如果物理链路124、126中的一个发生故障,仅一个虚拟链路将发生故障并且将保持连接性。然而,如所描绘,虚拟链路a和虚拟链路d都嵌入到同一物理链路120上。因此,如果物理链路120发生故障,虚拟链路a和d两者将发生故障,并且节点1到其余虚拟网络的连接性将会损耗。因此,虚拟网络嵌入118不是1保护的。图1进一步描绘连接性感知的并且在单个物理链路发生故障的情况下保持虚拟网络的连接性的第二虚拟网络嵌入132。如所描绘,每个虚拟链路a、b、c、d映射到单独的不相交物理链路,使得单个物理链路故障将仅导致单个虚拟链路故障,并且可以保持网络连接性。与其中虚拟链路a和d嵌入到同一物理链路120上的第一虚拟网络嵌入118相比,第二虚拟网络嵌入132分别将虚拟链路a和d嵌入到单独的物理链路120、134上。上述连接性感知的第二虚拟网络嵌入132是简单的虚拟网络嵌入,其中虚拟网络仅经受住单个链路故障并且虚拟节点和虚拟链路的数目相对较低。由于可生存链路故障的所需数目增加至两个或多于两个并且节点的数目增加到,例如10、20、50或更多,因此确保所需连接性的提供映射的复杂性快速增加。物理网络通常不具有用于提供每个虚拟链路的两个唯一物理链路的足够资源。本文所描述的连接性感知的虚拟网络嵌入可以确定虚拟网络的映射,即使在物理和虚拟网络大小两者扩展时,所述映射也可以在两个或多于两个物理链路发生故障的情况下保持连接性。尽管图1在视觉上描绘虚拟网络和物理网络,但是在虚拟和物理节点/链路的数目增加时,难以提供有意义的视频表示。因此,在描述预期通过大量节点和两个或多于两个链路故障运行的连接性感知的虚拟网络嵌入时使用图形符号和技术。可以通过无向图g=(v,e)描述物理网络,其中v表示物理节点(开关/路由器)的集合并且e表示物理链路。通过n(u)表示物理节点u∈v的相邻者的集合。通过buv表示特定物理链路(u,v)∈e的带宽容量,并且用于分配(u,v)中的一个单位带宽的成本是cuv。两个物理节点u与v之间的路径可以包括一个或多个物理链路并且通过quv表示。虚拟网络可以表示为无向图其中和分别是虚拟节点和虚拟链路的集合。虚拟节点的相邻者通过表示。虚拟链路中的每一个可以具有通过表示的特定带宽要求。每个虚拟节点具有表示物理节点的集合的相关联位置限制其中可以嵌入是虚拟节点与之间的单个路径,并且是与之间的边缘不相交路径的集合。如下文进一步描述,可能需要用额外的虚拟链路来扩增接收到的虚拟网络,以便提供k-保护的虚拟网络。k-保护的虚拟网络可以通过表示,其中并且其中是已添加到虚拟网络定义以便提供所需k-保护的虚拟链路的集合。中的k-保护组件是多图形其中并且是通过中的k个仲裁虚拟链路的同时移除不会分割的方式扩增的虚拟链路的集合。可以通过将虚拟节点添加到来扩展虚拟网络的k-保护组件其中并且扩展算子⊙可以定义为在保护组件与虚拟节点之间的边缘不相交的最短路径的集合定义为其中并且所有在内的第一遇到的虚拟节点中终止,即,来自上的的唯一虚拟节点是如下文中进一步描述,在确定连接性感知的虚拟网络嵌入时,确定每个虚拟链路的冲突集合。如果两个虚拟链路必须嵌入到边缘不相交的衬底路径上以便确保k+1边缘连接性,这两个虚拟链路被视为冲突的。虚拟链路的通过表示的冲突集合是中与虚拟链路冲突的虚拟链路的集合。通过表示的虚拟网络的冲突集合定义为图2描绘用于嵌入虚拟网络的方法200。将对于所有具有位置限制的虚拟网络嵌入到物理网络g=(v,e)上提供函数所述函数将每一虚拟节点映射到物理节点,同时满足位置限制而不具有任何重叠。嵌入提供函数所述函数将每个虚拟链路映射到具有足够带宽容量的衬底路径并且在g中的k个物理链路发生故障的情况下确保中的连接性,同时就带宽消耗而言最小化嵌入的总成本。方法200假设所请求虚拟网络是k-保护的。如果虚拟网络不是k-保护的虚拟网络,可以扩增虚拟网络以便作为k-保护的虚拟网络。在k个链路发生故障的情况下,k-保护的虚拟网络可以保持节点之间的连接性。为了在物理网络中的k个链路发生故障的情况下保持连接,对于k-保护的虚拟网络中的每一对虚拟节点和嵌入算法必须确保物理节点与之间的k+1边缘连接性。如果中的每一边割嵌入到g中的至少k+1个边缘不相交的路径上,可以实现此k+1边缘连接性。为了嵌入虚拟链路,方法在步骤202处确定每个虚拟链路的冲突集合。每个冲突集合包括必须嵌入到物理网络中的不相交路径上的虚拟网络中的一个或多个虚拟链路以在k个物理链路发生故障的情况下保持虚拟网络的连接性。在确定冲突集合之后,虚拟网络在步骤204处嵌入到物理网络上,使得每个冲突集合中的多个虚拟链路中的每一个嵌入到物理网络的不相交路径上。当嵌入虚拟网络时,在同一冲突集合中的每个虚拟链路嵌入到衬底内的不相交物理路径上。不在同一冲突集合中的虚拟链路可以沿着同一物理路径或同一物理路径的一部分嵌入。图3描绘连接性感知的虚拟网络嵌入功能的功能组件。如所描绘,上文参考图1描述的连接性感知的虚拟网络嵌入功能110可以包含:链路扩增功能302,用于将虚拟网络扩增到k-保护的虚拟网络;冲突集合确定功能304,用于确定虚拟链路的冲突集合;以及虚拟网络嵌入功能306,用于使用冲突集合嵌入扩增后的虚拟网络。尽管在视觉上描绘为单独的功能组件,但是功能可以组合在一起。例如,由链路扩增功能302提供的链路扩增和由冲突集合确定功能304提供的冲突集合的确定可以同时发生或作为同一功能组件的一部分发生,因此在扩增链路时,确定或更新冲突集合。下文进一步描述组件中的每一个的细节。图4描绘根据连接性感知的虚拟网络嵌入的确定虚拟网络映射的方法400。方法400在步骤402中接收虚拟网络定义并且在下一步骤404中预处理虚拟网络定义。在必要时,预处理步骤404可以扩增接收到的虚拟网络,以便在接收到的虚拟网络已不是k-保护的虚拟网络的情况下提供k-保护的虚拟网络。除了在必要时扩增虚拟网络之外,预处理步骤404还确定每个虚拟链路的冲突链路集合。在步骤406中,使用冲突链路集合将k-保护的虚拟网络定义映射到物理网络。可以通过将同一冲突链路集合中的每个虚拟链路映射到物理网络中的不相交路径来满足冲突链路集合。在完成映射之后,在步骤408中可以根据映射配置物理网络。如上所述,连接性感知的虚拟网络嵌入可以视为具有两个阶段。第一阶段可以视为预处理阶段,在所述预处理阶段期间,视需要用并行链路扩增所请求虚拟网络以确保每个虚拟节点具有用于k链路故障可生存的至少k+1个虚拟链路。例如,为了经受住衬底网络中的2个同时链路故障,每个虚拟节点需要至少3个虚拟链路。因此,如果虚拟节点仅具有2个入射虚拟链路,将添加第3虚拟链路。预处理还产生用于虚拟链路中的每一个的冲突集合。冲突集合是用于虚拟链路的冲突链路的集合。如果两个虚拟链路必须嵌入到边缘不相交的衬底路径上以便确保k+1边缘连接性,这两个虚拟链路可以被视为冲突链路。也就是说,冲突链路无法在嵌入时共享物理链路。图5描绘用于虚拟网络定义的预处理的方法500。方法500在步骤502中接收虚拟网络定义,并且在步骤504中选择初始虚拟节点作为保护组件。可以任意地完成初始虚拟节点的选择。在初始化保护组件之后,在步骤506中选择保护组件外部的具有到保护组件内的虚拟节点的边缘的虚拟节点,并且在步骤508中确定从选定虚拟节点到保护组件,或更具体地说到保护组件内的任何虚拟节点的不相交路径的数目,如果存在的话。随后在步骤510中,可以用并行虚拟链路扩增选定虚拟节点以提供k-保护。不相交路径,包含从虚拟节点到保护组件和任何并行虚拟链路的边缘的数目必须大于或等于k+1。在添加并行链路之后,如果需要,在步骤512中更新边缘的冲突链路集合、任何扩增后的虚拟链路的冲突链路集合以及不相交路径中的所有虚拟链路的冲突链路集合。在已更新冲突链路集合之后,在步骤514中将选定虚拟节点移动到保护组件内。在步骤516中确定是否存在到保护组件外部的虚拟节点的更多边缘,并且如果存在(步骤516处,是),在步骤506中选择下一虚拟节点。如果不存在其它边缘(在516处,否),包含具有所添加并行虚拟链路以及冲突集合的虚拟网络定义的扩增后虚拟网络定义可以在步骤518中返回并且用于物理网络的后续配置。在已扩增链路并且确定冲突集合之后,扩增后的k-保护虚拟网络可以嵌入到物理网络上。可以使用整数线性规划(integerlinearprogramming,ilp)方法或启发式方法完成嵌入。无论如何,嵌入计算满足位置限制的虚拟节点嵌入并且计算虚拟链路嵌入,使得虚拟链路和存在于其冲突集合中的任何其它虚拟链路嵌入到不相交路径上。为了经受住k个物理链路故障,虚拟网络必须是k+1边缘连接的。也就是说,对于每个节点,必须具有至少k+1个链路。这在图1的虚拟网络中显而易见,所述虚拟网络可以经受住单个链路故障,并且因此每个节点具有两个链路。类似地,为了经受住两个任意链路故障,每个虚拟节点需要至少三个虚拟链路。然而,并不是所有虚拟网络中的每个虚拟节点可以具有所需数目的虚拟链路。因此,虚拟网络嵌入用额外的虚拟链路扩增虚拟网络。尽管可以使用添加链路的其它技术,例如,用于提供所需连接性的随机扩增链路,但是本文所描述的连接性感知的虚拟网络嵌入使用并行虚拟链路来扩增虚拟网络。尽管并行虚拟链路扩增的资源使用可能不是最少的,但是并行虚拟链路扩增不会改变虚拟网络拓扑,这从虚拟网络用户或管理员的角度来看是合乎需要的。图6描绘链路扩增过程。如所描绘,链路扩增功能302可以接收虚拟网络描述602。所描绘的所请求虚拟网络是2-边缘连接的。链路扩增功能302添加与现有虚拟链路并行的额外虚拟链路604a、604b、604c,使得所得扩增后的虚拟网络606是3-边缘连接的,即,每个虚拟节点具有至少3个虚拟链路。图7描绘确定冲突集合。如所描绘,冲突集合确定功能304可以接收扩增虚拟网络定义702并且为虚拟链路中的每一个提供所有冲突链路的冲突集合704。尽管如下文进一步描述,冲突集合确定描绘为与链路扩增分开进行,但是可以在添加并行虚拟链路时完成冲突集合确定。如在图6和7中所描绘,可以在确定虚拟链路的冲突链路集合之前执行链路扩增过程。可以共同执行链路扩增和冲突链路集合确定。启发式函数可以用于在合理的时间量中计算存在于虚拟网络的生成树中的虚拟链路的冲突链路集合。除了计算冲突链路集合之外,启发式函数还执行链路扩增以确保所述是k-保护的。下文在伪码中详述称为compute-conflicting-sets的启发式函数的一个具体实施方案。应了解,可以通过其它实施方案实现链路扩增和冲突集合确定。函数开始于含有任意虚拟节点的k-保护组件在将的所有虚拟节点添加到保护组件之前,函数尝试重复地将的所有相邻者添加到保护组件如上所述,的k保护组件是多图形使得在多至k个物理链路发生故障的情况下保持连接。对于每个相邻虚拟节点函数计算k-保护组件与当前选定的虚拟节点之间的k+1边缘不相交的最短路径(edgedisjointshortestpath,edsp),表示为可以通过各种方式计算edsp。例如,可以通过最初将虚拟链路添加到作为第一最短路径的函数compute-edsp计算edsp。函数随后可以使用最短路径算法,例如,迪科斯彻最短路径算法来计算多至k个额外最短路径对于i=2至k+1,其中是与之间的第i个最短路径。在计算出每个最短路径之后,从移除存在于中的所有虚拟链路,以便确保随后路径的边缘不相交性。compute-edsp返回多达k+1个edsp。如果由compute-edsp返回的edsp的数目小于k+1,compute-conflicting-sets函数在与之间添加个并行虚拟链路。第i个并行链路用表示并且在保护组件与之间提供第个edsp。在已扩增链路之后,更新虚拟链路的冲突集合。通过来自其它最短路径的每个虚拟链路更新k+1个最短路径中的每一个中的每个虚拟链路的冲突集合在更新冲突集合之后,扩展保护组件以便包含选定虚拟节点并且通过选择保护组件外部的虚拟节点重复处理。一般来说,不管需要经受住的链路故障的数目,存在用于并行虚拟链路扩增的三种情况。一种情况是存在足以提供所需链路故障保护的不相交路径,并且因此不需要添加额外的并行链路。为了提供对k个同时衬底链路故障的保护,需要至少k+1个不相交路径。第二种情况是存在至少一个不相交路径,但不足以提供所需保护,在此情况下,需要添加一个或多个,但小于k+1个并行虚拟链路。第三种情况是在虚拟节点与保护组件之间不存在不相交路径,在此情况下,需要添加k个并行虚拟链路以便提供对衬底中的k个链路故障的保护。在已完成链路扩增和冲突链路集合确定之后,虚拟网络,或更具体地说,扩增后的k-保护的虚拟网络可以嵌入到物理网络上。图8描绘嵌入k-保护的虚拟网络。如所描绘,嵌入功能306可以接收可以从所请求虚拟网络扩增的扩增虚拟网络定义606,以及将嵌入到通过物理网络拓扑804描述的物理衬底网络上的冲突链路集合704。还可以指定额外限制802,例如,链路的带宽要求、不同链路的成本函数以及指定对可以嵌入虚拟节点的位置的限制的位置限制。嵌入功能306确定从扩增后虚拟网络定义606到满足限制的物理网络拓扑804的映射806。具体而言,嵌入满足由冲突链路集合704施加的限制,这要求同一冲突链路集合中的所有虚拟链路嵌入到物理衬底网络中的不相交路径上。可以使用最小化链路嵌入的总成本的整数线性规划(integerlinearprogramming,ilp)方法来完成嵌入。ilp模型提供多个决策变量、限制和目标函数。最小化目标函数提供虚拟网络嵌入。下文描述决策变量、限制和目标函数。决策变量虚拟链路映射到产生物理路径的物理链路的非空集合。引入以下决策变量以指示虚拟链路与物理链路(u,v)∈e之间的映射。以下决策变量表示虚拟节点映射:限制限制的类型包含链路映射限制、节点映射限制和不相交性限制。链路映射限制:每一虚拟链路通过等式(1)映射到物理链路的非空集合。等式(1)还确保映射所有虚拟链路。还需要确保不过度提交物理链路的资源,这通过等式(2)提供。最终,等式(3)确保除了在映射虚拟链路的端点的节点处之外,每个物理节点的流入和流出相同。此流量守恒限制确保虚拟链路的映射端点之间的连续路径。节点映射限制:其中:虚拟节点应根据等式(5)的给定位置限制准确映射到物理网络中的一个节点,这通过等式(4)确保。等式(6)确保物理节点不会托管从同一虚拟网络请求产生的多于一个虚拟节点。不相交性限制:不相交限制要求冲突链路集合中的每个虚拟链路不共享衬底网络中的物理链路。此要求通过以下等式确保:目标函数需要最小化在物理链路上提供带宽的成本。与在物理链路(u,v)上提供单位带宽相关联的成本是cuv。因此,以下目标函数将提供用于嵌入的解决方案。尽管以上ilp模式将提供保护虚拟网络的最佳嵌入,但是计算复杂性以及因此用于确定最佳嵌入所需的时间可能过高。启发式方法可以用于以可接受的时间量提供可接受的解决方案,同时满足虚拟链路和存在于其冲突集合中的任何其它虚拟链路无法共享物理链路以进行映射的限制。图9描绘用于将扩增后的虚拟网络定义映射到物理网络的启发式方法900。尽管ilp嵌入可以提供最佳嵌入,但是所述ilp嵌入的性能无法随虚拟网络和物理网络的大小很好地缩放。为了在网络大小,即所请求虚拟网络和物理衬底网络的大小两者增加时提供可接受性能,可以使用启发式嵌入。启发式方法900可以提供可接受地接近最佳嵌入的嵌入,同时即使对于大型网络大小以相对较短时间量允许。用于连接性感知的虚拟网络嵌入的启发式方法900可以由步骤902开始:关于与入射到每个虚拟节点的虚拟链路相关联的冲突链路集合大小的总和,将虚拟节点分类成分类列表由于冲突链路集合对物理实施方案呈现限制,因此有益的是首先映射具有最大冲突集合的虚拟链路,即,首先嵌入最冲突的虚拟链路。启发式方法900迭代虚拟节点的有序列表中的全部节点。对于每次迭代,在步骤904中选择分类列表中的最冲突虚拟节点并且对于由虚拟节点的位置限制集合提供的选定虚拟节点可以映射到的每个物理节点x,在步骤906中将虚拟节点暂时地映射到x。在暂时地映射到x的情况下,在步骤908中例如使用虚拟链路映射函数将中的虚拟链路映射到衬底网络中的物理路径。虚拟链路映射的成本得到确定并且与当前最小映射成本相比较,并且如果当前映射具有更低成本,更新最小映射成本。追踪具有最低成本的节点映射xmin,以用于到每个可能物理节点位置x的每个临时映射的虚拟链路映射。在已映射所有可能位置并且确定相关联的链路映射成本之后,在步骤910中选择具有最低成本的节点映射xmin并且在步骤912中将所述节点映射永久性映射虚拟节点如果虚拟链路的终止虚拟节点和两者已永久地映射到物理节点,虚拟链路在步骤914中映射到先前计算出的用于映射xmin的物理路径。在步骤916中从分类列表移除虚拟节点并且如果不存在更多待映射的虚拟节点(918处,否),在步骤920中可以返回映射。如果存在额外节点(918处,是),可以选择分类列表中的其余节点中的最冲突节点并且过程重复。启发式方法900可以通过多种不同方法实施。下文提供启发式方法900的一个可能伪代码实施方案。以下伪码列表提供由vn-embedding函数调用的函数vlink-map的一个可能实施方案。vlink-map函数计算两个函数,即f和g,用于以协调方式映射的所有虚拟节点和虚拟链路。在不存在与虚拟节点映射相关联的成本时,最小化总成本的虚拟链路映射确定虚拟节点映射。vlink-map函数首先按用于入射到的每个虚拟链路的冲突集合大小的总和的降序将虚拟节点分类。用表示虚拟节点的此分类列表。由于具有冲突集合较大的虚拟链路的虚拟节点太受限制而无法映射到衬底网络中的合适物理节点,因此函数尝试按的次序映射虚拟节点。对于每个虚拟节点vn-embedding函数搜索虚拟节点的位置限制集合中的未分配物理节点,这产生可行映射同时最小化成本。vlink-map函数中的内循环(线5至14)将虚拟节点暂时地映射到物理节点并且尝试嵌入入射到的所有虚拟链路。调用vlink-map函数以寻找用于每个此虚拟链路的映射。在衬底路径需要满足由冲突集合施加的不相交性限制时,按虚拟链路的冲突集合大小的降序处理入射到的虚拟链路。vn-embedding函数最终将虚拟节点嵌入到物理节点l,这引起用于入射到的所有虚拟链路的可行映射并且产生最小嵌入成本。如果针对未发现此可行l,vn-embedding函数失败。在最终已映射虚拟节点之后,vn-embedding函数对仅入射到的那些虚拟链路产生最终映射,所述虚拟链路的两个端点最终得到映射(线17至18)。当虚拟链路的未映射端点最终得到映射时,完成入射到的其它虚拟链路的映射。在的所有虚拟节点和虚拟链路最终的到映射之后,vn-embedding函数终止。vn-embedding函数调用的vlink-map函数寻找虚拟链路的映射。函数移除中的所有虚拟链路的映射使用的所有物理链路以满足不相交性限制(线3至4)。随后,考虑以下两种情况中的任一个计算用于的映射:(i)的两个端点已分别映射到一些物理节点和在这种情况下,计算g中的在与之间的最小成本路径在第二种情况(ii)下,仅(或)得到映射并且其它端点(或))尚未得到映射。在这种情况下,vlink-map函数使用g上的迪科斯彻最短路径算法计算(或)与未映射虚拟节点(或)的所有可能位置之间的最小成本路径所述迪科斯彻最短路径算法将用作虚拟链路映射成本。在找到最小成本路径之后,vlink-map函数将暂时地映射到并且将其添加到g(线13)。vn-embedding函数的计算最复杂步骤是vlink-map函数,所述vlink-map函数调用需要o(|e|+|v|log|v|)时间的物理衬底网络上的迪科斯彻最短路径算法。由于调用次vlink-map函数,因此vn-embedding函数的运行时间变为如上所述,连接性感知的虚拟网络嵌入包括冲突集合确定级和嵌入级。可以通过不同方式执行每个级。比较不同计算策略的性能。具体而言,用于确定冲突链路离合的启发式方法的使用与确定冲突链路集合作为最佳割集相比较。对于嵌入级,ilp方法与上述启发式方法相比。此外,将故障与单个故障和双重故障两者相比较。此外,比较使用多商品不可拆分流(multi-commodityunsplittableflow,mcuf)ilp方法的不防止物理层中的故障的基线虚拟网络嵌入。下表概括比较的不同算法。符号故障不相交性嵌入s-covine单个启发式启发式d-covine双重启发式启发式s-covine-ilp单个启发式ilp(等式8)d-covine-ilp双重启发式ilp(等式8)s-cutset-ilp单个最佳割集ilpvine-ilp无无mcufilp表1:比较的嵌入方法的表使用ibmtmilogcplexc++库实施ilp模型。在具有四核3.4ghz处理器和8gbram的服务器上执行模拟。模拟大规模和小规模网络拓扑两者。如基于割集方法所需要,用于小规模情形的虚拟网络是2-边缘连接的。下表概括使用的不同情形和参数以及描绘相关联结果的特定图。表2;模拟参数的表图10和11描绘用于不同小规模虚拟网络和物理网络大小的嵌入成本。vine-ilp产生最低成本嵌入,因为vine-ilp不扩增任何并行虚拟链路,也不满足任何不相交性限制。s-cutset-ilp和s-covine-ilp产生的嵌入成本非常接近于vine-ilp产生的嵌入成本。由于在此情形中虚拟网络是2-边缘连接的,因此不执行并行链路扩增。scutset-ilp和scovine-ilp的差别仅由于不相关性计算方法的变化引起。相反,s-covine将启发式方法用于不相交性计算和嵌入,从而产生比s-covine-ilp高~10%的成本以及比基于割集的最佳解决方案(s-cutset-ilp)高~15%的成本。d-covine-ilp和d-covine两者产生比单个故障方法高~30%的成本,因为这两者扩增并行虚拟链路以确保3-边缘连接性。一般来说,成本几乎随着固定虚拟网络的物理网络大小的增加而线性增加,且反之亦然。图12和13分别描绘用于不同小规模虚拟网络和物理网络大小的对数尺度的执行时间。确定能够经受住单个物理链路故障的1保护嵌入的s-covine以及确定能够经受住双重物理链路故障的2-保护嵌入的d-covine的执行时间大致随着虚拟网络或物理网络大小线性变化。当具有18个虚拟节点的虚拟网络嵌入到150节点物理网络上时,s-covine-ilp和d-covine-ilp分别花费~285s和~456s,这与具有小于1秒的执行时间的s-covine和d-covine相比显著较慢。vine-ilp比s-covine-ilp和d-covine-ilp运行得快,因为vine-ilp在嵌入时不满足任何不相交性限制。s-cutset-ilp是最慢的,因为s-cutset-ilp计算最佳解决方案。s-covine和d-covine可以按任意虚拟网络和物理网络大小调整,然而基于ilp的方法可以仅扩展到150节点物理网络上的18节点虚拟网络。s-cutset-ilp的可扩展性是最差的,因为s-cutset-ilp无法扩展超过150节点物理网络上的10节点虚拟网络。通过s-covine和d-covine的更高可扩展性和更快执行时间来补偿s-covine和d-covine与对应基于ilp的方法相比的较高成本。图14示出通过改变具有500个(s-covine-sn-500和d-covine-sn-500)和1000个节点(s-covine-sn-1000和d-covine-sn-1000)的物理网络上的虚拟网络大小的嵌入成本。图15和16分别示出用于具有不同链路节点率(link-to-noderatio,lnr)的虚拟网络和物理网络拓扑的嵌入成本。在此情形中,嵌入成本主要受不相交性限制和并行虚拟链路扩增影响。对于双重故障情形,对于lnr≤2.4,扩增成本占优势,因此嵌入成本初始减小。然而,对于lnr>2.4,用于确保不相关性限制的成本占优势,这证明图15中的对应增加。对于s-covine,不相交性限制占优势并且嵌入成本增加,因为较高数目的虚拟链路嵌入到用于较大lnr的同一物理网络上。物理网络lnr的增加引起物理网络中的较高路径分集。通过寻找更短路径同时嵌入虚拟链路,s-covine和d-covine采用此路径分集。这说明了成本的减小以及物理网络lnr的增加。图17描绘随着虚拟网络和物理网络大小两者增加的s-covine和d-covine的执行时间。在模拟故障的影响时,假设分别要求每个虚拟链路的带宽的20%、30%和50%的三种不同的业务种类,标记为1(最高优先级)、2和3(最低优先级)。通过沿着虚拟网络中的替代最短路径重路由受影响虚拟链路中的业务来处理故障。沿着这些路径共享的带宽遵循来自同一类别的业务之间的公平共享策略以及跨越不同业务种类的加权公平共享。图18和19分别呈现用于单个和双重故障情形的恢复带宽的百分比。图20和21分别呈现在嵌入成本和扩增后虚拟链路的数目方面用于确保连接性的开销。上文已描述连接性感知的虚拟网络嵌入。嵌入可以允许实施可以维持2个或如果需要,更多个物理链路故障,而不会损耗虚拟网络的连接性的虚拟网络。即使在所请求虚拟网络中存在大量虚拟节点和虚拟链路时,连接性感知的虚拟网络嵌入也可以提供快速执行。除了提供合乎需要的映射,即可以维持多个,即k个同时物理链路故障而不分割虚拟网络的一个映射之外,用于连接性感知的虚拟网络嵌入的启发式方法的速度和可扩展性可以适用于提供其它特征,例如,可以提供改进的用户体验的虚拟网络的实时或近实时提供。对虚拟网络的映射的进一步实时或近实时计算可以允许重新布置现有虚拟网络,以改进物理资源效率。此外,虚拟网络嵌入已描述为确定用于现有物理网络。可以利用虚拟网络嵌入来基于所确定的映射识别对现有物理基础架构的可能扩增。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1