基于丢包率优化的服务功能链部署方法与流程

文档序号:20437777发布日期:2020-04-17 22:11阅读:140来源:国知局
基于丢包率优化的服务功能链部署方法与流程
本发明涉及一种部署方法,特别涉及一种基于丢包率优化的服务功能链部署方法。
背景技术
:网络功能虚拟化(nfv)通过将网络功能的软件实现与硬件进行分离,对网络服务的设计和部署产生了革命性的影响。与需要专用硬件的传统网络功能相比,vnfs可以部署在通用硬件(如x86服务器)上,这增加了网络的灵活性和可伸缩性,同时也降低了服务提供者的成本。在sdn体系结构和nfv技术的环境中,服务功能链(sfc)是一组有序的vnf,使得网络流量可以根据业务逻辑需求通过特定的vnf序列。随着nfv技术的广泛应用,使得服务功能链(sfc)成为提升网络灵活性、提高成本效率的重要服务模式。由于sdn体系结构和nfv技术的不断发展,增强了网络的灵活性和可扩展性,这为sfc的动态部署提供了技术支持。sfc技术可以有效地降低成本,提高网络建设的效率,因此,sfc相关技术作为促进网络体系结构的一个重要技术逐渐成为当前学术研究的热点。在sfc相关技术中,灵活的链接和编排技术使得sfc服务功能链能够实现各种业务逻辑。为了使其真正工作,我们需要使用sdn和nfv技术将sfc部署到特定的物理网络中。由于vnf的软件特性,它们可以灵活地部署到网络上的任何位置。因此,问题关键就在于如何确定vnf在物理网络上的位置,以满足服务需求和服务质量,这个问题被称为vnf布局(vnf-p)问题,并被证明是np-hard问题。不同的sfc布局方式对服务功能链的性能影响较大,尤其是服务功能链的qos指标。对于视频电话服务、电子商务、流媒体和许多其他服务,丢包率对这些服务的服务质量有着重要的影响。虽然这些服务可以通过tcp协议来保证可靠性,但是过高的丢包率增加了tcp协议的时延,降低了tcp协议的实时带宽,使得tcp协议所承载的服务质量受到很大的影响。因此,需要通过合理的vnf布置将sfc部署到物理网络,并保证端到端丢包率尽可能低。cplex算法是一种规划算法,在实际使用中cplex包括一系列可配置的算法,包括单一优化算法、界限优化算法和混合整数优化算法,因此cplex又被称为优化选择算法。cplex常用于二次规划、以及混合整数规划等问题。混合整数规划指部分决策变量限制为整数的整数规划问题。由于cplex算法的求解方式为多项式求解,因此对于np难的混合整数规划问题,当约束变量增加时,算法的复杂度呈指数爆炸型增长,导致算法的求解时间无限延长甚至无法得出最优解。技术实现要素:本发明所要解决的技术问题是要提供一种基于丢包率优化的服务功能链部署方法,该方法能够降低sfc部署到物理网络后的端到端丢包率,同时确保sfc端到端的延迟和带宽需求。本发明的技术方案如下:一种基于丢包率优化的服务功能链部署方法,包含步骤如下:(1)对物理网络进行无向图模型转化,对不同功能的vnf即虚拟网络功能的处理能力需求以及多个vnf所组成的sfc即服务功能链进行建模;(2)采用蚁群算法进行初始化:设置初始信息素pheinit,设定算法最大迭代次数t,设定蚂蚁数量为m;算法一次迭代每只蚂蚁都会找到一种vnf部署方案,即一次迭代形成m种vnf部署方案;并将其随机放置在m个地点,不同的地点代表不同的服务器,若蚂蚁选择了该地点,即这种部署方案的第一个vnf被部署在该服务器上,最后设定最佳解集sb为空集;(3)开始迭代,每次迭代蚂蚁根据状态传输规则寻找下一个落脚地点,直到sfc中的所有vnf都找到一个地点即服务器进行部署,该部署方案寻找完成;算法迭代一次,m只蚂蚁构造规则构造m个解,即m种部署方案;(4)通过约束条件对这m种部署方案进行可行性判定,对满足约束条件的部署方案的目标函数值进行最优化判定,选择丢包率最小的部署方案对该方案路径上所有两两连接的服务器依据局部信息素更新规则进行局部信息素更新;(5)比较通过蚁群算法每次迭代的局部最优化部署方案与之前迭代时的局部最优化方案,留下当前的最佳局部解决方案sc并将其加入全局最优部署方案sb;(6)根据全局信息素更新规则执行全局信息素更新,以得到本次迭代时的全局最优部署方案的全局信息素,迭代次数加一;即t=t+1(0<t<t),t为迭代次数;(7)如果达到最大迭代次数,则从全局最优部署方案sb中找出最终的最优解,并输出最优解;否则,返回到步骤(2)继续算法迭代。作为优选,所述步骤(3)的状态传输规则为一种随机比例规则,由公式(1)计算,该公式计算服务器r中的蚂蚁k选择移动到服务器s的概率;上式中,jk(r)为服务器r上的蚂蚁k可进行选择的物理服务器集,β为启发式信息的权值;τ(r,s)为服务器r与s之间的局部信息素,μ(r,s)为服务器r与s之间的信息传递率,由公式(2)计算得出;其中,pr,s是服务器r与s之间的最短路径,它由几个连续的物理链路组成;表示物理链路的丢包率。作为优选,所述步骤(4)的约束条件规则方法如下:-该变量表示第q个sfc所需要的第m个vnf是否放置在对应的服务器上,如果是,则否则为0;-该变量表示是否使用物理链路(i,j)来承载第q个sfc的流量,如果是,则否则为0;表示sfc对m个vnf的处理能力的需求数量;如果sfc对某个vnf的处理能力有需求,则加1;表示服务器的容量;表示物理链路(i,j)的带宽;表示物理链路的延迟时间;通过约束(3)确保从vnf的集合映射到服务器i的vnf所需的总处理能力不超过服务器i的可用处理能力;通过约束(4)确保sfc第q个请求中的每个vnf必须实例化,且仅实例化一次;通过约束(5)确保物理链路(i,j)的带宽能够满足它所承载的所有sfc请求的带宽要求;通过约束(6)确保放置结果满足sfc请求的延迟约束;约束(7)确保对于每个sfc请求q,最多只能选择一次相同类型的vnf;通过约束(8)确保对于每个sfc请求q,对于相同的物理服务器只能选择一次;约束(9)确保相同的物理链路(i,j)最多只可能被相同的sfc请求选择一次。作为优选,所述步骤(4)的目标函数值规则方法如下:目标函数值是最小化sfc请求q的端到端丢包率,就是最大化sfc请求q的端到端传递率;公式如下:表示物理链路(i,j)的丢包率。作为优选,所述步骤(4)的局部信息素更新规则方法如下:τ(r,s)=(1-σ)·τ(r,s)+σ·pheinit(11)其中σ为信息素更新参数,且0<σ<1,使用时指定为具体值。作为优选,所述步骤(6)的全局信息素更新规则方法如下:τ(r,s)=(1-ρ)·τ(r,s)+ρ·δτ(r,s)(12)其中ρ为信息素衰减参数,0<ρ<1,使用时指定为具体值;pheinit为在两个节点之间设置的初始信息素;δτ(r,s)表示加强全局最优解的系数;本发明的有益效果是:1、该方法使用全局信息素可以使信息在全局快速传播,将状态传输规则引入增强了探索最优解的能力,保证了方法快速收敛的能力和良好的性能。且降低了时间复杂度。2、该方法将vnf-p问题形式化为丢包率优化的混合整数线性规划问题,降低了sfc部署到物理网络后的端到端丢包率,同时保证了sfc端到端延迟和带宽需求。附图说明图1是本发明采用的德国骨干网拓扑结构示意图。图2是本发明采用的usnet拓扑结构示意图。图3是本发明步骤3状态传输规则方法中的参数β变化对通过率的影响。图4是本发明步骤3状态传输规则方法中的参数m变化对通过率的影响。图5是本发明步骤6全局信息素更新规则中的参数ρ变化对通过率的影响。图6是本发明步骤4局部信息素更新规则中的参数σ变化对通过率的影响。图7是本发明与采用cplex算法在德国骨干网拓扑结构的执行时间对比示意图。图8是本发明与采用cplex算法在usnet拓扑结构的执行时间对比示意图。图9是本发明与采用cplex算法在德国骨干网拓扑结构的通过率对比示意图。图10是本发明与采用cplex算法在usnet拓扑结构的通过率对比示意图。图11是本发明的操作流程图。具体实施方式下面结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。如图11所示,本发明涉及的一种基于丢包率优化的服务功能链部署方法,包含步骤如下:步骤1:对物理网络进行无向图模型转化。选择如图1所示的德国骨干网拓扑和如图2所示的usnet拓扑结构作为实验拓扑,德国骨干网拓扑结构有14个物理节点和21个物理链路,而usnet拓扑结构有24个物理节点和43个物理链路。将每个物理节点的处理能力设置为200。对于二种拓扑结构的每个物理链路,带宽设置为100mbps,延迟服从1~7ms之间的均匀分布,丢包率服从0.01~0.04之间的均匀分布。每个sfc即服务功能链包含四个不同的vnf即虚拟网络功能,并从表1中随机选择。sfc的带宽要求服从5~20mbps之间的均匀分布。此外,每个sfc请求的最大端到端延迟服从30~50ms之间的均匀分布。对不同功能的vnf的处理能力需求以及多个vnf所组成的sfc进行建模。本实施例采用了五种不同类型的vnf,其处理能力如下表1所示。表1步骤2:采用蚁群算法进行初始化。对于每组实验,设置初始信息素pheinit=10,设定算法最大迭代次数t=1000,设定蚂蚁数量为m=5。由于算法一次迭代每只蚂蚁都会找到一种vnf部署方案,即一次迭代形成m种vnf部署方案;并将其随机放置在m个地点,不同的地点代表不同的服务器,若蚂蚁选择了该地点,即这种部署方案的第一个vnf被部署在该服务器上,最后设定最佳解集sb为空集;步骤3:开始迭代,每次迭代蚂蚁根据状态传输规则寻找下一个落脚地点,所述状态传递规则为一种随机比例规则,由公式(1)计算得出,通过该公式计算出服务器r中的蚂蚁k选择移动到服务器s的概率。上式中,jk(r)为服务器r上的蚂蚁k可进行选择的物理服务器集,β为启发式信息的权值;μ(r,s)为服务器r与s之间的信息传递率,由公式(2)计算得出。表2所示为蚂蚁1从第一个位置选择到下一个节点的概率值,由于拓扑节点1只与节点2、3相连,而且第一只蚂蚁没有之前的信息素作为参考,因此对于下一个节点的选取的概率是满足平均分布的,概率如表2所示。τ(r,s)为服务器r与s之间的局部信息素,其值等于1/(服务器r与s之间的拓扑总链路数),同样由于节点1只与节点2、3之间存在直连链路,所以τ(r,s)的值如表3所示。表2表3当这只蚂蚁走过所有节点后,即此时产生了一个解,当所有5只蚂蚁都走完之后,即产生了5个解。其中,pr,s是服务器r与s之间的路径,它由几个连续的物理链路组成。表示物理链路的丢包率,其值为0.01~0.04随机分布。μ(r,s)即将所有路径的(1-丢包率)进行连乘,即μ(r,s)=(1-0.01)*(1-0.01)*……*(1-0.04)。如图3所示,对于状态传输规则中的参数β,在β取不同值时,结果略有波动。当β取5时,结果是最好的。因此将β设为5。直到sfc中的所有vnf都找到一个落脚地点即服务器进行部署,该部署方案寻找完成。算法迭代一次,m只蚂蚁构造规则构造m个解,即m种部署方案。对于参数m,将m设为5~20。所有其它参数保持如表2所示。如图4所示,随着蚂蚁种群规模m的增加,结果几乎没有变化。本实施例采用m=5的种群规模。表2参数的默认值参数mβρσ数值550.10.9步骤4:通过约束条件对所述m种部署方案进行可行性判定,对满足约束条件的部署方案的目标函数值进行最优化判定,选择丢包率最小的部署方案对该方案路径上所有两两连接的服务器依据局部信息素更新规则进行局部信息素更新。所述约束条件规则方法如下:-该变量表示第q个sfc所需要的第m个vnf是否放置在对应的服务器上,如果是,则否则为0;-该变量表示是否使用物理链路(i,j)来承载第q个sfc的流量,如果是,则否则为0;表示sfc对m个vnf的处理能力的需求数量;如果sfc对某个vnf的处理能力有需求,则加1;表示服务器的容量;表示物理链路(i,j)的带宽;表示物理链路的延迟时间。通过约束公式(3)确保从vnf的集合映射到服务器i的vnf所需的总处理能力不超过服务器i的可用处理能力,其值为200。通过约束公式(4)确保sfc第q个请求中的每个vnf必须实例化,且仅实例化一次。通过约束公式(5)确保物理链路(i,j)的带宽(100mbps)能够满足它所承载的所有sfc请求的带宽要求。通过约束公式(6)确保放置结果满足sfc请求的延迟约束,链路延迟满足1至7毫秒的随机分布。通过约束公式(7)确保对于每个sfc请求q,最多只能选择一次相同类型的vnf。通过约束公式(8)确保对于每个sfc请求q,对于相同的物理服务器只能选择一次。通过约束公式(9)确保相同的物理链路(i,j)最多只可能被相同的sfc请求选择一次。所述目标函数值最优化判定方法如下:目标函数值是最小化sfc请求q的端到端丢包率,就是最大化sfc请求q的端到端传递率;其公式如下:表示物理链路(i,j)的丢包率。本实施例中5只蚂蚁走过所有14个节点所用链路至少为13条,如表4所示为每个蚂蚁所用链路的丢包率值。表5所示为5只蚂蚁所对应选择的链路最后的目标函数值,算法会选择最大的目标函数值的解作为局部最优解,即选择蚂蚁1的方案的局部最优解进行更新。表4表5目标函数值蚂蚁1-0.1306543661蚂蚁2-0.2004530227蚂蚁3-0.2304530227蚂蚁4-0.2304026868蚂蚁5-0.2304026868所述局部信息素更新规则方法如下:τ(r,s)=(1-σ)·τ(r,s)+σ·pheinit(11)其中σ=0.9。对蚂蚁1使用过的所有路径进行局部信息素更新,具体值如表格6。步骤5:比较通过蚁群算法每次迭代的局部最优化部署方案与之前迭代时的局部最优化方案,留下当前的最佳局部解决方案(某次迭代的最优解)sc并将其加入全局最优部署方案sb,若本次的最佳局部解决方案(某次迭代的最优解)被确认为全局最优解,就会进行全局信息素更新。步骤6:根据全局信息素更新规则执行全局信息素更新,以得到本次迭代时的全局最优部署方案的全局信息素;迭代次数加一。所述全局信息素更新规则如下:τ(r,s)=(1-ρ)·τ(r,s)+ρ·δτ(r,s)(12)其中ρ为信息素衰减参数,且0<ρ<1,使用时指定为具体值;pheinit为在两个节点之间设置的初始信息素;δτ(r,s)表示加强全局最优解的系数;对于信息素全局更新和信息素局部更新的参数,测试结果如图5和图6所示,当参数ρ和σ分别被设置为0.1和0.9时,结果最好。步骤7:如果达到最大迭代次数,则从全局最优部署方案sb集合中找出最终的最优解,并输出最优解,算法结束。否则,移动到步骤2继续算法迭代。比较蚁群算法与最优解的性能,并将算法的参数设置为最优值,即:m为5,β为5,ρ为0.1,σ为0.9。图7和图8分别表示蚁群算法与cplex算法在德国骨干网拓扑和usnet中的执行时间。从图中可以看出,随着sfc的长度和网络规模的增大,clex算法的执行时间急剧增加。与cplex算法相比,本发明基于蚁群算法的解决方案具有非常低的时间复杂度。图9和图10分别表示蚁群算法与cplex算法在德国骨干网拓扑和usnet下的平均通过率。首先,对于两种算法,平均通过率随着部署的sfc的长度而减小,这是合理的,因为较长的sfc需要更多的从源节点到目标节点的跳数。其次,可以看到蚁群算法的性能比cplex算法差,但是两种算法的差异不超过10%。尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1