一种混合型服务功能链嵌入代价的优化方法与流程

文档序号:15845384发布日期:2018-11-07 08:57阅读:224来源:国知局
一种混合型服务功能链嵌入代价的优化方法与流程
本发明涉及服务功能链嵌入相关
技术领域
,特别是指一种混合型服务功能链嵌入代价的优化方法。
背景技术
网络功能(nf,networkfunction),如:网络地址转换器(nat)、防火墙、入侵检测系统(ids)、深度包检测(dpi)等,经常被部署在商业网络中以确保网络的安全性、高性能以及提供新的网络功能。然而,传统的网络功能部署方式依靠昂贵的专用硬件,比如用中间件来实现。这使得网络的运营成本高昂,并且由于网络设备更新换代迅速,导致网络的生命周期短、更新代价高。网络功能虚拟化(nfv,networkfunctionvirtualization)是一个新兴的技术,它利用挂载在通用服务器上运行的虚拟网络功能(vnf,virtualnetworkfunction)来代替传统专用的硬件中间件。因此,nfv技术的应用使得网络具有快速部署、网络可扩展性、低代价更新和促进网络创新等一系列优点。为了获得许多云计算技术的优点,例如代价小、易于管理等,可以在公有云和私有云上部署vnf。除此之外,许多工作还探索了各种nfv部署的新模式。例如:电信运营商和第三方提供商将部署在公有云中的vnf以商品的形式提供给客户,以便客户可以通过租用这些vnf来建立自己的服务。当然,大型企业也可以在他们的私有云中部署vnf以满足自身的网络业务需求。一般情况下,为了在源端与目的端之间获得特定且完整的端到端服务,网络流需要以特定的顺序经过多个vnf的处理,这样的一系列具有特定顺序关系的网络功能序列被称为服务功能链(sfc,servicefunctionchain)。如图1a所示,传统的sfc由一组串行的vnf组成。在为一条特定的网络流提供网络服务时,一个基本的问题就是找到一条合适的路由路径,使得该网络流能够按照它所需的sfc的顺序获得对应的网络功能。这就是sfc嵌入问题,它需要综合考虑vnf分配和路由选择。最近,许多研究探讨了sfc嵌入问题,它们具有不同的优化目标,如最小化代价、最大化网络吞吐量、减少延时或者综合考虑上述目标。但是,由于传统sfc中vnf之间的串行执行性质,现存的对于sfc嵌入问题的优化方法无法在减少端到端延时方面取得突破性进展。此外,一些研究表明vnf之间具有可并行特性,并提出了一个可以自动分析sfc中vnf之间可并行性的框架(nfp,一种网络功能并行机制)。如图1b所示,将这种既包含了可并行的vnf对(例如防火墙和流量监测器)和不可并行的vnf对(例如防火墙和负载均衡器)的sfc称为混合型sfc。而还有研究通过实际部署实验验证了混合型sfc可以显着降低流量传输延迟。例如,有研究表明,商业网络中53.8%的网络功能对可以并行工作。并且41.5%的网络功能对可以在不增加额外资源开销的情况下并行执行。由于延时性能上的优势,在建立端到端服务时混合型sfc会比传统串行sfc更受欢迎。但是,现有的所有工作局限于考虑在单个服务器中部署混合型sfc,而更普遍的场景,即网络场景下的混合型sfc嵌入问题需要进一步研究。因此,在实现本申请的过程中,发明人发现现有技术至少存在以下缺陷:当前对于混合型服务功能链还没有很好的嵌入方法以实现优化总体代价的效果。技术实现要素:有鉴于此,本发明的目的在于提出一种混合型服务功能链嵌入代价的优化方法,能够在不超过网络容量限制的前提下,实现嵌入代价的最优化设计,进而降低服务功能链的嵌入成本。基于上述目的本发明提供的一种混合型服务功能链嵌入代价的优化方法,包括:获取待嵌入的服务功能链以及对应的网络拓扑图;利用预设的网络功能并行机制将所述服务功能链转化为对应的分层有向无环图结构;其中,所述分层有向无环图结构中包含多个具有特定顺序的网络功能并行层,且每个网络功能并行层中至少包含一个虚拟网络功能;当所述网络功能并行层中包含两个以上虚拟网络功能时,所有虚拟网络功能均通过一个合并器整合各并行虚拟网络功能的输出并与下一层连接;以给定网络流的起始节点为第一网络功能并行层的开始节点,在所述网络拓扑图中搜索所述第一网络功能并行层的单层嵌入候选子解并相应的构建子解树;其中,所述单层嵌入候选子解中包括所述第一网络功能并行层中的所有虚拟网络功能的分配方案及其与本层开始节点以及尾节点(即合并器所在的节点,也是下一层的开始节点)之间路径的路由方案;基于上一层的每个单层嵌入候选子解,以上一层对应的尾节点为开始节点,通过搜索得到后续各个网络功能并行层的单层嵌入候选子解并插入到子解树中的相应位置,得到包含所有单层嵌入候选子解的目标子解树;基于所述目标子解树中的叶子节点,相应得到每个叶子节点到根节点的无环路径并将该路径上的子解整合作为候选解;其中,所述子解树的根节点对应网络流的起始节点,所述叶子节点为子解树中最后一层节点对应混合型服务功能链中最后一层的尾节点与网络流的目的节点的路由方案;其中,混合型服务功能链中最后一层的尾节点到目的节点采用最小代价路径连接。计算所有叶子节点对应候选解的总代价,并筛选代价最低对应的候选解作为服务功能链的嵌入方案。可选的,所述单层嵌入候选子解通过如下步骤获取:判断当前网络功能并行层中的虚拟网络功能是否为多个;若是,则从开始节点启动前向搜索过程进行搜索,直到搜索到的节点集合包含了当前网络功能并行层中的所有虚拟网络功能,基于搜索过程建立对应的前向搜索树;从每个尾节点启动回溯搜索过程进行搜索,直到搜索到的节点集合包含了当前网络功能并行层中的所有虚拟网络功能,基于搜索过程建立对应的回溯搜索树;其中,所述尾节点为所述前向搜索树中部署有合并器的节点;遍历每个回溯搜索树及与其对应的前向搜索树,相应的产生当前网络功能并行层对应的单层嵌入候选子解。可选的,所述判断当前网络功能并行层中的虚拟网络功能是否为多个的步骤还包括:若当前网络功能并行层中的虚拟网络功能为1个,则从开始节点启动前向搜索过程进行搜索,直到搜索到的节点集合包含了当前网络功能并行层中的虚拟网络功能,基于搜索过程建立对应的前向搜索树;遍历前向搜索树中的节点,对每个含有当前网络功能并行层所需虚拟网络功能的节点,利用最小代价路径将该节点与当前网络功能并行层的开始节点相连,得到单层嵌入候选子解。可选的,所述遍历每个前向搜索树与回溯搜索树的步骤还包括:在所述回溯搜索树中,基于当前网络功能并行层中的所有虚拟网络功能构建不同的分配组合,得到第一阶段候选子解;基于每个所述第一阶段候选子解,通过遍历所述回溯搜索树得到一系列层内逻辑路径路由方案即第二阶段候选子解;其中,所述层内逻辑路径为当前网络功能并行层中不同虚拟网络功能与本层合并器之间的逻辑连接;基于每个所述第二阶段候选子解,通过遍历所述前向搜索树得到上一层与当前网络功能并行层对应的层间逻辑路径即第三阶段候选子解;其中,所述层间逻辑路径为上一层网络功能并行层中的唯一的虚拟网络功能或者合并器与当前网络功能并行层中虚拟网络功能之间的逻辑连接;判断所述第三阶段候选子解是否满足预设的网络宽带约束和虚拟网络功能处理能力约束,若是,则作为当前网络功能并行层对应的单层嵌入候选子解;否则,舍弃该候选子解。可选的,所述单层嵌入候选子解通过如下步骤求解:在所述回溯搜索树中,基于当前网络功能并行层中的所有虚拟网络功能构建不同的分配组合,得到第一阶段候选子解;基于所述第一阶段候选子解,通过迪杰斯特拉算法生成最小代价路径,得到第三阶段候选子解;判断所述第三阶段候选子解是否满足预设的网络宽带约束和虚拟网络功能处理能力约束,若是,则作为当前网络功能并行层对应的单层嵌入候选子解;否则,舍弃该候选子解。可选的,所述前向搜索过程还包括:基于当前网络条件,设置一个节点数量阈值;判断当前搜索得到的节点的数量是否大于所述节点数量阈值;若是,则终止前向搜索。可选的,所述目标子解树的构建过程还包括:针对子解树中上一层对应的每个节点,判断当前网络功能并行层的单层嵌入候选子解的数量是否超过预设的子解数量阈值xd;若是,则从当前网络功能并行层的单层嵌入候选子解中筛选出单层嵌入代价从小到大排序在前的xd个单层嵌入候选子解插入到子解树中;否则,将所有该网络功能并行层的单层嵌入候选子解插入到子解树中。从上面所述可以看出,本发明提供的混合型服务功能链嵌入代价的优化方法,首先通过将待嵌入的服务功能链转化为分层的有向无环图结构,进而能够通过对拓扑图的搜索得到每一层的单层嵌入候选子解,通过在构建过程中依次插入子解树中,可以得到包含所有单层嵌入候选子解的目标子解树,最后通过分析子解树计算所有候选解的嵌入代价,进而筛选代价最低对应的候选解作为服务功能链的嵌入方案。由此本申请能够在不超过网络容量限制的前提下,实现嵌入代价的最优化设计,进而降低服务功能链的嵌入成本。附图说明图1a为现有技术中一种传统的串行服务功能链的结构示意图;图1b为本发明涉及的具有并行网络功能的服务功能链的结构示意图;图2为本发明提供的混合型服务功能链嵌入代价的优化方法一个实施例的流程图;图3为本发明提供的候选子解求解方法的一个实施例的流程图;图4为本发明提供的服务功能链转化为分层有向无环图结构的原理图;图5为本发明提供的一种网络拓扑图;图6为本发明提供的图5网络中不同网络功能的租赁代价关系图;图7为本发明提供的图5网络对应的实际路径集合;图8a为本发明提供的前向搜索第一次迭代示意图;图8b为本发明提供的前向搜索第二次迭代示意图;图8c为本发明提供的前向搜索第三次迭代示意图;图8d为本发明提供的前向搜索结果示意图;图8e为本发明提供的前向搜索树的逻辑结构示意图;图9a为本发明提供的回溯搜索第一次迭代示意图;图9b为本发明提供的回溯搜索第二次迭代示意图;图9c为本发明提供的回溯搜索结果示意图;图9d为本发明提供的回溯搜索树的逻辑结构示意图;图10为本发明提供的前向搜索树与回溯搜索树对应候选子解结构示意图;图11为本发明提供的子解树逻辑结构示意图;图12为本发明提供的对比仿真实验结果示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。在云网络中,通常具有许多地理分散的云节点,他们通过底层网络链接相互连接。在每个这样的节点中,又存在着由第三方提供商或网络运营商部署的多种vnf实例。在一个云节点中,每种vnf实例具有租赁价格和处理能力。每条网络链路也具有链路价格和带宽容量。并且不同的vnf实例和链接可能有不同的价格。因此,从消费者的角度来看,将所需的混合型sfc嵌入到网络中时如何降低总体成本显得尤为重要。本申请基于当前对于混合型sfc嵌入缺乏相应解决方案,对混合型sfc嵌入代价最优化问题进行研究,即如何在不超过网络的处理能力和带宽限制的前提下在嵌入混合型sfc时实现最小化总体代价。为了能够合理的解决这个最优化问题;首先,本申请提出一种标准化的分层有向无环图(dag,directedacyclicgraph)来抽象表述混合型sfc的内部结构。然后本申请对混合型sfc嵌入代价最优化问题进行了建模分析,并提出一种基于广度优先搜索的贪婪方法(bbe,breadth-firstbacktrackingembedding)来解决该问题。进一步为了降低bbe方法的计算复杂度,本申请还提出了一种基于最小代价路径的贪婪方法(mbbe,mini-pathbreadth-firstbacktrackingembedding)。最后,本申请通过多角度大规模的仿真对比实验评估了该方法的性能。实验结果表明,本申请提出的方法能够得到优秀的解,不仅在降低总成本方面具有良好的性能,并且具有很好的鲁棒性和稳定性。参照图2所示,为本发明提供的混合型服务功能链嵌入代价的优化方法一个实施例的流程图。所述混合型服务功能链嵌入代价的优化方法包括:步骤s1,获取待嵌入的服务功能链以及对应的网络拓扑图;也即若是需要对混合型服务功能链进行嵌入方案的优化,则首选需要知道混合型服务功能链具体包括什么,例如混合型服务功能链可以是图1b中示出的服务功能链;而且还需要知道当前网络的结构,也即网络拓扑图是什么样的,例如参照图5所示,网络中包含a-g节点,并且每个节点中具有多个不同的网络功能。步骤s2,利用预设的网络功能并行机制将所述服务功能链转化为对应的分层有向无环图结构;其中,所述网络功能并行机制(nfp,networkfunctionparallelism)是指能够自动分析串行服务功能链中虚拟化网络功能之间的并行关系从而转化为混合型sfc的一种架构,通过nfp的分析能够便于将混合型sfc转换为标准dag-sfc形式,使得该dag-sfc利用符合一定规则的有向无环图(dag)来抽象表述混合型sfc。所述分层有向无环图结构中包含多个具有特定顺序的网络功能并行层,且每个网络功能并行层中至少包含一个虚拟网络功能;当所述网络功能并行层中包含两个以上虚拟网络功能时,所有虚拟网络功能均通过一个合并器整合输出并与下一层连接;具体的,参照图4所示,为本发明提供的服务功能链转化为分层有向无环图结构的原理图。由图可知,通过分析sfc中vnf的并行性,可以将串行sfc转换为混合型sfc,然后可以利用dag抽象的表示混合型sfc的内部结构。如图4(b)所示,通过vnf并行性分析,sfc被划分为若干vnf集合,每个集合包含若干可并行执行的vnf,其中超过一个vnf的集合被称为并行vnf集。此后,sfc可以转换为多层形式,而每一层都包含一个vnf集合。如图4(c)所示,vnf集合{2,3,4,5}是第2层的并行vnf集,而vnf集合{6,7}是第3层的并行vnf集。层与层之间仍然是顺序执行的。其中,每个含有超过1个并行vnf的层后部会含有一个合并器(merger),合并器主要用于整合来自该层并行vnf的多个中间结果,使得后一层可以得到一个统一准确的输入。如图4所示,可以将一个sfc分为一个或多个串行的层,每层包含单个vnf或一个并行vnf集并且后跟一个合并器。因此,上述对混合型sfc的dag抽象是一个标准化的转换过程,本申请将转换后的sfc形式称为dag服务功能链(dag-sfc)。基于dag-sfc的标准化形式,本申请将混合型sfc嵌入代价最小化问题转化为dag-sfc嵌入代价最小化问题。步骤s3,以给定网络流的起始节点为第一网络功能并行层的开始节点,在所述网络拓扑图中搜索所述第一网络功能并行层的单层嵌入候选子解并相应的构建子解树;其中,所述单层嵌入候选子解中包括所述第一网络功能并行层中的所有虚拟网络功能的分配方案及其与本层开始节点以及尾节点的路由方案;每个网络流中的起始节点、终止节点(即目的节点)以及所需虚拟网络功能均为已知参数,同时基于混合型服务功能链中包含有不可并行的vnf对,因此,步骤s2中得到的分层有向无环图结构同样具有与待嵌入的混合型服务功能链相应的顺序,所以通过分层,可以逐层进行求解。同时为了后续实现整体方案的求解,本申请提出了基于每层得到的候选子解构建子解树以便于后续求解。步骤s4,基于上一层的每个单层嵌入候选子解,以上一层对应的尾节点为开始节点,通过搜索得到后续各个网络功能并行层的单层嵌入候选子解并插入到子解树中的相应位置,得到包含所有单层嵌入候选子解的目标子解树;基于每条完整的嵌入路径均是连续的,因此下一层的候选子解的求解必须依据上一层的尾节点,同样这样可以使得依次得到的子解可以插入到子解树中的相应位置从而得到一个树状结构候选子解的集合。步骤s5,基于所述目标子解树中的叶子节点,相应得到每个叶子节点到根节点的无环路径且作为候选解;其中,所述子解树的根节点对应网络流的起始节点,所述叶子节点为子解树中最后一层节点对应dag-sfc中最后一层的尾节点与网络流的目的节点的路由方案;其中,dag-sfc中最后一层的尾节点到目的节点采用最小代价路径连接。步骤s6,计算所有叶子节点对应候选解的总代价,并筛选代价最低的候选解作为服务功能链的嵌入方案;这样,可以实现混合型sfc的嵌入方案设计,也即得到相对优秀的sfc嵌入方案。由上述实施例可知,本申请提供的混合型服务功能链嵌入代价的优化方法,首先通过将待嵌入的服务功能链转化为分层的有向无环图结构,进而能够通过对拓扑图的搜索得到每一层的单层嵌入候选子解,通过在搜索过程中依次将候选子解插入子解树中,可以得到包含所有单层嵌入候选子解的目标子解树,然后可以通过遍历子解树叶子节点到根节点的无环路径得到对应的候选解,最后通过分析子解树计算所有候选解的嵌入代价,进而筛选代价最低对应的候选解作为服务功能链的嵌入方案。由此本申请能够在不超过网络容量限制的前提下,实现嵌入代价的最优化设计,进而降低服务功能链的嵌入成本。在本申请一些可选的实施例中,基于本申请将云网络作为sfc嵌入的目标网络,它是建立在底层网络基础之上的。各网络节点之间通过网络链路连接。在每个网络节点上,第三方vnf提供商可以部署vnf实例并以商品的方式提供给客户租用。为了使得本方案实施例以及设计思路更加容易理解,本申请相应的给出涉及到的各种结构模型以及参数的定义,如下:(1)目标网络模型:目标网络被建模为一个无向图g=(v,e)。每条链路e∈e是双向的,并且每条链路都包含两个权值:1)单位链路价格ce表示该链路每个单位带宽,例如1gb/s的价格;2)链路带宽容量re表示该链路的最大负载带宽。每个节点v∈v包含1个或多个vnf,集合fv表示节点v上的可用vnf的集合,其中fv是可用vnf全集f的子集,即(2)vnf部署模型:假设第三方vnf供应商提供了n种可用的vnf,则vnf集合f={f(1),f(2),…,f(n)}表示可用vnf的全集,其中f(i)表示第i种vnf。fv(i)表示在节点v上的f(i),并且每个fv(i)包含两个权值:1)单位租赁价格cv,f(i)表示每个单位带宽所需的vnf租赁代价;2)处理能力rv,f(i)表示该vnf能够处理的最大流量带宽。vi表示所有包含f(i)的节点集合,并且vi是v的子集,即除了这n个常规的vnf,本申请引入了两个特殊的vnf:1)f(0)表示虚设的vnf,主要用来统一文中优化模型的等式格式;2)f(n+1)表示并行vnf集的合并器。(3)dag-sfc模型:假设一个sfc可以被标准化为一个ω层的dag-sfc,则用s={l1,l2,…,lω}表示。其中,该dag-sfc包含ω个顺序执行的层,每层包含一个vnf或者一个并行vnf集后跟一个合并器。表示层ll包含的vnf的个数,表示层ll中的第γ个vnf。表示层ll中个并行vnf的合并器。(4)dag-sfc路径模型:如图4(c)所示,每条连接dag-sfc中两个vnf的逻辑链接被称为逻辑路径。实际网络中连接两个网络节点的路由路径被称为实际路径。实际路径集合表示从节点va到节点vb的所有实际路径集合。表示一个特定的从节点va到节点vb的实际路径。其中,ρ是一个标量,仅仅用来区分不同的从节点va到节点vb的实际路径。此外,β表示一个实际路径的长度(例如,一个长度为β的实际路径表示为需要说明的是,每条逻辑路径都需要由一条实际路径来实现。此外,虽然实际路径是一条无环路由路径,但是实际路径之间可能会重叠使用某些底层网络链接,因此同一条底层网络链接可能会在网络流传输时被复用多次。(5)网络流模型:假设一条网络流具有四个属性:1)网络流的规模z表示该网络流所要传输的数据总体容量,例如:1tb;2)网络流的传输速率r,例如:1gb/s;3)源节点s∈v表示网络流的起始节点;4)终节点t∈v表示网络流的终点节点。该网络流需要从源节点通过嵌入在网络中sfc并且最终到达终点节点,即目的节点。将源节点和终点节点组合称为源-终节点对。通过以上的系统模型描述,本申请将dag-sfc嵌入代价最优化问题定义为:给定目标网络和一个网络流量,如何在不超过给定网络链路容量和vnf流处理能力的前提下将一个给定的dag-sfc嵌入到目标网络中,能够使的整体的流量传输和处理代价(包括链路代价和vnf租赁代价)最小。为了进一步澄清以上表述,此处提供两个具体示例如下:图5给出了一个目标网络图的示例。其中,每个圆表示一个网络节点,每个节点中的数字表示该节点上可用的vnf类别。例如,图5中的节点a包含三类可用的vnf,分别为f(1)、f(6)和f(7)。图5中节点之间的链路是双向的,每个链路上标记的两个数字分别表示链路容量和单位链路价格。此外,图6给出了图5中每个节点上每个vnf类别的单位租赁价格。图7(a)表示对应如图5所示网络图中的实际路径集合在三角形中的数字表示集合中路径的标号,即标量ρ,因此第一条集合中的实际路径被表示为此外,如图7(a)所示,是一条长度为2的路径,是一条长度为3的路径。图7(b)表示所有可能的从节点va到节点vi的路由路径集合,即实际路径集合需要说明的是,因为与具有不同的源-终节点对,所以与间不存在交集。但是,一些底层链路会被这些实际路径所复用,如示例中链路ea,b被多条路径复用。进一步,通过上述定义对本申请提出的优化问题进行建模分析:dag-sfc中的逻辑路径被自然的分为两组。第一组,用p1表示,包含所有连接两个相邻层的逻辑路径,被称为层间逻辑路径集合。更详细地说,逻辑路径p∈p1将前一层的合并器或前一层中唯一的vnf与本层的各vnf连接,如图4(c)中所示。第二组,用p2表示,包含所有连接本层vnf到同一层合并器的逻辑路径,称p2为层内逻辑路径集,如图4(c)中所示。请注意,同一层的层间逻辑路径使用多播传输而不是多个单播的直接组合。但是,同层的层间逻辑路径不能使用多播传输,因为网络流经过多个并行vnf的处理可能会形成多个不同的版本,所以这些逻辑路径之间只能使用组合单播传输。因此,本文将对这两种逻辑路径进行分类讨论和分析。在建模dag-sfc嵌入代价最优化问题之前,此处先给出各变量及参数的定义如下:xv,l,γ:表示第l层的第γ个vnf(即)是否在节点v上租用的二进制变量。表示第l层的第γ个vnf为第i类vnf(即等式)是否成立的二进制变量。αv,i:表示在节点v上的第i类vnf(即fv(i))的复用系数,为整数变量。表示实际路径是否被选择来实现从第l-1层的合并器(或第l-1层唯一的vnf)到第l层的第ε个vnf(即)之间的逻辑路径的二进制变量。表示实际路径是否被选择来实现从第l层的第γ个vnf(即)到本层的合并器之间的逻辑路径的二进制变量。表示链路eg,h是否被选择来实现实际路径的二进制变量。αg,h:表示链路eg,h被复用的次数,为整数变量。ml,γ:表示第l层的第γ个vnf(即)是否为第l层的合并器的二进制变量。是一个返回值为二进制数的函数,返回值表示是否实际路径被完整的实例化(即包含的所有底层链路都被选定)。根据以上定义,dag-sfc嵌入代价最优化问题的目标函数可以被定义为如下形式:在此目标函数中,前半部分为总体vnf租赁代价,后半部分为总体链路代价。本申请将约束条件分为以下两部分定义。1)容量约束:进一步包括:1.1给定网络中各节点上所有的vnf都没有超过其处理能力;1.2当嵌入dag-sfc时,所有该网络中的链路没有超过其带宽容量。得到:2)sfc嵌入完整性约束:为了统一模型,这里增加两个额外的层和来分别将源节点和终点节点兼容进模型中,令s+={l0,l1,…,lω+1}。其中,f(0)表示引入的虚假的vnf,如以下的三个约束条件保证了嵌入的dag-sfc的完整性。其中,约束(4)保证了每个dag-sfc中的vnf在网络中被分配并且只被分配了一次。约束(5)保证了所有的层间逻辑路径在嵌入过程中都被实例化,而约束(6)保证了所有的层内逻辑路径在嵌入过程中都被实例化。以下公式对vnf和链路的复用系数进行了刻画。公式(7)计算了网络中各节点上各vnf的复用系数。公式(8)则计算了网络中各链路的复用系数。其中,链路复用系数可分为两个部分,1)层间实际路径复用系数和2)层内实际路径复用系数。对于链路eg,h,公式(9)计算了其层间实际路径复用系数,而公式(10)计算了其层内实际路径复用系数。在本申请一些可选的实施例中,为了使得本申请上述过程更加易于理解,参照图5所示,本实施例以一个具体的网络拓扑结构为例进行说明。最常见的处理sfc嵌入代价最优化问题的思路是选择最便宜的vnf来嵌入sfc。然而,根据这个思路选择的vnf可能会分散在物理距离很远的网络节点上,这样会导致巨大的链路代价。为了降低dag-sfc嵌入网络的总体成本,vnf成本和链路成本应该被同时考虑。结合图5分析该问题可知,通过在网络的相邻节点上选择vnf可以降低链路成本。基于这个思想,本申请提出了基于广度优先搜索的贪婪嵌入方法(bbe)来解决该问题。bbe算法会通过逐层搜索子解决方案来试图找到最优的嵌入方案。其中,子解决方案表示只嵌入dag-sfc中的某一层的嵌入方案。详细的说,基于一个l-1层的子解决方案来搜索一个可行的第l层的子解决方案需要三个步骤:1)前向搜索;2)回溯搜索;3)候选子解决方案生成。在搜索完所有层的子解决方案后,对于每个第ω层的子解决方案,bbe算法将使用最小代价路径将第ω层的尾节点连接到网络流的终点节点,并生成一个叶子节点插入到子解树对应的位置,从而产生了一个完整的dag-sfc嵌入候选方案。其中,ω为该dag-sfc的总层数;第ω层的尾节点表示该dag-sfc最后一层的合并器或者唯一的vnf所分配的网络节点。最后,bbe算法将选择最便宜的候选方案作为该问题的最终解决方案。参照图3所示,为本发明提供的候选子解求解方法的一个实施例的流程图。所述单层嵌入候选子解通过如下步骤获取:步骤s11,判断当前网络功能并行层中的虚拟网络功能是否为多个;其中基于混合型sfc对应的分层有向无环图结构中可能存在大量的单层只有一个虚拟网络功能的情况,而此时的候选子解中将不包括层内逻辑路径的实例化,因此需要区分开。步骤s12,若是,则从开始节点启动前向搜索过程进行搜索,直到搜索到的节点集合包含了当前网络功能并行层中的所有虚拟网络功能,基于搜索过程建立对应的前向搜索树;前向搜索的目的是在第l层的起始节点(即第l-1层的尾节点)周围找到一个包含所有第l层所需要的vnf邻近节点集合,以便于将整个第l层嵌入到这个部分网络中。与此同时,前向搜索可以实例化第l-1层与第l层层间逻辑路径。前向搜索树是一种数据结构,用于存储前向搜索过程得到的节点和实际路径。为了便于后面的叙述,在这里先给出一些符号的定义,如下:vl:表示第l层的尾节点,则第l层的起始节点为vl-1。表示从起始节点vl-1寻找第l层所有vnf的前向搜索过程。表示前向搜索节点集合,该集合包含了从第l层的起始节点vl-1开始的前q此前向搜索得到的所有网络节点。表示前向搜索节点集合中所有节点包含的vnf集合的并集。前向搜索过程是基于广度优先搜索的,一个前向搜索过程包含多个广度优先搜索的迭代循环。第l层的前向搜索从起始节点vl-1开始,直到找到所有第l层所有的vnf。详细的说,第l层前向搜索(即)的第一次迭代时,第q次迭代时,算法通过将所有上次迭代得到的搜索节点集中的节点的直接相邻节点纳入到搜索节点集中得到直到前向vnf集合包含所有的第l层所需的vnf(即),第l层的前向搜索过程才会终止。例如,图8a-8d展示了bbe算法如何将图4(c)中的dag-sfc的第2层嵌入到如图5所示的网络中。首先,假设第一层唯一的vnff(1)被分配在节点va上。然后,图8(a)、8(b)和8(c)展示了如何实例化如图4(c)中所示的连接f(1)与第2层并行vnf之间逻辑路径。更详细的说,图8(a)展示了第一次迭代后的中间状态,此时因为前向搜索vnf集不包含第2层的vnf集l2={f(2),f(3),f(4),f(5),f(8)},所以第二次迭代被执行。第二次迭代后的中间状态如图8(b)所示,因为前向搜索集依旧不包含第2层vnf集(即),第三次迭代被执行。第三次迭代后的中间状态如图8(c)所示,这次并且成立,所以终止。此外,图8(d)展示了搜索到的第一层与第二层的层间实际路径。为了描述上述前向搜索结果,本申请定义了一个基于二叉树的数据结构,即前向搜索树(fst),用于存储前向搜索的结果。图8(e)展示了图8a-8d中前向搜索过程对应的fst。其中,图中的实线箭头为二叉树结构的逻辑连接,虚线箭头表示对应的网络节点之间的关系。在fst中,fst节点的左孩子对应一个下一次迭代得到的网络节点;fst节点的右孩子对应一个本次迭代得到的网络节点。所以当要遍历所有第i次迭代得到的网络节点时,只要找到fst的第i层的最左边节点,然后循环遍历其右孩子节点,直到没有右孩子。一个第l层的前向搜索树的根节点表示第l层的起始节点,前向搜索从fst的根节点开始。更详细的说,每个fst节点具有如表1所示的七个元素。其中,前三个元素构成了二叉树的逻辑结构;第四和第五个元素记录了对应的网络节点的信息;最后两个元素记录了网络节点之间的连接关系。表1fst节点中的元素另外,给定一个fst节点,我们可以通过选择一系列的图8e中的虚线,从而很容易的找到一条存在的从该节点到根节点的路径。因为前向搜索过程保证了在fst非根节点和上一次迭代得到的fst节点间总是至少存在一条虚线箭头,所以在fst中总是存在至少一条连接非根节点与根节点之间的虚线路径。步骤s13,从每个尾节点启动回溯搜索过程进行搜索,直到搜索到的节点集合包含了当前网络功能并行层中的所有虚拟网络功能,基于搜索过程建立对应的回溯搜索树;其中,所述尾节点为所述前向搜索树中部署有合并器的节点;在一个前向搜索后,对每个在该fst中且对应的网络节点中包含合并器的节点,本申请提出的bbe算法将从该fst节点对应的网络节点启动一个回溯搜索过程。回溯搜索的目的是进一步缩小相应的前向搜索得到的相邻节点集合,并实例化第l层的层内逻辑路径。回溯搜索树是为了存储回溯搜索过程得到的节点和层内实际路径而引入的数据结构。为了便于后面的叙述,在这里先给出一些符号的定义如下:表示从第l层的尾节点vl开始的回溯搜索过程。表示的前w次迭代得到的回溯搜索节点集合。表示节点集中所有网络节点中包含的vnf集合的并集。回溯搜索的过程和前向搜索类似,但是回溯搜索有着不同的搜索目的。对于第l层,从选定的第l层的尾节点开始迭代搜索,直到找到所有第l层所需的vnf。详细的说,在的第一次迭代后,第w次迭代时,算法通过将所有上次迭代得到的搜索节点集中的节点的直接相邻节点纳入到搜索节点集中得到直到回溯vnf集合包含所有的第l层所需的vnf(即),第l层的回溯搜索过程才会终止。例如,图9(a)和9(b)展示了当第2层合并器分配在节点vc上,即第2层的尾节点为vc时,bbe算法如何通过过程来实例化如图4(c)中所示的dag-sfc中连接第二层并行vnf和该层合并器的逻辑路径。此外,图9(c)展示了搜索到的层内实际路径。与fst相似,回溯搜索树(bst)是一个基于二叉树的数据结构,用来存储回溯搜索得到的结果。图9(d)展示了图9a-9c中的回溯搜索得到的回溯搜索树。虽然bst与fst有着相同的逻辑结构,但是他们存储的信息不同。需要注意的是,bst的根节点代表第l层的尾节点,回溯搜索从bst的根节点开始。步骤s14,遍历每个回溯搜索树以及与其对应的前向搜索树(fst-bst对),相应的产生当前网络功能并行层对应的单层嵌入候选子解。在建立一个第l层bst后,需要生成一系列这个fst-bst对的候选子解决方案,简称候选子解。并且,为了高效和方便的存储这些子解,本申请定义了对应的数据结构,即子解树。给定一个第l层的fst-bst对,算法需要通过遍历这个fst-bst对来生成所有可能的可行子解。通过fst和bst的定义可知,和三个条件始终成立。基于此,算法能够基于fst-bst对生成候选子解。进一步,所述遍历每个前向搜索树与回溯搜索树的步骤还包括:步骤s141,在所述回溯搜索树中,基于当前网络功能并行层中的所有虚拟网络功能构建不同的分配组合,得到第一阶段候选子解;步骤s142,基于每个所述第一阶段候选子解,通过遍历所述回溯搜索树中得到一系列层内逻辑路径,即第二阶段候选子解;其中,所述层内逻辑路径为当前网络功能并行层中不同虚拟网络功能与本层合并器之间的逻辑连接;步骤s143,基于每个所述第二阶段候选子解,通过遍历所述前向搜索树中上一层与当前网络功能并行层对应的层间逻辑路径,即第三阶段候选子解;其中,所述层间逻辑路径为上一层网络功能并行层中合并器或者唯一的虚拟网络功能与当前网络功能并行层中虚拟网络功能之间的逻辑连接;步骤s144,判断所述第三阶段候选子解是否满足预设的网络宽带约束和虚拟网络功能处理能力约束,若是,则作为当前网络功能并行层对应的单层嵌入候选子解;否则,舍弃该候选子解。图10展示了一个基于图8e和9d中的fst-bst对的候选子解示例,其中f(2)、f(3)和f(5)被分配在节点vc上,而f(4)被分配在节点ve上。如上所述,bbe算法将为每个fst-bst对生成候选子解。但是,每个fst的建立都是基于某个特定的上一层子解决方案。那么,如何准确地存储子解之间的依赖关系。本申请提出了一个基于树拓扑的数据结构,即子解树来解决这个问题。参照图11所示,为子解树逻辑结构示意图。子解树的生成过程跨越了整个bbe算法的搜索过程。在生成某个特定fst-bst对的一系列子解之后,bbe算法将立即把它们插入到子解树中,作为该fst中所基于的前一层子解树节点的孩子节点。对于一个ω层的dag-sfc,子解树将具有ω+2层(0~ω+1层)。其中,第0层为子解树的根节点,它只存储源节点信息,所以无需任何成本;第1~ω层存储相应dag-sfc层的子解;第ω+1层只存储第ω层的尾节点到终点节点之间的最小代价路径,不需任何vnf。每个第ω+1层子解树节点称为叶节点,可以唯一地标识一个可行的完整解决方案,其可以通过整合子解树中从该叶节点到根节点的无环路径上的所有子解来获得。在子解树中,每个节点和其父节点之间的链路都是双向链路。其中,下行链路是为了满足生成和遍历子解树的需要;而上行链路使得可以方便的查找从该子解节点到根节点的上行路径,因为在查找中避免了从根节点遍历子解树。在本申请一些可选的实施例中,所述判断当前网络功能并行层中的虚拟网络功能是否为多个的步骤还包括:步骤s12,若当前网络功能并行层中的虚拟网络功能为1个,则从开始节点启动前向搜索过程进行搜索,直到搜索到的节点集合包含了当前网络功能并行层中的虚拟网络功能,基于搜索过程建立对应的前向搜索树;步骤s13,遍历前向搜索树中的节点,对每个含有当前网络功能并行层所需虚拟网络功能的节点,利用最小代价路径将该节点与当前网络功能并行层的开始节点相连,得到单层嵌入候选子解。由上述分析可知,本申请提出的bbe算法的复杂度可以通过将dag-sfc的每一单层的嵌入复杂度累乘起来得到。假设网络中两个网络节点之间长度相同的不同实际路径的最大数目为h,该网络中有n个节点。假设dag-sfc包含ω层,每层包含至多个并行的vnf。在这种情况下,单层嵌入的最坏情况下的时间复杂度为则整个dag-sfc嵌入的最坏时间复杂度不超过显然,bbe算法的复杂度很高,当网络规模或sfc规模增加时,解决dag-sfc嵌入代价最优化问题的计算复杂度将以一个难以接受的速度增加,甚至会由于生成子解树的规模非常庞大乃致内存溢出而无法获得最终结果。基于以上分析,本申请提出一个基于最小代价路径的贪婪算法(mini-pathbreadth-firstbacktrackingembedding,mbbe)来解决bbe算法过于复杂的问题。mbbe算法在bbe算法的基础上增加了以下三个准则,如下:(1)设置一个整型变量xmax≤n,在前向搜索过程中增加一个退出条件,即当前向搜索节点集中元素个数大于xmax(即)时中止前向搜索过程。(2)生成子解时,在执行第一步得到第一阶段候选子解后,直接通过迪杰斯特拉算法生成最小代价路径来生成最后的候选子解。(3)设置一个整型变量xd,当生成某个fst-bst对对应的子解时,mbbe算法限制只让最便宜的xd个候选子解插入到子解树中。这样做就限制了子解树的规模,使得子解树变成了一个xd叉树。由此基于以上原则,得到如下方案。在本申请一些可选的实施例中,所述前向搜索过程还包括:基于当前网络条件,设置一个节点数量阈值;判断当前搜索得到的节点的数量是否大于所述节点数量阈值;若是,则终止前向搜索。在本申请一些可选的实施例中,所述单层嵌入候选子解通过如下步骤求解:在所述回溯搜索树中,基于当前网络功能并行层中的所有虚拟网络功能构建不同的分配组合,得到第一阶段候选子解;基于所述第一阶段候选子解,通过迪杰斯特拉算法生成最小代价路径,得到第三阶段候选子解;判断所述第三阶段候选子解是否满足预设的网络宽带约束和虚拟网络功能处理能力约束,若是,则作为当前网络功能并行层对应的单层嵌入候选子解;否则,舍弃该候选子解。在本申请一些可选的实施例中,所述目标子解树的构建过程还包括:针对子解树中上一层对应的每个节点,判断当前网络功能并行层的单层嵌入候选子解的数量是否超过预设的子解数量阈值xd;若是,则从当前网络功能并行层的单层嵌入候选子解中筛选出单层嵌入代价从小到大排序在前的xd个单层嵌入候选子解插入到子解树中;否则,将所有该网络功能并行层的单层嵌入候选子解插入到子解树中。由以上是实施例可知,本申请与常规bbe算法相比,在同样的前提下,因为准则(1)(2)的调整,最坏情况下的单层嵌入复杂度降低到此外,由于准则(3)的调整,最坏情况下嵌入整条dag-sfc的复杂度降低到其中k=(1-(xd)ω+1)/(1-xd)为子解树前ω+1层节点的个数。进一步,为了验证本申请提出嵌入方案的性能,给出了相应的仿真实验。首选,需要进行仿真实验设置,为了便于理解,给出如下术语含义:sfc规模:表示该sfc包含的vnf数量。网络规模:表示该网络包含的节点数量。网络连通度:表示网络中节点的度的平均值。vnf部署率:表示部署特定vnf的网络节点的百分比。例如,如果一个网络包含100个节点,其中70个节点包含f(1),则f(1)的vnf部署率为70/100=70%。平均价格比:指将网络中的单位链路价格均值除以单位vnf租赁价格均值所得的比率。例如,如果网络中链路平均价格为10,平均vnf租赁价格为50,则该网络的平均价格比为10/50=20%。vnf价格波动率:指将某个vnf的两个价格极值之间的差距的一半除以vnf的平均价格所得的比率。例如,如果f(1)最便宜的价格是50,f(1)最贵的价格是150,f(1)的平均价格是100,那么f(1)的vnf价格波动率为(150-50)/2/100=50%。本申请通过随机网络生成器生成仿真网络拓扑。其中,包括:1)生成器生成给定网络规模的网络节点;2)为了保证该网络图是连通的,先将各网络节点相互连接形成一个随机树,然后随机的添加随机边直到符合给定的网络连通度;3)生成器在每个节点上部署符合给定的vnf部署率和vnf价格波动率的vnf;4)按照给定的平均价格比给各个链路设定价格。通过随机sfc生成器生成dag-sfc。sfc生成器会根据一个特定的规则生成sfc,即每三个vnf组成一个并行层,以避免生成实验没有参考价值的串行sfc。但是,每个生成的sfc包含不同的vnf集合,这意味着sfc生成器会生成具有相似结构但相应位置上配置不同vnf的dag-sfc。由于没有已有的混合型sfc嵌入算法进行对比,因此本实施例设计实现了两个用于性能比较的基准算法,分别为ranv和minv。ranv是一种随机算法,它将sfc所需的每个vnf随机的分配在包含足够这种vnf的网络节点上并将vnf之间的逻辑路径利用最小代价路径实例化。minv是一种简单的贪婪算法,minv会选择网络中最便宜的vnf来满足sfc的需求,然后同样将vnf之间的逻辑路径利用最小代价路径实例化。表2实验基准配置网络规模500网络连接度6vnf部署率50%平均价格表20%vnf价格波动率5%sfc规模5表2为实验的基准配置,本实施例的仿真实验将基于此基准配置进行。为了避免实验的偶然性,每组实验都将利用100个不同的sfc的嵌入方案取均值作为最终实验结果显示在相应图表中。本节分别在不同的网络规模、网络连通度、vnf部署率、平均价格比、vnf价格波动率和sfc规模条件下,评估bbe算法和mbbe算法的性能。(1)sfc规模对算法性能的影响:在本组实验中,改变sfc规模,保持其他条件不变并与基准配置一致,以评估sfc规模对算法性能的影响。如图12(a)所示,嵌入sfc的总成本随着sfc规模的增大呈上升趋势。但是,本申请提出的算法具有更好的性能,当sfc规模越来越大时,本申请提出的算法和基线算法之间的差距正在逐步扩大。由于bbe算法的时间复杂度随着sfc规模的增长呈指数增长,所以本组实验中在sfc规模不大于5的情况下对bbe算法的评估。本组实验结果表明,与minv相比,mbbe算法可将嵌入sfc的总成本减少约30%。(2)网络规模对算法性能的影响:在本组实验中,网络规模为变量,包括10,20,50,100,200,500,1000个节点,而其他配置与基准配置相同。如图12(b)所示,当网络规模扩大时,mbbe算法得到的结果是稳定的,而基线算法产生的解决方案的成本不断增加。并且mbbe算法的解决方案的平均成本比基准算法所获得的解决方案至少低14%。当网络规模不断扩大时,mbbe算法解决方案和基准解决方案之间的成本差距在不断扩大。据分析,这种趋势的出现是由于当网络规模扩大时,基准解决方案中vnf之间的实际路径长度会增加,从而导致基准解决方案的总成本随着网络规模的扩大在不断增加。(3)网络连通度对算法性能的影响:在本组实验中,网络连通度为变量从2逐渐增加到14,而其他配置始终与基准配置相同。如图12(c)所示,mbbe算法的解决方案的代价比基准解决方案降低约30%。此外,当网络连通度上升时,解决方案的成本会不断下降。根据对实验结果的分析,这种趋势是由于在网络连通度增加时,解决方案中vnf之间的实际路径长度会减少。(4)vnf部署率对算法性能的影响:在本组实验中,vnf部署率为变量,从10%逐渐变化到70%。要注意的是,在本组实验中网络规模被设置为50,因为vnf部署率低时bbe算法可能会搜索非常多的网络节点,从而导致实际路径路由过程变得非常耗时。除此之外的其他配置始终与基准配置相同。如图12(d)所示,mbbe算法的解决方案的成本比基准解决方案降低大约25%。并且随着vnf部署率的上升,mbbe算法的解决方案的成本会逐渐下降。通过分析,出现这样的趋势是因为当vnf部署率上升时,mbbe算法会搜索更多相邻的vnf来尽可能缩短实际路径。(5)平均价格比对算法性能的影响:在本组实验中,平均价格比为变量,从1%逐渐变到50%,而其他配置始终与基准配置相同。如图12(e)所示,当平均价格比上升时,所有的曲线都在上升,这种趋势部分是因为链路价格上涨。其中,当链路价格上涨时,基准解决方案的成本增长速度更快,mbbe算法的解决方案和基准解决方案之间的代价差距越来越大。根据分析,mbbe算法可以合理的协调vnf成本的降低和链路成本的降低,所以mbbe算法可以在链路成本上升时缓解整体嵌入代价的上浮。(6)vnf价格波动率对算法性能的影响:在本组实验中,vnf价格波动率为变量,从5%逐渐变到50%,而其他配置始终与基准配置相同。如图12(f)所示,当vnf价格波动率上升时,mbbe算法,bbe算法和minv算法解决方案的成本逐渐下降,这是因为此三种算法会试图选择便宜的vnf来嵌入sfc。更详细的说,当vnf价格波动率上升时,minv与本申请提出的算法之间的差距不断缩小,这是因为minv总是选择全网络里最便宜的vnf来嵌入sfc。但是,即使vnf的价格波动率达到50%,本申请提出的算法得到的解决方案仍然不逊色于基准解决方案。此外,综合分析以上仿真实验结果,mbbe算法通过使用最小代价路径代替遍历搜索树所获得的路径来改进bbe算法,可以降低计算复杂度的同时保证不损失性能。对实验过程中的输出结果的分析表明,mbbe算法经常会选择与bbe算法相同的链路来实现dag-sfc中的逻辑路径。这应该是由于当选择附近节点上的vnf时,分配了vnf的网络节点之间的最小代价路径与遍历搜索树对生成的最优路径经常会相同。综上所述,上述六组实验表明这六个因素都会对算法的性能产生一定影响,但是mbbe算法得到的解决方案一般不会比两个基准算法差。其次,在大多数情况下,mbbe算法相对于两个基线算法中可以达到可观的性能提升,即得到的解决方案成本更小。并且,mbbe算法的性能稳定,这意味着当影响成本的因素改变时,mbbe得到的解决方案成本不会发生剧烈的变化。最后,与bbe算法相比,mbbe算法能够在不降低性能的条件下优化计算复杂度。所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1