多个VNF间依赖的协同式构建与映射SFC方法与流程

文档序号:15357781发布日期:2018-09-05 00:12阅读:827来源:国知局

本发明属于通信技术领域,更进一步涉及网络通信技术领域中的一种多个虚拟网络功能vnf(virtualizednetworkfunction)间依赖的协同式构建与映射服务功能链sfc(servicefunctionchain)方法。利用本发明的方法,可以在弹性光网络中有效地部署多个虚拟网络功能vnf间有依赖性的服务功能链sfc,为用户提供所需服务。



背景技术:

网络功能虚拟化技术将传统网络功能从硬件中间盒子middlebox映射到运行在基于行业标准的x86服务器、存储和交换设备中的软件中间盒子middlebox上,运行在软件中间盒子middlebox上的网络功能称为虚拟网络功能vnf,多个虚拟网络功能vnf通常按照一个特定的顺序连接构成服务功能链sfc以提供某种特定网络服务。网络功能虚拟化场景下的业务请求部署主要包括服务功能链sfc构建和服务功能链sfc映射两个阶段,第1个阶段是根据业务请求构建符合条件的服务功能链sfc,第2个阶段确定服务功能链sfc中每个虚拟网络功能vnf和每条虚拟链路映射在物理网络中的位置。

业务请求中网络功能的执行顺序通常是可变的,但有时必须先执行某个特定的网络功能才能执行另一个网络功能。例如,如果数据包必须经过网络保密器和入侵检测系统ids(intrusiondetectionsystems)两个网络功能的处理,那么应在网络保密器对内容加密之前使用入侵检测系统ids对数据包进行检查,此时称网络保密器与入侵检测系统ids两个网络功能间存在依赖性。网络功能还可能影响业务流的数据速率。例如,防火墙会丢弃特定的数据包从而导致流出防火墙的数据速率小于流入的数据速率。将流出特定网络功能的数据速率与流入该网络功能的数据速率之比称为网络功能的数据速率改变因子。在网络功能虚拟化场景下部署服务功能链sfc时,应该考虑虚拟网络功能vnf的数据速率改变因子和虚拟网络功能vnf间的依赖性。

wenjianfang、mengluzeng、xiaheliu、weilu、zuqingzhu在其发表的论文“jointspectrumanditresourceallocationforefficientvnfservicechainingininter-datacenterelasticopticalnetworks”(ieeecommunicationsletters,vol.20,no.8,aug.2016,pp.1539-1542)中公开了一种基于最长公共子序列lcs(longestcommonsubsequence)算法的服务功能链sfc映射方法。该方法首先使用最短路径优先算法在业务请求源宿节点间计算多条候选路径,利用最长公共子序列lcs算法分别计算每条候选路径上已有的虚拟网络功能vnf序列与业务请求的虚拟网络功能vnf序列的最长公共子序列lcs,并选择所得最长公共子序列lcs最大的一条候选路径作为业务部署路径。然后,重用最长公共子序列lcs中的虚拟网络功能vnf,并依据就近方法和节约频谱方法映射剩余虚拟网络功能vnf。最后,在虚拟链路两端虚拟网络功能vnf所映射到的物理节点间,使用最短路径优先算法为虚拟链路计算候选路径,并使用首次命中firstfit方法为虚拟链路分配频谱。该方法存在的不足之处是,不能根据底层物理网络状态调整服务功能链sfc中虚拟网络功能vnf的顺序,无法有效降低业务部署成本。

wenruima、carlosmedina、dengpan在其发表的论文“traffic-awareplacementofnfvmiddleboxes”(ieeeglobalcommunicationsconference(globecom).2015.pp.1-6)中公开了一种服务功能链sfc构建和映射分步处理的方法。该方法首先将业务请求中的虚拟网络功能vnf按照其数据速率改变因子升序排列来构建服务功能链sfc。然后在候选路径上采用所提的最小最先最大最后lfgl(least-first-greatest-last)方法部署已构建的服务功能链sfc。该方法存在的不足有,首先,它无法处理多个虚拟网络功能vnf间存在依赖性的业务请求,应用范围受限;其次,分步处理服务功能链sfc构建和映射两个阶段的方法可能无法求得整个问题全局最优的解决方案,导致业务部署成本过高。

清华大学申请的专利“带宽保障的虚拟网络功能部署方法”(公开号cn106411678a,申请号201610810787.7)公开了一种带宽保障的虚拟网络功能vnf部署方法。该方法在保障用户带宽需求的同时,利用集中式放置用户虚拟机的方法,减少不必要的带宽损耗。该方法存在的不足之处是,由于仅仅考虑了链路带宽资源的成本,而忽略了虚拟网络功能vnf的成本,导致不能减少部署的虚拟网络功能vnf数量,部署业务请求时需要过多的虚拟网络功能vnf。



技术实现要素:

本发明的目的在于针对上述现有技术的不足,提出了一种多个虚拟网络功能vnf间依赖的协同式构建与映射服务功能链sfc方法。本发明采用了基于k最短路算法和最大交集intersection算法的部署路径选取方法,以及考虑虚拟网络功能vnf间依赖性关系和虚拟网络功能vnf数据速率改变因子的虚拟网络功能vnf映射方法,并且结合了基于路由和频谱分配的虚拟链路映射方法。首先运用部署路径选取方法在业务请求源宿节点间选则业务部署路径,接着在所选路径上使用虚拟网络功能vnf映射方法映射虚拟网络功能vnf,最后使用虚拟链路映射方法依次映射服务功能链sfc中的虚拟链路,完成业务请求的部署。由于所选的业务部署路径已存在的虚拟网络功能vnf集合与业务需求的虚拟网络功能vnf集合的交集intersection最大,故在这条路径上能够尽可能多地重用虚拟网络功能vnf。由于构建和映射服务功能链sfc时,在满足虚拟网络功能vnf间依赖性关系的前提下,根据数据速率改变因子在所选路径上映射虚拟网络功能vnf,并在映射虚拟链路时选择使最大频隙号增加最少的一条候选路径,故能够减少虚拟链路在光纤链路中占用的最大频隙号。本方法可以解决网络功能虚拟化场景下在弹性光网络中部署存在依赖性虚拟网络功能对vnfspair业务请求的问题,并减少虚拟网络功能vnf的部署总数和底层弹性光网络中所有光纤链路占用的最大频隙号,从而节约业务部署成本。

实现本发明目的的思路是:在业务请求源宿节点间的前3条跳数最少路径中,选择能够重用最多虚拟网络功能vnf的一条,作为业务部署路径。在满足虚拟网络功能vnf间依赖性关系的前提下,优先重用路径上已有的虚拟网络功能vnf,然后将减小数据速率的虚拟网络功能vnf按照其数据速率改变因子从小到大依次尽可能映射到所选路径前端,将增大数据速率的虚拟网络功能vnf按照其数据速率改变因子从大到小依次尽可能映射到所选路径末端。在虚拟链路两端虚拟网络功能vnf所映射到的物理节点间,选取前3条跳数最少路径作为候选路径,在候选路径上分别为虚拟链路预分配频隙,选取使网络中最大频隙号增加最少的一条路径作为虚拟链路映射路径。

本发明的步骤包括如下:

(1)预处理物理网络信息:

(1a)从物理网络的节点中筛选出连接有服务器的所有节点,将其作为映射虚拟网络功能vnf的服务器节点集合;

(1b)采用k最短路算法,计算物理网络中每两节点间的前3条最短路径;

(2)从待处理业务请求集合中选取一个业务请求;

(3)选取业务部署路径:

(3a)从物理网络中每两个节点间的前3条最短路径中,选取业务请求源宿两节点间前3条最短路径作为候选路径,分别计算每条候选路径上已有的虚拟网络功能vnf集合与业务需求的虚拟网络功能vnf集合的交集intersection,交集intersection中为可重用虚拟网络功能vnf集合;

(3b)选取可重用虚拟网络功能vnf集合最大的候选路径,作为业务部署路径;

(4)判断业务请求中待映射的虚拟网络功能vnf集合中是否存在依赖性虚拟网络功能对vnfspair,若是,则执行步骤(5),否则,执行步骤(6);

(5)依据依赖性虚拟网络功能对vnfspair部署方法映射所有依赖性虚拟网络功能对vnfspair:

(5a)从业务请求中待映射的虚拟网络功能vnf集合中任意选取一个依赖性虚拟网络功能对vnfspair,将选取的虚拟网络功能对vnfspair从业务需求的虚拟网络功能vnf集合中剔除;

(5b)判断业务部署路径上是否已存在虚拟网络功能对vnfspair中的两个虚拟网络功能vnf,若是,则执行步骤(5c),否则,执行步骤(5d);

(5c)使用最多重用两个的依赖性虚拟网络功能对vnfspair映射方法,在业务部署路径上映射此虚拟网络功能对vnfspair后执行步骤(5g);

(5d)判断是否有业务部署路径上仅存在虚拟网络功能对vnfspair中一个虚拟网络功能vnf,若是,则执行步骤(5e),否则,执行步骤(5f);

(5e)使用最多重用一个的依赖性虚拟网络功能对vnfspair映射方法,在业务部署路径上映射此虚拟网络功能对vnfspair后执行步骤(5g);

(5f)使用无法重用的依赖性虚拟网络功能对vnfspair映射方法,在业务部署路径上映射此虚拟网络功能对vnfspair;

(5g)判断业务请求中待映射的虚拟网络功能vnf集合中是否存在依赖性虚拟网络功能对vnfspair,若是,则执行步骤(5a),否则,完成业务请求中待映射的虚拟网络功能vnf集合中所有依赖性虚拟网络功能对vnfspair的映射,执行步骤(6);

(6)判断业务请求中待映射的虚拟网络功能vnf集合中是否为空,若是,则完成服务功能链sfc的构建和虚拟网络功能vnf的映射,执行步骤(8),否则,执行步骤(7);

(7)依据单个虚拟网络功能vnf部署方法映射所有剩余的虚拟网络功能vnf:

(7a)从业务需求的虚拟网络功能vnf集合中任意取出一个虚拟网络功能vnf,判断业务部署路径上是否存在此虚拟网络功能vnf,若是,执行步骤(7b),否则执行步骤(7c);

(7b)将虚拟网络功能vnf映射到业务部署路径上存在此虚拟网络功能vnf的服务器节点上,重用此虚拟网络功能vnf后执行步骤(7d);

(7c)若虚拟网络功能vnf的数据速率改变因子小于或等于1,则将其映射在最靠近路径前端的服务器节点上,否则,将其映射在最靠近路径末端的服务器节点上;

(7d)判断业务需求的虚拟网络功能vnf集合中是否为空,若是,则所有虚拟网络功能vnf映射结束的同时也完成了服务功能链sfc的构建,执行步骤(8),否则,执行步骤(7a);

(8)映射虚拟链路:

(8a)从待映射的虚拟链路集合中取出下一条虚拟链路,判断其两端的虚拟网络功能vnf是否映射到同一个节点上,若是,执行步骤(8b),否则,执行步骤(8d);

(8b)无需映射当前虚拟链路;

(8c)判断所有的虚拟链路是否全部映射完成,若是,则执行步骤(8g),否则,执行步骤(8a);

(8d)判断当前虚拟链路是否为第一条虚拟链路,若是,则当前虚拟链路上的频隙数由业务请求信息给出,否则,当前虚拟链路上的频隙数为前一条虚拟链路上的频隙数乘上当前虚拟链路起始端虚拟网络功能vnf的数据速率改变因子;

(8e)在当前虚拟链路两端虚拟网络功能vnf所映射到的物理节点间,选取前3条最短路径作为候选路径集合,分别在每条候选路径上使用首次命中firstfit算法为虚拟链路分配频隙,得到3个路由和频谱分配方案,选取使最大频隙号增加最小的一个路由和频谱分配方案,映射当前虚拟链路;

(8f)判断所有的虚拟链路是否全部映射完成,若是,则执行步骤(8g),否则,执行步骤(8a);

(8g)当前业务请求所有虚拟链路的映射完成;

(9)判断是否已选取待处理业务请求集合中的所有业务请求,若是,则执行步骤(10),否则,执行步骤(2);

(10)完成所有业务请求部署。

与现有技术相比,本发明具有以下优点:

第一,本发明采用了依赖性虚拟网络功能对vnfspair部署方法,用来完成业务请求中所有依赖性虚拟网络功能对vnfspair的映射,克服了现有技术中无法处理多个虚拟网络功能vnf间存在依赖性的业务请求,应用范围受限的问题,使得本发明能够为存在依赖性虚拟网络功能对vnfspair的业务请求提供部署方案,具有更加符合实际场景,应用范围更广的优点。

第二,本发明分别采用了两种方法,即依赖性虚拟网络功能对vnfspair部署方法、单个虚拟网络功能vnf部署方法,用来同时完成虚拟网络功能vnf的映射和服务功能链sfc的构建,克服了现有技术中不能根据底层物理网络状态调整服务功能链sfc中虚拟网络功能vnf的顺序,无法有效降低业务部署成本,以及分步处理服务功能链sfc构建和映射两个阶段的方法可能无法求得整个问题全局最优的解决方案,导致业务部署成本过高的问题,使得本发明能够节约业务部署成本。

第三,由于本发明采用了选取可重用虚拟网络功能vnf集合最大的候选路径,作为业务部署路径的方法,用来提高重用虚拟网络功能vnf的数目,克服了现有技术中由于仅仅考虑了链路带宽资源的成本,而忽略了虚拟网络功能vnf的成本,导致不能减少部署的虚拟网络功能vnf数量,部署业务时需要过多的虚拟网络功能vnf的问题,使得本发明能够减少部署的虚拟网络功能vnf数,减少业务部署成本。

附图说明

图1是本发明的流程图;

图2是本发明选取业务部署路径步骤的示意图;

图3是本发明依据依赖性虚拟网络功能对vnfspair部署方法映射所有依赖性虚拟网络功能对vnfspair的示意图;

图4是本发明映射虚拟链路步骤的示意图;

图5是本发明仿真采用的us-backbone网络拓扑示意图;

图6是本发明仿真中三种方法在不同业务请求数下优化最大频隙号的结果对比图;

图7是本发明仿真中三种方法在不同业务请求数下优化网络中部署的虚拟网络功能vnf数的结果对比图;

图8是本发明仿真中三种方法在不同业务请求数下优化业务部署成本的结果对比图。

具体实施方式

下面结合附图对本发明作进一步详细描述。

参照附图1,对本发明的具体步骤详细描述如下。

步骤1,预处理物理网络信息。

从物理网络的节点中筛选出连接有服务器的所有节点,将其作为映射虚拟网络功能vnf的服务器节点集合。

采用k最短路算法,计算物理网络中每两节点间的前3条最短路径。

所述的k最短路算法的具体步骤如下。

第1步,在物理网络中任意选取源宿两个节点。

第2步,利用迪杰斯特拉dijkstra算法,计算所选取的源宿节点间跳数最少的路径作为基准路径。

第3步,将基准路径上除最后一个节点之外的每个节点作为偏离节点,利用迪杰斯特拉dijkstra算法,计算每个偏离节点到终止节点之间,满足路径无环条件和路径非重复条件的跳数最少路径,将每条跳数最少路径分别与对应的基准路径子路径拼接在一起,构成候选路径集合;其中,所述基准路径子路径是指,基准路径的源宿节点间,从源节点依次经过其中间节点到偏离节点的路径;所述路径无环条件是指,跳数最少路径不能通过基准路径上从源节点到偏离节点之间的任何一个节点;所述路径非重复条件是指,从跳数最少路径上偏离节点出发的边不能与已找到的任何一条最短路径上从此偏离节点出发的边相同。

第4步,从候选路径集合中选取跳数最少的一条作为两节点间下一条最短路径,将其作为基准路径。

第5步,判断是否已获得两节点间前3条最短路径,若是,则执行第6步,否则,执行第3步。

第6步,判断是否已获得物理网络中每组源宿两节点间的前3条最短路径,若是,执行第8步,否则,执行第7步。

第7步,在物理网络中任意选取未选取过的源宿两个节点后执行第2步。

第8步,得到物理网络中每组源宿两节点间的前3条最短路径。

步骤2,从待处理业务请求集合中选取一个业务请求。

步骤3,选取业务部署路径。

从物理网络中每两个节点间的前3条最短路径中,选取业务请求源宿两节点间前3条最短路径作为候选路径,分别计算每条候选路径上已有的虚拟网络功能vnf集合与业务需求的虚拟网络功能vnf集合的交集intersection,交集intersection中为可重用虚拟网络功能vnf集合。

选取可重用虚拟网络功能vnf集合最大的候选路径,作为业务部署路径。

下面结合附图2,对本发明选取业务部署路径过程进行详细说明。

业务请求的虚拟网络功能vnf集合是{vnf1,vnf6,vnf8},源宿节点分别为节点3和节点6。附图2所示物理网络有节点1至节点8共8个节点,其中节点1,节点3,节点4和节点6分别连接有一个服务器。物理网络中已存在的虚拟网络功能vnf由矩形框表示,虚拟网络功能vnf分别为节点1上的vnf2、节点3上的vnf1、节点4上的vnf7和vnf8、节点6上的vnf6。业务请求源宿节点间的前3条最短路径由图2中的实线箭头和虚线箭头表示,3条最短路径分别为:节点3->节点1->节点2->节点6、节点3->节点4->节点2->节点6、节点3->节点5->节点7->节点6。

第1条路径(节点3->节点1->节点2->节点6)上已有的虚拟网络功能vnf集合为{vnf1,vnf2,vnf6},与业务请求的虚拟网络功能vnf集合的交集intersection为{vnf1};第2条路径(节点3->节点4->节点2->节点6)上已有的虚拟网络功能vnf集合为{vnf1,vnf6,vnf7,vnf8},与业务请求的虚拟网络功能vnf集合的交集intersection为{vnf1,vnf6,vnf8};第3条路径(节点3->节点5->节点7->节点6)上已有的虚拟网络功能vnf集合为{vnf1,vnf6},与业务请求的虚拟网络功能vnf集合的交集intersection为{vnf1}。第2条路径(节点3->节点4->节点2->节点6)所得交集intersection最大,在此路径上能够重用最多的虚拟网络功能vnf,所以选择第2条路径(节点3->节点4->节点2->节点6)作为业务部署路径,用附图2中的实线箭头表示所选路径。

步骤4,判断业务请求中待映射的虚拟网络功能vnf集合中是否存在依赖性虚拟网络功能对vnfspair,若是,则执行步骤5,否则,执行步骤6。

所述依赖性虚拟网络功能对vnfspair是指:一个虚拟网络功能vnf与必须在其之后执行的另一个虚拟网络功能vnf构成一个依赖性虚拟网络功能对vnfspair,其中在前执行的虚拟网络功能vnf叫做被依赖虚拟网络功能vnf,在后执行的虚拟网络功能vnf叫做依赖虚拟网络功能vnf。

步骤5,依据依赖性虚拟网络功能对vnfspair部署方法映射所有依赖性虚拟网络功能对vnfspair。

步骤5.1,从业务请求中待映射的虚拟网络功能vnf集合中任意选取一个依赖性虚拟网络功能对vnfspair,将选取的虚拟网络功能对vnfspair从业务需求的虚拟网络功能vnf集合中剔除。

步骤5.2,判断业务部署路径上是否已存在虚拟网络功能对vnfspair中的两个虚拟网络功能vnf,若是,则执行步骤5.3,否则,执行步骤5.4。

步骤5.3,使用最多重用两个的依赖性虚拟网络功能对vnfspair映射方法,在业务部署路径上映射此虚拟网络功能对vnfspair后执行步骤5.7。

所述最多重用两个的依赖性虚拟网络功能对vnfspair映射方法的具体步骤如下。

第1步,判断依赖性虚拟网络功能对vnfspair中,依赖虚拟网络功能vnf在业务部署路径上的位置是否在被依赖虚拟网络功能vnf之前,若是,则执行第2步,否则,执行第11步。

第2步,判断是否满足分别映射且重用被依赖虚拟网络功能vnf条件,若是,则执行第3步,否则,执行第4步;其中,所述分别映射且重用被依赖虚拟网络功能vnf条件是指:被依赖虚拟网络功能vnf的数据速率改变因子大于1且依赖虚拟网络功能vnf的数据速率改变因子大于1。

所述虚拟网络功能vnf的数据速率改变因子是指:流出虚拟网络功能vnf的虚拟链路上的业务数据速率与流入虚拟网络功能vnf的虚拟链路上的业务数据速率之比。

第3步,将被依赖虚拟网络功能vnf映射到业务部署路径上存在此被依赖虚拟网络功能vnf的服务器节点上,重用被依赖虚拟网络功能vnf,将依赖虚拟网络功能vnf映射在业务部署路径最末端的服务器节点上后执行第12步。

第4步,判断是否满足分别映射且重用依赖虚拟网络功能vnf条件,若是,则执行第5步,否则,执行第6步;其中,所述分别映射且重用依赖虚拟网络功能vnf条件是指:被依赖虚拟网络功能vnf的数据速率改变因子小于或等于1且依赖虚拟网络功能vnf的数据速率改变因子小于或等于1。

第5步,将依赖虚拟网络功能vnf映射到业务部署路径上存在此依赖虚拟网络功能vnf的服务器节点上,重用依赖虚拟网络功能vnf,将被依赖虚拟网络功能vnf映射在业务部署路径最前端的服务器节点上后执行第12步。

第6步,判断是否满足同时映射且重用依赖虚拟网络功能vnf条件,若是,则执行第7步,否则,执行第8步;其中,所述同时映射且重用依赖虚拟网络功能vnf条件是指:被依赖虚拟网络功能vnf的数据速率改变因子大于1且依赖虚拟网络功能vnf的数据速率改变因子小于或等于1且被依赖虚拟网络功能vnf的数据速率改变因子乘上依赖虚拟网络功能vnf的数据速率改变因子小于或等于1。

第7步,将两个虚拟网络功能vnf同时映射到业务部署路径上依赖虚拟网络功能vnf所在服务器节点,重用依赖虚拟网络功能vnf后执行第12步。

第8步,判断是否满足同时映射且重用被依赖虚拟网络功能vnf条件,若是,则执行第9步,否则,执行第10步;其中,所述同时映射且重用被依赖虚拟网络功能vnf条件是指:被依赖虚拟网络功能vnf的数据速率改变因子大于1且依赖虚拟网络功能vnf的数据速率改变因子小于或等于1且被依赖虚拟网络功能vnf的数据速率改变因子乘上依赖虚拟网络功能vnf的数据速率改变因子大于1。

第9步,将两个虚拟网络功能vnf同时映射到业务部署路径上被依赖虚拟网络功能vnf所在服务器节点上,重用被依赖虚拟网络功能vnf后执行第12步。

第10步,将被依赖虚拟网络功能vnf映射到业务部署路径上此被依赖虚拟网络功能vnf所在服务器节点上,重用此被依赖虚拟网络功能vnf,将依赖虚拟网络功能vnf映射到业务部署路径最末端的服务器节点上后执行第12步。

第11步,将被依赖虚拟网络功能vnf映射到业务部署路径上存在此被依赖虚拟网络功能vnf的服务器节点上,将依赖虚拟网络功能vnf映射到业务部署路径上存在此依赖虚拟网络功能vnf的服务器节点上,重用这两个虚拟网络功能vnf。

第12步,完成在业务部署路径上映射此虚拟网络功能对vnfspair。

步骤5.4,判断是否有业务部署路径上仅存在虚拟网络功能对vnfspair中一个虚拟网络功能vnf,若是,则执行步骤5.5,否则,执行步骤5.6。

步骤5.5,使用最多重用一个的依赖性虚拟网络功能对vnfspair映射方法,在业务部署路径上映射此虚拟网络功能对vnfspair后执行步骤5.7。

所述最多重用一个的依赖性虚拟网络功能对vnfspair映射方法的具体步骤如下。

第1步,判断业务部署路径上是否存在虚拟网络功能对vnfspair中的被依赖虚拟网络功能vnf,若是,则执行第2步,否则,执行第5步。

第2步,判断依赖虚拟网络功能vnf的数据速率改变因子是否小于或等于1,若是,则执行第3步,否则,执行第4步。

第3步,将被依赖虚拟网络功能vnf映射到业务部署路径上存在此被依赖虚拟网络功能vnf的服务器节点上,重用此被依赖虚拟网络功能vnf,将依赖虚拟网络功能vnf映射在业务部署路径上被依赖虚拟网络功能vnf所在的服务器节点上后执行第8步。

第4步,将被依赖虚拟网络功能vnf映射到业务部署路径上存在此被依赖虚拟网络功能vnf的服务器节点上,重用此被依赖虚拟网络功能vnf,将依赖虚拟网络功能vnf映射在业务部署路径最末端的服务器节点上后执行第8步。

第5步,判断被依赖虚拟网络功能vnf的数据速率改变因子是否小于或等于1,若是,则执行第6步,否则,执行第7步。

第6步,将依赖虚拟网络功能vnf映射到业务部署路径上存在此依赖虚拟网络功能vnf的服务器节点上,重用此依赖虚拟网络功能vnf,将被依赖虚拟网络功能vnf映射在业务部署路径最前端的服务器节点上后执行第8步。

第7步,将依赖虚拟网络功能vnf映射到业务部署路径上存在此依赖虚拟网络功能vnf的服务器节点上,重用此依赖虚拟网络功能vnf,将被依赖虚拟网络功能vnf映射在业务部署路径上依赖虚拟网络功能vnf所在的服务器节点上。

第8步,完成在业务部署路径上映射此虚拟网络功能对vnfspair。

步骤5.6,使用无法重用的依赖性虚拟网络功能对vnfspair映射方法,在业务部署路径上映射此虚拟网络功能对vnfspair。

所述无法重用的依赖性虚拟网络功能对vnfspair映射方法的具体步骤如下:

第1步,判断是否满足同时映射到路径前端条件,若是,则执行第2步,否则,执行第3步;其中,所述同时映射到路径前端条件是指:被依赖虚拟网络功能vnf的数据速率改变因子大于1且依赖虚拟网络功能vnf的数据速率改变因子小于或等于1且被依赖虚拟网络功能vnf的数据速率改变因子乘上依赖虚拟网络功能vnf的数据速率改变因子小于或等于1。

第2步,将两个虚拟网络功能vnf同时映射到业务部署路径最前端的服务器节点上后执行第6步。

第3步,判断是否满足同时映射到路径末端条件,若是,则执行第4步,否则,执行第5步;其中,所述同时映射到路径末端条件是指:被依赖虚拟网络功能vnf的数据速率改变因子大于1且依赖虚拟网络功能vnf的数据速率改变因子小于或等于1且被依赖虚拟网络功能vnf的数据速率改变因子乘上依赖虚拟网络功能vnf的数据速率改变因子大于1。

第4步,将两个虚拟网络功能vnf同时映射到业务部署路径最末端的服务器节点上后执行第6步。

第5步,将被依赖虚拟网络功能vnf映射在业务部署路径最前端的服务器节点上,将依赖虚拟网络功能vnf映射在业务部署路径最末端的服务器节点上。

第6步,完成在业务部署路径上映射此虚拟网络功能对vnfspair。

步骤5.7,判断业务请求中待映射的虚拟网络功能vnf集合中是否存在依赖性虚拟网络功能对vnfspair,若是,则执行步骤5.1,否则,完成业务请求中待映射的虚拟网络功能vnf集合中所有依赖性虚拟网络功能对vnfspair的映射,执行步骤6。

下面结合附图3,对本发明依赖性虚拟网络功能对vnfspair过程进行详细说明。

需要映射的依赖性虚拟网络功能对vnfspair为vnf6和vnf8,vnf6必须在vnf8之前执行,vnf6和vnf8的数据速率改变因子分别为δ6=1.3,δ8=0.7。附图3所示为所选业务部署路径:节点3->节点4->节点2->节点6,其中节点3,节点4和节点6分别连接有一个服务器。箭头表示业务流经物理节点的顺序。物理网络中已存在的虚拟网络功能vnf由矩形框表示,已存在的虚拟网络功能vnf分别为节点3上的vnf1、节点4上的vnf7和vnf8、节点6上的vnf6。

在所选业务部署路径(节点3->节点4->节点2->节点6)上,节点6和节点4上分别已经部署有vnf6和vnf8。由于vnf6在业务部署路径上的位置处于vnf8之后,如果为了重用vnf6和vnf8,将业务需求的vnf6映射在节点6上,将vnf8映射在节点4上,则会导致vnf6在vnf8之后执行,无法满足虚拟网络功能vnf间的依赖性关系。因为δ6=1.3>1,δ8=0.7≤1,所以应将减小数据速率的vnf6尽可能映射到路径的末端,将增大数据速率的vnf8尽可能映射到路径的前端,以减少虚拟链路消耗的带宽频谱资源,又由于vnf6必须在vnf8之前执行,所以应将vnf6和vnf8映射到业务部署路径上同一个服务器节点中。为了重用业务部署路径上已存在的虚拟网络功能vnf,应将vnf6和vnf8同时映射到节点6或节点4上,又由于δ6*δ8=0.91≤1,所以选取靠近路径前端的节点4作为映射节点。最终将vnf6和vnf8同时映射到节点4上,此时能够重用vnf8。附图3中椭圆框表示依赖性虚拟网络功能对vnfspair映射结果,其中带阴影的椭圆框表示可以重用已有的虚拟网络功能vnf。

步骤6,判断业务请求中待映射的虚拟网络功能vnf集合中是否为空,若是,则完成服务功能链sfc的构建和虚拟网络功能vnf的映射,执行步骤8,否则,执行步骤7。

步骤7,依据单个虚拟网络功能vnf部署方法映射所有剩余的虚拟网络功能vnf。

步骤7.1,从业务需求的虚拟网络功能vnf集合中任意取出一个虚拟网络功能vnf,判断业务部署路径上是否存在此虚拟网络功能vnf,若是,执行步骤7.2,否则执行步骤7.3。

步骤7.2,将虚拟网络功能vnf映射到业务部署路径上存在此虚拟网络功能vnf的服务器节点上,重用此虚拟网络功能vnf后执行步骤7.4。

步骤7.3,若虚拟网络功能vnf的数据速率改变因子小于或等于1,则将其映射在最靠近路径前端的服务器节点上,否则,将其映射在最靠近路径末端的服务器节点上。

所述虚拟网络功能vnf的数据速率改变因子是指:流出虚拟网络功能vnf的虚拟链路上的业务数据速率与流入虚拟网络功能vnf的虚拟链路上的业务数据速率之比。

步骤7.4,判断业务需求的虚拟网络功能vnf集合中是否为空,若是,则所有虚拟网络功能vnf映射结束的同时也完成了服务功能链sfc的构建,执行步骤8,否则,执行步骤7.1。

步骤8,映射虚拟链路。

步骤8.1,从待映射的虚拟链路集合中取出下一条虚拟链路,判断其两端的虚拟网络功能vnf是否映射到同一个节点上,若是,执行步骤8.2,否则,执行步骤8.4。

步骤8.2,无需映射当前虚拟链路。

步骤8.3,判断所有的虚拟链路是否全部映射完成,若是,则执行步骤8.7,否则,执行步骤8.1。

步骤8.4,判断当前虚拟链路是否为第一条虚拟链路,若是,则当前虚拟链路上的频隙数由业务请求信息给出,否则,当前虚拟链路上的频隙数为前一条虚拟链路上的频隙数乘上当前虚拟链路起始端虚拟网络功能vnf的数据速率改变因子。

所述虚拟网络功能vnf的数据速率改变因子是指:流出虚拟网络功能vnf的虚拟链路上的业务数据速率与流入虚拟网络功能vnf的虚拟链路上的业务数据速率之比。

步骤8.5,在当前虚拟链路两端虚拟网络功能vnf所映射到的物理节点间,选取前3条最短路径作为候选路径集合,分别在每条候选路径上使用首次命中firstfit算法为虚拟链路分配频隙,得到3个路由和频谱分配方案,选取使最大频隙号增加最小的一个路由和频谱分配方案,映射当前虚拟链路。

所述首次命中firstfit算法是指:在候选路径上,查找等于虚拟链路上频隙数的第一组连续空余频隙,将候选路径上的这些空余频隙分配给虚拟链路。

步骤8.6,判断所有的虚拟链路是否全部映射完成,若是,则执行步骤8.7,否则,执行步骤8.1。

步骤8.7,当前业务请求所有虚拟链路的映射完成。

下面结合附图4,对本发明虚拟链路映射过程进行详细说明。

附图4中的物理网络包含节点a至节点e共5个节点。虚拟链路需要的频隙数为2个频隙,虚拟链路映射到节点c和节点d间的物理路径上。如附图4所示,节点c和节点d两节点间的前3条最短路径分别为:节点c->节点d、节点c->节点e->节点d、节点c->节点a->节点b->节点d。其中每条物理链路上的频隙数占用情况由矩形框表示,其中灰色矩形框表示链路上已被占用的频隙,白色矩形框表示链路上的空闲频隙。根据首次命中firstfit算法得到每条路径上为虚拟链路分配的频隙用黑色圆点标出,其中在路径节点c->节点d上为虚拟链路分配第8个和第9个频隙,分配结束后最大频隙号是9;在路径节点c->节点e->节点d上为虚拟链路分配第4个和第5个频隙,分配结束后最大频隙号是7;在路径节点c->节点a->节点b->节点d上为虚拟链路分配第8个和第9个频隙,分配结束后最大频隙号是9。故选取使网络中最大频隙号增加最少的方案:将虚拟链路映射到路径节点c->节点e->节点d上,并为其分配第4个和第5个频隙。

步骤9,判断是否已选取待处理业务请求集合中的所有业务请求,若是,则执行步骤10,否则,执行步骤2。

步骤10,完成所有业务请求部署。

下面通过对本发明进行仿真,进一步验证发明方法的优化效果。实验仿真具体包括:

1.仿真条件。

使用附图5所示的28个节点的usbackbone拓扑进行仿真。仿真参数设置如下:在物理网络中随机选择14个节点作为连接有服务器的节点;共有8种类型的虚拟网络功能vnf,类型1-4的虚拟网络功能vnf的数据速率改变因子在区间[0.5,1]随机选取,其余类型虚拟网络功能vnf的数据速率改变因子在区间[1,2]中随机选取;业务请求初始频隙数在区间[4,8]中随机选取;每条光纤链路容纳716个频隙;另外,随机选取2组依赖性虚拟网络功能对vnfspair。

进行30次实验并计算所有结果的平均值,在每次实验中,业务请求的数量从100变化到600,每个业务请求最多需要3种类型的虚拟网络功能vnf。

2.仿真内容。

为了验证效果,本发明的仿真实验有三个,即采用本发明的方法以及两个现有技术(基于最长公共子序列lcs的算法和分步建链映射算法),分别优化以下3个参数。该3个参数为:物理网络中所有光纤链路的最大频隙号、物理网络中虚拟网络功能vnf部署总数和业务部署成本。其中,业务部署成本定义为:在上式中,第1项为归一化的最大频隙号,第2项为归一化的虚拟网络功能vnf部署总数。式中,fmax表示网络所有光纤链路中被占用的最大频隙号,f=716为每条光纤链路上的总频隙数,|v|=28和|t|=8分别表示网络中总的节点数目和虚拟网络功能vnf种类数。hm,j是一个布尔变量,如果节点m上部署有第j种类型的虚拟网络功能vnf,则为1,否则为0。在仿真中,将式中的权重参数设为α=β=0.5,表示将链路频谱资源和部署的虚拟网络功能vnf总数视为同等重要。

基于最长公共子序列lcs的算法是wenjianfang、mengluzeng、xiaheliu、weilu、zuqingzhu在其发表的论文“jointspectrumanditresourceallocationforefficientvnfservicechainingininter-datacenterelasticopticalnetworks”(ieeecommunicationsletters,vol.20,no.8,aug.2016,pp.1539-1542)中公开的服务功能链sfc映射方法。分步建链映射算法是将虚拟网络功能vnf按照其数据速率改变因子升序排列,来构建服务功能链sfc,然后调整不满足依赖性关系的虚拟网络功能vnf的次序,接着使用基于最长公共子序列lcs的算法将服务功能链sfc映射到物理网络。

3.仿真结果分析。

仿真结果在附图6、附图7和附图8中给出。附图6是三种方法在不同业务请求数下优化最大频隙号的结果对比图,附图7是三种方法在不同业务请求数下优化网络中部署的虚拟网络功能vnf数的结果对比图,附图8是三种方法在不同业务请求数下优化业务部署成本的结果对比图。在附图6至附图8中,横坐标均表示业务请求数,纵坐标分别表示最大频隙号、网络中部署的虚拟网络功能vnf数和业务部署成本,斜线矩形框表示本发明方法的结果,灰色矩形框表示基于最长公共子序列lcs的算法的结果,白色矩形框表示分步建链映射算法的结果。

从附图6中可以看出分步建链映射算法得到最低的最大频隙号,其次是本发明方法,基于最长公共子序列lcs的算法得到的最大频隙号是最高的。这是由于在构建服务功能链sfc时,分步建链映射算法按照数据速率改变因子升序排列虚拟网络功能vnf,使减小数据速率的虚拟网络功能vnf位于服务功能链sfc前端,使增大数据速率的虚拟网络功能vnf位于服务功能链sfc末端,从而使虚拟链路的频谱资源消耗最低。而本发明方法优先考虑重用尽可能多的虚拟网络功能vnf,没有按照数据速率改变因子升序排列虚拟网络功能vnf的方式构建服务功能链sfc,结果本发明方法在最大频隙号方面的表现略差于分步建链映射算法(最坏情况下为2%)。在基于最长公共子序列lcs的算法中,由于没有针对服务功能链sfc构建阶段进行优化,与另外两个算法相比基于最长公共子序列lcs的算法的频谱资源消耗较高,在最大频隙号方面性能较差。

在附图7中,由于本发明方法在构建和映射服务功能链sfc时尽可能多地重用虚拟网络功能vnf,所以在部署的虚拟网络功能vnf数上获得最佳性能。由于另外两个算法仅仅在服务功能链sfc映射时考虑重用虚拟网络功能vnf,在构建服务功能链sfc时不考虑虚拟网络功能vnf的重用,所以在部署的虚拟网络功能vnf数方面比本发明方法差。本发明方法得到的部署的虚拟网络功能vnf数分别比基于最长公共子序列lcs的算法和分步建链映射算法得到的部署的虚拟网络功能vnf数少11.1%-14.2%和15.2%-20.7%。

在附图8中,尽管分步建链映射算法在最大频隙号方面性能最好,但由于其在部署的虚拟网络功能vnf总数方面性能很差,从而导致分步建链映射算法的业务部署成本最高。由于本发明方法使用协同式处理服务功能链sfc构建和映射两个阶段的方法,在构建和映射服务功能链sfc的过程中同时考虑了尽可能减少虚拟链路频谱资源消耗和部署的虚拟网络功能vnf数目,从而能够使用最少的成本部署业务请求。仿真结果表明,本发明方法的业务部署成本分别比基于最长公共子序列lcs的算法和分步建链映射算法低7.36%-9.29%和7.26%-13.16%。

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