基于粒子群优化算法的服务功能链SFC映射方法

文档序号:30495000发布日期:2022-06-22 03:52阅读:262来源:国知局
基于粒子群优化算法的服务功能链SFC映射方法
基于粒子群优化算法的服务功能链sfc映射方法
技术领域
1.本发明属于通信技术领域,更进一步涉及网络通信技术领域中的一种基于粒子群优化算法的服务功能链sfc映射方法。本发明可以在面向网络功能虚拟化nfv(network function virtualization)的弹性光网络中有效地映射服务功能链sfc(service function chain),更高效地降低网络资源消耗。


背景技术:

2.nfv技术通过对软硬件解耦,将处理数据包的网络功能从传统硬件映射到运行在诸如x86架构的通用服务器上,运行在服务器上的网络功能称为虚拟网络功能vnf(virtual network function),每个vnf都可以被灵活部署,具有弹性缩扩的特点。在nfv场景中,多个vnf按照一个特定的顺序连接构成sfc以满足网络服务需求。传统的光网络资源分配粒度过大,网络资源利用率低,灵活性差,弹性光网络可根据用户需求以更小的频谱粒度适配带宽资源。为实现弹性光网络资源的共享,提高网络资源利用率,需要引入nfv技术,促使面向nfv的弹性光网络能更加灵活地调配网络资源。
3.ma wenrui等研究者在其发表的论文“placing traffic-changing and partially-ordered nfv middleboxes via sdn”(ieee transactions on network and service management.2019,16(04):1303-1307)中公开了一种基于vnf带宽改变因子的服务功能链sfc映射方法。该方法的具体步骤是,第一步:将业务请求中的vnf按照其带宽改变因子升序排列来构建服务功能链sfc;第二步:按照最小最先最大最后lfgl(least-first-greatest-last)规则在候选路径上部署vnf,即带宽改变因子小的vnf部署在路径前端,带宽改变因子大的vnf部署在路径后端;第三步:依次映射vnf间的虚拟链路以完成sfc映射。该方法存在的不足之处是,vnf带宽改变因子只体现vnf对网络带宽的影响,不能够完全体现出对计算和存储资源所产生的影响,使得算法的部分映射结果在实际场景中无法映射成功,降低业务请求的通过率。
4.西安电子科技大学在其申请的专利文献“基于vnf资源改变矩阵的sfc映射的方法”(公开号cn113965616a,申请号2110xd0909)中公开了一种基于vnf资源改变矩阵的sfc映射的方法。该方法的具体步骤是,第一步:读取网络信息与业务请求信息,在业务源宿节点间前k条跳数最少的路径中选择能够重用最多vnf的路径作为业务部署路径;第二步:在满足vnf间的依赖性关系的前提下,将资源改变因子小的vnf映射到所选路径前端,将资源改变因子大的vnf映射到所选路径末端;第三步:使用基于k最短路径算法和首次命中算法的路由和频谱分配策略映射虚拟链路。该方法存在的不足之处是,所提算法基于贪心策略映射sfc,无法给出最佳的sfc映射方案,增加网络资源的开销。


技术实现要素:

5.本发明的目的在于针对上述现有技术的不足,提出一种基于粒子群优化算法的服务功能链sfc映射方法。用于解决在映射sfc时,仅考虑vnf影响带宽资源消耗造成sfc请求
通过率降低,以及使用贪心策略映射sfc请求造成网络资源消耗过大的问题。
6.实现本发明目的的思路是,本发明选择部署路径上资源容量大于所选的vnf的资源需求的服务器节点,组成所选vnf的候选节点集合。根据所选vnf的节点资源改变因子和带宽资源改变因子计算出所选vnf的资源改变因子,用来综合反映vnf对节点资源和带宽资源消耗的影响。然后基于所选vnf的资源改变因子和候选节点的资源容量计算候选节点的选择概率,vnf可被部署在与选择概率对应的候选节点上。由于本发明在vnf的部署节点位置时,综合考虑了vnf对节点资源和带宽资源的影响,由此解决现有技术仅考虑vnf影响带宽资源消耗造成业务请求通过率降低的问题。本发明在获得vnf预部署方案后,计算每种vnf预部署方案的节点资源消耗和最大频隙号,进而计算出每种vnf预部署方案的归一化后网络资源消耗。然后使用粒子群优化算法针对vnf预部署方案进行更新迭代,降低网络资源消耗,由此解决现有技术使用贪心策略映射sfc请求造成网络资源消耗过大的问题。
7.本发明包括以下步骤:
8.步骤1,生成vnf资源改变矩阵:
9.生成一个行2列的虚拟网络功能vnf资源改变矩阵,矩阵中的每行代表vnf的类别,第1列和第2列分别代表vnf的节点资源改变因子和带宽资源改变因子;表示vnf资源种类的总数
10.步骤2,从所有sfc请求中选取一个待处理的sfc请求;
11.步骤3,选择所选sfc请求的部署路径:
12.利用ksp算法,计算所选sfc请求的源、目的节点之间的前条最短路径,选取满足节点资源约束条件的最短路径为部署路径;
13.步骤4,部署虚拟网络功能vnf:
14.步骤4.1,从所选sfc请求的vnf集合中选取一个待处理的vnf;
15.步骤4.2,选择部署路径上资源容量大于所选vnf的资源需求的服务器节点,组成所选vnf的候选节点集合;
16.步骤4.3,按照下式,计算所选vnf的候选节点集合中每个候选节点的选择概率:
17.其中,表示所选vnf的候选节点集合中第个候选节点的选择概率,表示所选vnf的候选节点集合中第个候选节点的资源容量,表示求和操作,表示所选vnf的候选节点集合中第个候选节点的资源容量,,表示候选节点集合中候选节点的总数,表示所选vnf的节点资源改变因子,表示所选vnf的带宽资源改变因子,和是两个权重系数,,且;
18.步骤4.4,利用轮盘赌算法,从所选vnf的候选节点集合中选出其中一个节点作为所选vnf的节点部署位置;
19.步骤4.5,判断是否选完所选sfc请求的vnf集合中所有vnf,若是,则执行步骤5,否则,执行步骤4.1;
20.步骤5,映射虚拟链路:
21.步骤5.1,将所选sfc请求的vnf集合中相邻vnf间的虚拟链路,依次加入到待映射虚拟链路集合中;
22.步骤5.2,从待映射虚拟链路集合中依次选取一条未处理的虚拟链路;
23.步骤5.3,利用ksp算法,计算所选的虚拟链路两端的vnf节点部署位置间的前条最短路径,组成候选路径集合;
24.步骤5.4,利用首次命中算法,在每条候选路径上为所选的虚拟链路分配频隙,选取使最大频隙号增加最小的方案,映射所选的虚拟链路;
25.步骤5.5,判断待映射虚拟链路集合中是否映射完所有的虚拟链路,若是,则执行步骤6,否则,执行步骤5.2;
26.步骤6,判断是否处理完sfc请求中所有待处理的sfc请求,若是,则得到所有sfc请求的vnf节点部署位置后执行步骤7,否则,执行步骤2;
27.步骤7,将所有sfc请求的vnf节点部署位置作为一种sfc映射方案;
28.步骤8,重复执行步骤2至步骤7生成vnf节点部署位置不同的m种sfc映射方案,m的取值为在[50,150]范围内选取的一个正整数;
[0029]
步骤9,更新sfc映射方案:
[0030]
步骤9.1,从m种sfc映射方案中选取一个待更新的sfc映射方案;
[0031]
步骤9.2,按照下述的粒子群优化算法,更新所选sfc映射方案中每个vnf节点部署位置:
[0032]
其中,表示所选sfc映射方案中更新后的第个vnf节点部署位置,表示所选sfc映射方案中更新前的第个vnf节点部署位置,表示vnf节点部署位置调整操作,表示所选sfc映射方案中更新前第个vnf节点部署位置对应的调整方案,表示调整方案更新操作,表示所选sfc映射方案在更新前得到的归一化后网络资源消耗最小的sfc映射方案中第个vnf节点部署位置,表示两种vnf节点部署位置差异计算操作,表示所有sfc映射方案在更新前得到的归一化后网络资源消耗最小的sfc映射方案中第个vnf节点部署位置,表示粒子群优化算法中的惯性权重,表示粒子群优化算法中的认知权重,表示粒子群优化算法中的社会权重,其中,,,且;
[0033]
步骤9.3,采用与步骤5相同的方法,映射所选sfc映射方案中更新后vnf每个节点部署位置对应的虚拟链路;
[0034]
步骤9.4,计算所选sfc映射方案更新后节点资源消耗总量和最大频隙号;
[0035]
步骤9.5,判断是否选取完sfc映射方案中所有待更新的sfc映射方案,若是,执行步骤10,否则,执行步骤9.1;
[0036]
步骤10,判断所有sfc映射方案中每个vnf节点部署位置是否相同,若是,得到所有sfc请求映射方案后执行步骤11,否则,执行步骤9;
[0037]
步骤11,输出sfc映射方案。与现有技术相比,本发明的优点如下:
[0038]
第1,由于本发明通过计算vnf的候选节点集合中每个候选节点的选择概率,利用每个候选节点的选择概率选定vnf的部署节点,克服了现有技术仅考虑vnf影响带宽资源消耗造成sfc请求通过率降低的缺陷,使得本发明在为vnf选择部署节点时,能够综合考虑了vnf对节点资源和带宽资源消耗产生的影响,在实际情况下能显著提高sfc请求的通过率,改善用户的服务体验。
[0039]
第2,由于本发明利用粒子群优化算法更新每个sfc映射方案,克服现有技术使用贪心策略映射sfc请求造成网络资源消耗过大的不足,使得本发明能够对sfc映射方案中的vnf节点部署位置进行整体更新,显著降低了网络资源消耗,减少运营商的资源分配成本。
附图说明
[0040]
图1是本发明的流程图;
[0041]
图2是本发明的虚拟链路映射图;
[0042]
图3是本发明的仿真图。
具体实施方式
[0043]
下面结合附图和具体实施例,对本发明做进一步详细的描述,但本发明的实施方式不限于此。
[0044]
参照图1和实施例,对本发明实现的具体步骤做进一步的描述。
[0045]
步骤1,生成vnf资源改变矩阵。
[0046]
生成一个n行2列的vnf资源改变矩阵,vnf资源改变矩阵的行代表vnf的类别,第1列和第2列分别代表该类vnf的节点资源改变因子和带宽资源改变因子,所述节点资源改变因子和带宽资源改变因子是从网络功能虚拟化nfv的网络服务描述符文件提取的。
[0047]
vnf资源改变矩阵的第i行代表第j类vnf,i=j。该vnf资源改变矩阵第1列和第2列分别描述第i行所代表的vnf的节点资源改变因子和带宽资源改变因子,其中,1≤i≤n,n表示vnf的种类总数。
[0048]
vnf资源改变矩阵中每行第1列的元素γi为该行所代表的vnf的节点资源改变因子,γi的取值等于节点资源实际消耗与节点资源初始请求量之比;vnf资源改变矩阵中每行第2列的元素δi为该行所代表的vnf的带宽资源改变因子,δi的取值等于流出与流入vnf的带宽之比。
[0049]
步骤2,从所有sfc请求中选取一个待处理的sfc请求。
[0050]
步骤3,选择所选sfc请求的部署路径。
[0051]
利用k最短路径ksp(k shortest path)算法,计算所选sfc请求的源、目的节点之间所有路径中前k条最短路径,组成业务候选路径集合,从业务候选路径集合中选取满足节点资源约束条件的最短路径为部署路径。所述节点资源约束条件是指,部署路径上所有服务器节点的资源容量大于或者等于所选sfc请求中的资源需求;
[0052]
步骤4,映射虚拟网络功能vnf。
[0053]
第1步,从所选sfc请求的vnf集合中选取一个待处理的vnf;
[0054]
第2步,选择部署路径上资源容量大于所选vnf的资源需求的服务器节点,组成所选vnf的候选节点集合;
[0055]
第3步,按照下式,计算所选vnf的候选节点集合中每个候选节点的选择概率:
[0056][0057]
其中,w(n)表示所选vnf的候选节点集合中第n个候选节点的选择概率,c(n)表示所选vnf的候选节点集合中第n个候选节点的资源容量,∑表示求和操作,c(i)表示所选vnf的候选节点集合中第i个候选节点的资源容量,i=1,...,n,n表示候选节点集合中候选节点的总数,γj表示所选vnf的节点资源改变因子,δj表示所选vnf的带宽资源改变因子,α和β是两个权重系数,α≥0,β≥0且α+β=1;
[0058]
第4步,利用轮盘赌算法,从所选vnf的候选节点集合中选出其中一个节点作为所
选vnf的节点部署位置;
[0059]
第5步,判断是否选择完所选sfc请求的vnf集合中所有vnf,若是,执行步骤5,否则,执行本步骤的第1步。
[0060]
步骤5,映射虚拟链路。
[0061]
第1步,将所选sfc请求的vnf集合中相邻vnf间的虚拟链路,依次加入到待映射虚拟链路集合中;
[0062]
第2步,从待映射虚拟链路集合中依次选取一条未处理的虚拟链路;
[0063]
第3步,利用ksp算法,计算所选的虚拟链路两端的vnf节点部署位置间的前k条最短路径,组成候选路径集合;
[0064]
第4步,使用首次命中算法,在候选路径集合中的每条候选路径上为所选的虚拟链路分配频隙,分别得到l个路由和频隙分配方案,k=l,选取使最大频隙号增加最小的一个路由和频隙分配方案,并映射所选的虚拟链路。其中,首次命中算法是指:在候选路径上,查找等于虚拟链路的频隙数的第一组连续空余频隙,将候选路径上的这些空余频隙分配给虚拟链路;
[0065]
参照附图2,结合本发明的实施例对第4步详细阐述。虚拟链路两端的vnf部署在节点3和节点4,两节点间的前3条最短路径分别为:节点3-》节点4、节点3-》节点5-》节点4、节点3-》节点1-》节点2-》节点4。其中每条物理链路上的频隙数占用情况由矩形框表示,其中灰色矩形框表示已占用的频隙,白色矩形框表示空闲频隙。用黑色圆点标出使用首次命中算法得到每条路径上为虚拟链路分配的频隙,其中在节点3-》节点4的路径上为虚拟链路分配第8个和第9个频隙,分配结束后最大频隙号是9;在路径节点3-》节点5-》节点4上为虚拟链路分配第4个和第5个频隙,分配结束后最大频隙号是7;在路径节点3-》节点1-》节点2-》节点4上为虚拟链路分配第8个和第9个频隙,分配结束后最大频隙号是9。故选取使网络中最大频隙号增加最少的方案:将vnf2到vnf8间的虚拟链路映射到路径节点3-》节点5-》节点4上,并为其分配第4个和第5个频隙;
[0066]
第5步,判断待映射虚拟链路集合中是否映射完所有的虚拟链路,若是,则执行步骤6,否则,执行本步骤的第2步。
[0067]
步骤6,判断是否处理完sfc请求中所有待处理的sfc请求,若是,则得到所有sfc请求的vnf节点部署位置后执行步骤7,否则,执行步骤2。
[0068]
步骤7,将所有sfc请求的vnf节点部署位置作为一种sfc映射方案。
[0069]
步骤8,重复步骤2至步骤7生成vnf节点部署位置不同的m种sfc映射方案,m的取值为在[50,150]范围内选取的一个正整数。
[0070]
本发明的实施例是首先利用步骤2的第3步得到vnf候选节点集合中每个候选节点的选择概率,候选节点的选择概率越大,则vnf选择该候选节点作为vnf节点部署位置的可能性越大,再利用步骤2至步骤7直接得到70种sfc请求的vnf节点部署位置不同的sfc映射方案。
[0071]
步骤9,更新sfc映射方案。
[0072]
第1步,按照下式,计算所有sfc映射方案的归一化后网络资源消耗:
[0073]
[0074]
其中,u表示sfc映射方案的归一化后网络资源消耗,c表示sfc映射方案的归一化前节点资源消耗总量,c
total
表示归一化前的网络中的节点资源总量,b表示sfc映射方案的归一化前最大频隙号,b
total
表示归一化前的网络中总频隙号,m和n是两个权重系数,m≥0,n≥0且m+n=1;
[0075]
第2步,从所有sfc映射方案中选取一个待更新的sfc映射方案;
[0076]
第3步,按照下述的粒子群优化算法,更新所选sfc映射方案中每个vnf节点部署位置:
[0077][0078]
其中,x

l
表示更新后的所选sfc映射方案中第l个vnf节点部署位置,x
l
表示更新前的所选sfc映射方案中第l个vnf节点部署位置,表示vnf节点部署位置调整操作,v
l
表示与更新前的所选sfc映射方案中第l个vnf节点部署位置对应的调整方案,表示调整方案更新操作,y
l
表示所选sfc映射方案在更新前得到的归一化后网络资源消耗最小的sfc映射方案中第l个vnf节点部署位置,

表示两种vnf节点部署位置差异计算操作,z
l
表示所有sfc映射方案在更新前得到的归一化后网络资源消耗最小的sfc映射方案中第l个vnf节点部署位置,w表示粒子群优化算法中的惯性权重,c1表示粒子群优化算法中的认知权重,c2表示粒子群优化算法中的社会权重,其中,w≥0,c1≥0,c2≥0且w+c1+c2=1;
[0079]
结合本发明的实施例对操作、操作和

操作详细阐述。操作表示vnf节点部署位置调整操作,若v的数值为1,则x对应的vnf节点部署位置保持不变,否则,重新选择vnf节点部署位置,例如即应调整第二个vnf的节点部署位置,其余三个vnf的节点部署位置无需调整;表示调整方案更新操作,例如*表示该数据不确定是0还是1,该例子中,第一个*以40%的概率为0,以60%的概率为1;xi⊙
xj表示两种vnf节点部署位置差异计算操作,若vnf节点部署位置相同,则为1,否则为0,例如(1,3,4,6)

(2,3,5,6)=(0,1,0,1);
[0080]
结合本发明的实施例对第4步详细阐述。业务请求的vnf集包括vnf1,vnf2和vnf3,现有两种部署方案,第一种部署方案将vnf1部署在节点1,vnf2部署在节点2,vnf3部署在节点3,因此可得第一种sfc映射方案为(1,2,3),调整方案为(1,0,1),第一种sfc映射方案在更新前得到的归一化后网络资源消耗最小的sfc映射方案为(1,3,2);第二种部署方案将vnf1部署在节点2,vnf2部署在节点1,vnf3部署在节点3,因此可得第二种sfc映射方案为(2,1,3),调整方向为(0,1,1),第二种sfc映射方案在更新前得到的归一化后网络资源消耗最小的sfc映射方案为(2,3,1);两种部署方案在更新前得到的归一化后网络资源消耗最小的sfc映射方案为(1,1,2),设置w,c1和c2分别为0.2,0.4和0.4。可得第一种sfc映射方案的个体历史最优方案(1,3,2)与当前第一种sfc映射方案(1,2,3)的差异为(1,0,0),两种部署方案的全局最优部署方案(1,1,2)与当前第一种sfc映射方案(1,2,3)的差异为(1,0,0),则更新后的调整方案为(1,0,*),*以20%的概率为1,以80%的概率为0,得到更新后的调整方案(1,0,0),因此更新后的vnf部署位置(1,*,*),对vnf2和vnf3重选部署节点;可得第二种sfc映射方案的个体历史最优方案(2,3,1)与当前第二种sfc映射方案(2,1,3)的差异为(1,0,0),两种部署方案的全局最优部署方案(1,1,2)与当前第二种sfc映射方案(2,1,3)的差异为(0,1,0),则更新后的调整方案为(*,*,*),第一个*以40%的概率为1,以60%的概率为0,
第二个*以60%的概率为1,以40%的概率为0,第三个*以20%的概率为1,以80%的概率为0,得到更新后的调整方案(0,1,0),因此更新后的vnf部署位置(*,1,*),对vnf1和vnf3重选部署节点;
[0081]
第4步,采用与步骤5相同的方法,映射所选sfc映射方案中更新后vnf每个节点部署位置对应的虚拟链路;
[0082]
第5步,计算所选sfc映射方案更新后节点资源消耗总量和最大频隙号;
[0083]
第6步,判断是否选取完sfc映射方案中所有待更新的sfc映射方案,若是,执行步骤10,否则,执行本步骤的第2步。
[0084]
步骤10,判断所有sfc映射方案中每个vnf节点部署位置是否相同,若是,则得到所有sfc请求映射方案后执行步骤11,否则,执行步骤9;
[0085]
步骤11,输出sfc请求映射方案。
[0086]
本发明的效果可以通过下面的仿真得到进一步证明。
[0087]
1.仿真实验条件。
[0088]
本发明的仿真实验的软件平台为:windows 10操作系统和matlab r2019b。
[0089]
本发明的仿真实验的硬件平台为:处理器为intel i7 10750h cpu,主频为2.6ghz,内存16gb。
[0090]
本发明仿真实验所使用参数包括取值为0.8的带宽改变因子均值,取值为0.8的节点资源改变因子均值,取值为0.2的惯性权重,取值为0.4的认知权重,取值为0.4的社会权重,取值为70的sfc映射方案总数,取值范围对300至600的sfc请求总数。
[0091]
2.仿真内容与结果分析。
[0092]
本发明仿真实验是采用本发明的方法和一个现有技术,在上述仿真实验条件下分别得到300至600个sfc请求下的最大频隙号。
[0093]
在仿真实验中所采用的现有技术是指:
[0094]
西安电子科技大学在其申请的专利文献“基于vnf资源改变矩阵的sfc映射的方法”(申请公布号cn113965616a,申请号2110xd0909)中公开了一种基于vnf资源改变矩阵的sfc映射的方法。
[0095]
下面结合图3的仿真图对本发明的效果做进一步的描述。
[0096]
将仿真实验得到的300至600个sfc请求下的最大频隙号与sfc请求数量之间关系绘制成如图3所示的两种柱状对比图。图3中的横坐标表示sfc请求数量,单位为个,纵坐标表示最大频隙号。其中,以横线柱状图表示采用现有技术仿真得到的最大频隙号与sfc请求数量之间的关系柱状图,以斜线柱状图表示采用本发明提出的方法得到的最大频隙号与sfc请求数量之间的关系柱状图。
[0097]
从图3中可以看出:本发明的方法得到的7个最大频隙号随着sfc请求数量的增加在不断增长,但在同一sfc请求数量的条件下,本发明的方法得到的最大频隙号始终小于现有技术仿真得到最大频隙号。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1