Multicast Service Function Tree Embedding Algorithm Based on Delay and Jitter Awareness
-
摘要: 针对软件定义网络/网络功能虚拟化(SDN/NFV)架构中,多播请求流(MRs)需满足严格时延和抖动约束下遍历由多个虚拟网络功能(VNFs)依序组成的服务功能树(SFT)问题。该文提出一种基于最优链路选择函数进行深度优先搜索构建SFT的路由算法。首先,提出网络资源相对成本函数,以保证网络负载自动均衡。其次,联合考虑网络资源、VNF动态放置及多播流延迟和抖动约束,构建SFT动态嵌入问题的整数线性规划模型(ILP)。最后,针对该NP难问题,设计辅助边权图和最优链路选择函数进行路由路径选择,并以最小化资源消耗成本为目标提出具有延迟和抖动感知的SFT嵌入算法(SFT-EA)。仿真结果表明,SFT-EA在吞吐量,流接受率和网络负载均衡方面具有更好的性能。Abstract: To solve the problem that Multicast Request flows (MRs) need to traverse sequentially a Service Function Tree (SFT) consisting of Virtual Network Functions (VNFs) as well as ensuring stringent delay and jitter constraints of SFT in Network Function Virtualization (NFV)-enabled Software-Defined Networks (SDNs), a routing algorithm for constructing a multicast SFT based on depth-first search with an optimal link selection function is proposed. Firstly, the relative cost functions of network resources are proposed to guarantee the automatic load balancing of the network. Secondly, an Integer Linear Programming model (ILP) for the SFT dynamic embedding is constructed by jointly considering network resources, VNF dynamic placement and delay and jitter constraints of a multicast flow. Finally, for this NP-hard problem, an auxiliary edge-weight graph and optimal link selection function are designed for routing path selection, and a delay and jitter-aware SFT Embedding Algorithm (SFT-EA) is proposed with the objective of minimizing the resource consumption cost. Simulation results demonstrate the SFT-EA has better performance in terms of throughput, traffic acceptance rate, and network load balance.
-
1. 引 言
在支持网络功能虚拟化(Network Function Virtualization, NFV)的软件定义网络(Software Defined Networks, SDNs)中,为实现可靠、安全及可扩展传输等目的,用户请求流通常需要依序遍历由多个虚拟网络功能(Virtual Network Functions, VNFs)组成的服务功能链(Service Function Chain, SFC)[1]。对于单播请求流, SFC可以直接沿着单播路由路径依次选择嵌入节点进行VNF部署,目前已有大量文献对这一工作进行了研究,特别是文献[2]利用拉格朗日对偶理论[3]设计松弛算法求解了具有多资源多QoS约束的单播SFC嵌入问题,具有典型的代表性。多播通过共享的多播树进行多路复用,与单播相比,可以减少骨干网50%以上的带宽消耗[4]。2022年至2028年,全球视频流媒体市场预计将以21.0%的复合年增长率扩张[5],这些视频流大多以多播的形式向用户提供服务。在SDN/NFV架构中具有SFC需求的多播请求流(Multicast Request flows, MRs)是将流量从源点转发到多个目的节点,每个源-目的对之间需要根据SFC的要求依序遍历多个VNFs实例,这将形成一个虚拟网络功能转发图[6]。图1为该文构建的一条多播流从源点s依序经过由防火墙(FW)、入侵检测系统(IDS)、入侵阻止系统(IPS)组成的3条相同SFC后到达各个目的节点的示意。显然这3条SFC共同组成了一颗多播服务功能树(Service Function Tree, SFT)。联合考虑网络中各种资源及QoS约束条件,为多播请求流嵌入SFC是一个巨大的挑战。
目前,在SDN/NFV架构中,研究多播SFT嵌入的文献比较少。文献[7-9]研究了在已经放置了多个VNF实例环境中MRs的路由问题,但文献[7]没有考虑路由过程中VNF的动态部署,文献[8]考虑了VNF的运行和动态部署成本,但没有联合考虑网络中交换节点的转发成本,并且,它们都以多播源-目的对之间的单条SFC进行嵌入。文献[9]重点关注多播业务链的迁移调整,文献[10]则基于预测的方式对多播流的SFC进行动态嵌入,上述工作没有基于多播服务功能树(SFT)对SFC进行灵活整体嵌入,会造成网络资源分配不均衡。文献[11,12]研究了SFT的动态编排和整体嵌入,但文献[11]假设所有VNFs都部署在一个NFV功能节点中,文献[12]则要求多播分发点只能在部署的最后一个VNF节点之后进行,限制了SFT嵌入的灵活性和可扩展性,从而降低了网络资源的使用效率。
此外,对于视频会议、多人游戏等实时性要求较高的多播应用,对时延和抖动有严格要求。文献[13-17]研究了SFT的灵活嵌入和部署问题,但文献[13,14]没有考虑多播延迟和抖动约束,文献[15-17]考虑了端到端的延迟约束,但没有考虑多播目的节点之间的抖动约束,上述工作会影响多播用户的服务体验质量。文献[18]考虑用户的移动性及加入退出机制,研究了NFV网络中多播SFC的嵌入,调整和扩展问题。文献[19]是在无线Mesh网络中,考虑无线信号干扰和资源受限的情况下,以最小化链路成本为目标研究多播服务功能树的嵌入问题。上述工作同样没有考虑多播SFT时延和抖动约束,且和本文的研究场景不同。
综上所述,当前还没有相关工作联合考虑多VNFs实例环境下VNF的动态放置、网络资源约束及网络负载均衡等因素,研究具有严格时延和抖动感知的SFT灵活嵌入和多播路由算法。因此,本文在已有研究基础上,提出一种基于最优链路选择函数进行深度优先搜索构建具有严格时延和抖动约束的多播SFT嵌入算法。具体内容为:
(1)联合考虑VNF动态放置,多资源约束(包括SDN交换机的转发表容量、链路的带宽、功能节点的CPU容量)及网络负载均衡因素正式定义并用ILP模型刻画了延迟和抖动感知的动态SFT嵌入和路由问题(the Delay and Jitter Aware Dynamical SFT embedding and Routing Problem, DJA-DSRP)。(2)设计辅助边权图,将资源消耗及时延指标转化为边权图中的权值降低问题复杂性,提出最优链路选择函数构建SFT嵌入算法(SFT-EA)求解原问题。(3)将提出的SFT-EA算法与现有算法进行性能对比,结果表明SFT-EA不仅较优地解决了多资源及时延和抖动联合约束下的多播SFT嵌入问题,且在流接受率、网络吞吐量和负载平衡方面具有更好的性能。
2. 系统模型
2.1 物理网络
将SDN/NFV网络表示为G=(N,L),其中N,L分别表示节点和链路的集合。用u,v∈N和<u,v>∈L分别表示物理节点和物理链路,为方便起见,后文用uv∈L表示物理链路。网络中有两种节点类型,一种是负责转发数据的交换节点Ns∈N,另一种是由一台或多台服务器组成的功能节点Nf∈N,N=Ns∪Nf。G中有一台SDN控制器,为每条多播请求流执行动态的VNF放置和路由路径选择。图2为网络示例,其中节点v1,v3,v4为功能节点,其余为交换节点。
用MRi表示第i条具有SFC请求的多播流。其中i为整数。当路由MRi时,在节点u上,流表容量和剩余流表项的比率用Cftu和rfti,u表示。用Ccpuu和rcpui,u表示节点u上的CPU容量和剩余比率。物理链路uv∈L的带宽容量、剩余带宽比率、传输时延分别用Cbwuv, rbwi,uv, δdelayuv表示。用η(u)表示节点u的邻居节点集合。
η(u)={v|uv∈L 或 vu∈L} (1) 2.2 虚拟网络功能
网络中可能的VNF类型用集合P表示。每种VNF类型p都有特定的部署成本、CPU需求、处理延迟,分别表示为Dp, kcpup, δdelayp。具有SFC要求的多播流请求MRi表示为
MRi=⟨si,Di,SCi,Rbwi,Rcpui,Rdelayi,RJitteri⟩ (2) si和Di分别表示源节点和目的节点集, SCi={SCi(1),SCi(2),⋯,SCi(l)}表示MRi中每个源目的对必须升序遍历的VNF 集合,即SFC,l=|SCi|为SFC的长度,即MRi中每个源目的对需要经过的VNF实例总数。其中Rbwi, Rcpui, RDelayi, RJitteri分别表示带宽需求、CPU需求、任意源目的对节点的最大容忍延迟和最大容忍抖动。
为处理顺序约束,使用有向无环服务功能图ˉGi=(ˉNi,ˉLi)来描述有序的VNF序列SCi。其中ˉNi表示入口节点、VNF节点、出口节点集合,ˉLi表示这些节点之间的路径,分别用¯u,¯v⊂¯Ni, ¯u ¯v⊂¯Li表示ˉGi上的两个节点ˉu和ˉv以及它们之间的链路。图1展示了一颗多播服务功能树,在到达目的节点之前,多播流必须遍历由3个VNFs 组成的服务链:即SFT 中的FW, IDS 和IPS。
定义ηi(ˉu1)来表示ˉu1∈ˉNi的邻居节点。
ηi(¯u1)={¯u2|¯u1¯u2∈¯Li 或 ¯u2¯u1∈¯Li},¯u1,¯u2∈¯Ni (3) 2.3 问题定义
在SDN/NFV中,延迟和抖动感知的多播服务功能树动态嵌入和路由问题(DJA-DSRP) 是为MRi寻找或构建一颗多播树SFT,满足各链路带宽,流表容量和CPU资源约束的同时,任何一条源目的节点对的端到端延迟和任意源目的对路径之间的最大时延抖动分别不大于给定的阈值Rdelayi和RJitteri,且多播树的实现代价最小并可以自动保证网络的负载均衡。
2.4 问题刻画
2.4.1 物理网络转换
在实际网络中,各功能节点允许部署的VNF类型可能不同。为了方便地表达这个约束并降低问题的复杂性,将通过枚举的方式将原来的物理网络转换成一个扩展的伪网络。即根据一种类型的VNFp的CPU需求和功能节点的CPU容量,列举所有可以部署在每个功能节点Nf上的VNF。这些枚举的VNF称为伪VNF,它们的集合记作M。用m∈M表示第m个VNF,用rcpui,m表示路由MRi时,第m个VNF上剩余CPU的比率。假如VNF m的类型为p时,定义函数τ(m)返回VNFm的类型
τ(m)=p (4) 2.4.2 相对成本的定义
G中资源使用的一个重要特征是,边际成本会随着资源负载的增加而非线性膨胀。比如,与轻负载链路相比,重负载链路将花费更多的成本来处理传入的网络数据包[2]。为了描述这一特性且自动保证网络资源负载均衡,利用相对成本来刻画资源的使用成本并将链路带宽、交换节点和VNF上CPU资源的相对代价分别定义为
vbwi,uv=(ωbw)1−rbwi,uv,uv∈L (5) vfti,u=(ωft)1−rfti,u,u∈Ns (6) vcpui,m=(ωcpu)1−rcpui,m,m∈M (7) 其中,ωbw, ωft和ωcpu均为大于1的常数,rbwuv,rftu和rcpum分别为链路上带宽资源、交换节点上流表资源和VNF上CPU资源的剩余率。
2.4.3 ILP模型
确保在部署新的VNF实例m时不会违反CPU容量限制,则需满足
∑m∈SCixumkcpum≤Ccpuurcpui,u,∀u∈Nf (8) xumyum=1,∀u∈Nf,m∈SCi (9) 其中0,1变量xum=1表示VNFm的实例部署在节点u上,否则xum=0,yum=1表示功能节点u上可以部署VNFm,否则yum=0,kcpum表示部署VNFm所需的CPU资源量。
为确保交换节点上的流表容量约束,需满足式(10)。用0,1变量zˉuˉvi,d,u=1来表示MRi到达目的节点d∈Di时,ˉuˉv∈¯Li是经过节点u的,否则zˉuˉvi,d,u=0。
∑ˉuˉv∈¯Lizˉuˉvi,d,u≤Cfturfti,u,∀u∈Ns (10) 为确保不会违反物理链路上的带宽容量约束,式(11)应被满足。其中Rˉuˉvi,uv表示ˉuˉv通过物理链路uv的带宽。
∑ˉuˉv∈¯LiRˉuˉvi,uv≤Cbwuvrbwi,uv,∀uv∈L (11) 值得注意的是,每个源目的对必须由SFT中的一个SFC服务。由于多播的多路复用特性,流在到达目的节点前可能经过相同的VNF 实例。因此,使用式(12)来保证面向每个目的节点的流只访问SFT中同类型的VNF 1次。
∑u∈Nfθmd,u=1,∀m∈SCi,d∈Di (12) 其中θmd,u为0,1变量,θmd,u=1表示流向目的节点d的流是在功能节点u上获得 VNFm的服务,否则θmd,u=0。使用以下约束来确保流向每个目的节点的流只能从源节点流出。
θd,Si=1,∀d∈Di (13) 为了保证流的守恒和严格的顺序要求,需满足
∑v∈η(u)zˉuˉvi,d,uv−∑v∈η(u)zˉuˉvi,d,vu≥θˉud,u−θˉvd,u,∀ˉu∈¯Ni,u∈N,d∈Di (14) 其中,0,1变量zˉuˉvi,d,uv=1表示MRi到达目的节点d∈Di时,ˉuˉv∈¯Li经过物理链路uv,否则zˉuˉvi,d,uv=0。
使用0,1变量φˉuˉvi,uv=1表示流向每个目的节点的MRi通过链路uv来获得ˉu和ˉv的服务,否则φˉuˉvi,uv=0。因此,需满足约束
φˉuˉvi,uv≥zˉuˉvi,d,uv,∀ˉu,ˉv∈−Ni,u,v∈N,d∈Di (15) 用Dti来表示MRi从si经过SFT到t∈Di的延迟
Dti=∑ˉuˉv∈¯Li∑uv∈Lddelayi,d,uvzˉuˉvi,d,uv+∑ˉu∈¯Niddelayi,d,τ(ˉu),∀d∈Di (16) 其中δ delayi,d,uv和δ delayi,d,t(ˉu)分别表示从si到d的流在链路uv上的传播延迟和VNF上的处理延迟,函数τ(ˉu)负责返回ˉu的VNF类型。以下约束确保MRi的任何源目的节点之间端到端的延迟满足阈值
Dti≤Rdelayi,∀t∈Di (17) 此外,为确保MRi中任意源目的地对不违反最大时延抖动,需满足
|Dt1i−Dt2i|≤RJitteri,∀t1,t2∈Di,t1≠t2 (18) 综上,构建多播树的成本计算为
∑ˉu∈¯Ni∑u∈Nfuˉu,uvcpui,τ(ˉu)+∑u∈Ns∑ˉuˉv∈¯Liφˉuˉvi,uvfti,u+∑ˉuˉv∈¯Li∑uv∈Lφˉuˉvi,uvvbwi,uv (19) 优化问题为
min 式(19)
s.t. Eq.(8)—(15), (17)—(18)
3. 启发式优化算法
由于在网络中嵌入多播服务功能树是NP难的[13],为降低问题求解复杂度,将功能节点中的CPU资源消耗和转发节点中流表资源消耗转化为边上的权值进行表示。因此,本节将G转化为辅助边权图G′i,然后再将G′i转换为具有相对成本的VNF分裂多阶段边权图ˆGi,最后基于ˆGi利用启发式算法对问题进行求解,具体过程如下。
3.1 辅助边权图构建
辅助边权图G′i=(V′i,E′i;wi,e′)的构造:将每个交换节点v∈Ns拆分为两个节点,记作v′和v″,并将它们添加到Vi′中。然后向Ei′添加一条有向边⟨v′,v″⟩。对于功能节点中的每个VNFm,将m分裂成两个节点m′和m″,并将它们添加到Vi′中,有向边⟨m′,m″⟩被添加到边集Ei′。为保证一致性,在m″和m′之间增加一条高速链路,不考虑这条链路的容量和延迟约束。对于每条链路uv∈L,为Ei′添加一条边⟨u″,v′⟩,图3为构造G′i的示例。
按式(20)和(21)为e′∈E′i分配成本和延迟权重,特别地,假如 e′=⟨m′,m′′⟩∈E′i,ˆyam=0,yam=1,表明VNFm是新部署的,则ωcosti,e′=(ωcpu)1−rcpui,m+Dτ(m),由于VNFm在一个功能节点上,将⟨m″,m′⟩的成本权重设置为0。由于软硬件的性能越来越好,将边⟨v′,v′′⟩的延迟权重设为0。
wcosti,e′={(wft)1−rfti,v,e′=⟨v′,v″⟩∈E′i(wbw)1−rbwi,uv,e′=⟨u″,v′⟩∈E′i(wcpu)1−rcpui,m,e′=⟨m′,m″⟩∈E′i,ˆyam=1,yam=1 (20) wdelayi,e′={0,e′=⟨′,v″⟩∈E′iddelayuv,e′=⟨u″,v′⟩∈E′iddelayt(m),e′=⟨m′,m″⟩∈E′i (21) 3.2 多阶段边权图构建
为确保MRi中每条源目的候选路由路径满足预定义的VNF顺序要求,进一步将G′i转换为一个由入口节点、满足严格顺序约束的候选VNF实例和出口节点组成的有向无环图ˆGi=(ˆVi,ˆLi;wi,ˆe),其中ˆu,ˆv∈ˆVi表示两个节点,ˆe=⟨ˆu,ˆv⟩∈ˆLi和wi,ˆe分别表示链路和边的权重。通过以下两个阶段来构造ˆGi。
第1阶段是查找MRi所需的所有VNF节点,并将它们按照预定义的顺序排列并进行分裂。第2阶段是生成链路。首先,把入口节点si与SCi(1)′列中的所有节点连接起来,然后将SCi(1)′列中的节点ˆu′与SCi(1)″列中的节点ˆu″一一连接。接着将SCi(1)″列中的每个节点ˆu″与SCi(2)′中所有节点ˆu′一一连接。接下来,依次执行相同的操作。最后,将SCi(l)″列中所有节点ˆu″连接到t∈Di。并且Di中的目的节点是相互连接的。图4为一个示例。
在ˆGi中,将每条链路的成本和延迟权重按以下公式进行设置,其中pi(u″v′)表示G′i中两个节点之间的最短路径。
wcosti,ˆe={(wcpu)1−rcpui,m,ifˆe=⟨ˆu′,ˆu″⟩∈ˆLi∑e′∈pi(u″v′)wcosti,e′,ifˆe=⟨ˆu″,ˆv′⟩∈ˆLi (22) wdelayi,ˆe={ddelayt(m),ˆe=⟨ˆu′,ˆu″⟩∈ˆLi∑e′∈pi(u″v′)wdelayi,e′,ˆe=⟨ˆu″,ˆv′⟩∈ˆLi (23) 3.3 启发式算法SFT-EA
基于G,G′和ˆG之间的关系,网络中资源消耗的相对成本都被转换为ˆG上的链路进行表示。由于MRi的所有候选VNF实例都按预定顺序放置在ˆG上,因此,原问题转化为在ˆG上找一棵满足式(24)的多播树。用Ti={VTi,ETi}表示该多播树,其中VTi⊇{si}∈Di,相邻节点之间的链路记为ˆe=⟨ˆu,ˆv⟩∈ˆLi, d(ˆe)=wdelayi,ˆe表示链路ˆe上的延迟, ˆpi(si,ˆu)表示Ti上从源节点si到节点ˆu的路径。si到节点ˆu的延迟用D(ˆu)表示
D(ˆu)=∑ˆe∈ˆpi(si,ˆu)d(ˆe)min∑ˆe∈Tiwcosti,ˆes.t.{C1:∑ˆe∈ˆpi(si,ˆu)d(ˆe)≤Rdelayi,∀ˆu∈Di,ˆpi∈TiC2:|∑ˆe∈ˆpi(si,ˆu)d(ˆe)−∑ˆe∈ˆpi(si,ˆv)d(ˆe)|≤RJitteri,∀ˆu,ˆv∈Di,ˆpi∈Ti (24) 基于以下思路设计服务功能树嵌入算法(Service Function Tree Embedding Algorithm, SFT-EA)来解决式(24)。定义ΔT∈R+为实际多播树Ti中源目的对路径的最大延迟,即
ΔT=max∑ˆe∈pi(si,ˆu)d(ˆe),∀ˆu∈Di (25) 显然,
ΔT≤Rdelayi (26) 此外,如果ˆu∈Di,称ˆu为目的节点;如果ˆu∉Di,但ˆu∈Ti,则称ˆu为中继节点。
将∑ˆe∈ˆpi(si,ˆv)d(ˆe)表示为D(ˆu)+d(ˆu,ˆv),根据式(25)可以得到
ΔT−(D(ˆu)+d(ˆu,ˆv))≤RJitteri (27) 显然,
D(ˆu)+d(ˆu,ˆv)≤ΔT (28) 根据式(27)、 式(28)可以得到
ΔT−RJitteri≤D(ˆu)+d(ˆu,ˆv)≤ΔT (29) 首先使用KruskalMST最小生成树算法计算ˆGi上的最小时延树(LDT) TLDT,假设TLDT上每个源目的对之间路径的最大延迟为Dmax,则有Dmax≤ΔT。另外,RJitteri≤ΔT,否则延迟抖动约束无效。为了保证多播树Ti中的源目的对路径满足实际的时延和时延抖动要求,结合式(26),可以得到ΔT的取值范围为
ΔT∈[max{Dmax,RJitteri},RDelayi] (30) SFT-EA的主要思想是在ΔT的范围内从小到大取值,将每一个值作为当前构造的多播树中路径的时延上限。算法首先初始化一棵只包含多播源节点的多播树,然后逐个贪婪地加入ˆGi中的节点。在节点加入的过程中,使用式(31)中定义的最佳链路选择函数来选择具有最小值的节点ˆv,并将该节点对应的边添加到当前多播树Ti中,然后,将ˆv作为当前节点,重复上述过程。如果找不到符合条件的节点ˆv,则回溯到当前节点的父节点并继续上述过程。最后,若在ΔT时延范围内找不到包含所有目的节点的多播树,则多播树构造失败,结束算法。
S(ˆu,ˆv)={f(ˆu,ˆv),ˆv∉Di,D(ˆu)+d(ˆu,ˆv)≤ΔT或ˆv∈Di,ΔT−RJitteri≤D(ˆu)+d(ˆu,ˆv)≤ΔT∞,其他 (31) 在式(31)中,f(ˆu,ˆv)=ωcosti,ˆu,ˆvΔT−D(ˆu)−d(ˆu,ˆv)+ΔT−D(ˆu)−d(ˆu,ˆv)ωcosti,ˆu,ˆv
SFT-EA算法的伪代码如算法1:
算法1 SFT-EA算法 输入: G(N,L),流请求MRi,资源容量,资源剩余率,最大迭
代次数K。输出:多播树T。 1. 根据2.4.1枚举G中功能节点上所有可能的VNFs 2. 根据3.1构造G′i 3. 基于G′i构造ˆGi 4. 求最小时延树TLDT←KruskalMST(ˆGi) 5. ifDmaxinTLDT>Rdelayi则算法结束 6. else 7. while((ΔT∈[max且k \le K)//算法最多迭代 K 次 8. {T_i} \leftarrow s;V[\hat u] = 0;L[\hat u][\hat v] = 0;V[s] = 1 ,//数组 V 和 L 分别用于记录节点和链路是否已被访问 {{Pre} }({{s} }) = \emptyset ;\hat u = {\text{s} };{\Delta _T} = \max \left\{ { {D_{\max } },R_i^{ {\text{jitter} } } } \right\}// pre() 函数表示一个节点的前驱 9. while L[\hat u][\hat v] \ne 1 10. if \hat v \notin {D_i} \cup \{ s\} and D(\hat u) + d(\hat u,\hat v) \leqslant {\Delta _T} 11. N = N \cup \{ \hat v\} // N 记录候选节点 12. else if \hat v \in {D_i} 且{\Delta _T} - R_i^{ {\text{Jitter} } } \le D(\hat u) + d(\hat u,\hat v) \le {\Delta _T} 13. N = N \cup \{ \hat v\} 14. end if 15. if N \ne \emptyset 16. for each \hat v \in N 17. if D(\hat u) + d(\hat u,\hat v) = = {\Delta _T} 18. if \hat v \in {D_i} 19. V[\hat v] = 1;L[\hat u][\hat v] = 1;{T_i} = {T_i} \cup \{ \hat v\} 20. else L[\hat u][\hat v] = 1 21. end if 22. else if D(\hat u) + d(\hat u,\hat v) < {\Delta _T} 23. 选择 f(\hat u,\hat v) 中最小的节点 \hat v 24. {T_i} = {T_i} \cup \{ \hat v\} ;V[\hat v] = 1;L[\hat u][\hat v] = 1;Pre(\hat v) = \hat u;
\hat u = \hat v;L[\hat u][\hat v] = 0;25. end if 26. end for 27. else 将 L[\hat u][\hat v] 为0的链路设置为1, \hat u = pre(\hat u) 28. end if 29. end while 30. for each \hat v \in {D_i} 31. if 所有 V[\hat v] = = 1 则转到36 32. else {\Delta _T} + + ;k + + ;break; 33. end if 34. end for 35. end while 36. if {T_i} 包含 {D_i} 中的所有目的节点 37. 通过将 {T_i} 中的每条边替换为其在 G 中对应的路径来映射多播
树 T ,并更新r_{i,{\rm{uv}}}^{ {\text{bw} } }\;,r_{i,u}^{ {\text{ft} } }\;,r_{i,u}^{ {\text{cpu} } }和 r_{i,m}^{{\text{cpu}}}38. else 路由失败, {\text{M}}{{\text{R}}_i} 请求被拒绝,Return 39. end if 40. end if 定理1 SFT-EA的时间复杂度为 O(K|N{|^3}) 。
证明 执行SFT-EA时,枚举VNF的时间复杂度为 O(|{V_f}|) 。计算{G'}中链路和节点的相对成本的复杂度为 O(|{V_s}| + |M| + |L|) 。最坏情况下,所有类型的VNF实例都可以部署在每个功能节点上,将执行 \left| {{V_f}} \right| + (l - 1){\left| {{V_f}} \right|^2} + \left| {{V_f}} \right|\left| {{D_i}} \right| 次SP算法为 \hat G 生成链路,通常是 {V_f} < < {D_i} ,因此执行SP算法的次数约为 \left| {{V_f}} \right|\left| {{D_i}} \right| 。{G'}上SP的复杂度为 O(|L| + |V|\log |V|) , \hat G 最多有 2l\left| {{V_f}} \right| + 1 + {D_i} 个节点和(l - 1){\left| {{V_f}} \right|^2} + l\left| {{V_f}} \right| + \left| {{V_f}} \right| + \left| {{V_f}} \right|\left| {{D_i}} \right|条链路,因此,建立 \hat G 的时间复杂度是:O(\left| {{V_f}} \right|\left| {{D_i}} \right|(|(l - 1){\left| {{V_f}} \right|^2} + l\left| {{V_f}} \right| + \left| {{V_f}} \right| + \left| {{V_f}} \right|\left| {{D_i}} \right||| + |(2l \left| {{V_f}} \right| + 1 + {D_i})|{\log _2}|(2l\left| {{V_f}} \right| + 1 + {D_i})|)) = O(|{V_f}{|^2} |{D_i}{|^2} + |{D_i}{|^2}|{V_f}|{\log _2}|{D_i}|) 。KruskalMST计算 {T_{{\text{LDT}}}} 的复杂度为 O({V^2}) = O((2l\left| {{V_f}} \right| + 1 + {D_i}{)^2}) = O({D_i}^2) ,在算法中(第10~27行),当没有回溯时,时间复杂度为 O({V^2}) ,当有回溯时,时间复杂度为 O({V^3}) 。用于确定是否访问了所有目的地节点的时间复杂度为 O({D_i}) (第30~34行),在最坏情况下,SFT-EA将迭代 K 次,路径映射和资源更新的复杂度为 O(1) 。 l 的值很小。因此,SFT-EA的算法复杂度是O(K((|{V_f}|) + (|{V_s}| + |M| + |L|) + (|{V_f}{|^2}|{D_i}{|^2} + |{D_i}{|^2} |{V_f}||{\log _2}|{D_i}|) = O (K|{D_i}{|^3}) 。在最坏的情况下,网络中除源节点外的所有节点都是多播目的节点,所以,SFT-EA的复杂度为 O(K|N{|^3}) 。
证毕 图4中的红色粗线给出了具有3个目的节点和3个VNF顺序请求SFT的算法运行示例。
4. 性能仿真分析
4.1 仿真设置
在Intel(R) Core(TM) i7-8550U CPU @ 1.80 GHz, 32.0 GB RAM的计算机上,用NetworkX3.1 Library[20]生成 Palmethone网络[21]对提出的算法进行评估。网络中,选择按节点度降序排序的30%的节点作为功能节点。考虑6种类型的VNFS [2]。 {D_p} 的取值为Uniform[0,10]× R_i^{{\text{cpu}}} 。每条链路的带宽(Gbps)为Uniform[1,10]。交换节点的流量表容量设置为800个单元[2],功能节点上的CPU容量设置为8000MIPS。 \delta _p^{{\text{delay}}} (ms)设为Uniform[0.002,0.003] × R_i^{{\text{cpu}}} ,链路的延迟(ms)为Uniform[2,5] [2]。 {w_{{\text{bw}}}}, {w_{{\text{ft}}}},{w_{{\text{cpu}}}} 设置为2|V|[11]。
对于每条多播流,从目标网络中随机选择源节点和目的节点。为了评估多播规模的影响,将|D|/|V|值设置为0.3, R_i^{{\text{bw}}} (Mbps)为Uniform[10,120][13]。 R_i^{{\text{cpu}}} (MIPS)为Uniform[0,10] × R_i^{{\text{bw}}} , R_i^{{\text{delay}}} (ms)为Uniform [50,100], R_i^{{\text{jitter}}} (ms)为Uniform[30,50] [2]。此外,将SFC的长度和SFT-EA的迭代最大次数 K 分别设置为4和10。取30次实验结果的平均值作为结果输出。
4.2 对比算法
选用SDN/NFV网络架构中与本文研究方向紧密相关且最新的对比算法进行仿真对比。
(1)STB[22]:用传统经典的Steiner树算法构造一个覆盖多播所有目的节点的Steiner树,并找到将源节点连接到该树的最小代价路径。然后沿着该路径嵌入所需的SFC。STB只考虑链路和节点资源的成本;
(2)TSA[13]:通过考虑链路和节点资源成本得到SFC嵌入的初始方案,然后通过添加新的VNF实例逐步构建多播服务功能树(SFT),该算法不考虑流表成本及路径抖动约束;
(3)HAJPR[16]:根据网络中的关键NFV节点构造多径多播树,并且考虑物理资源和延迟约束,不考虑抖动约束,且没有解决VNF的动态嵌入。
4.3 性能比较
图5为平均流接受率的比较。SFT-EA的性能最好。当传入MRs的数量为5000时,它接受的MR比HAJPR多约6%,比TSA高约13%,比STB高约17%。在SFT-EA中,实现了VNF的动态放置和负载均衡,提供了更好的性能。HAJPR考虑多路径路由,其性能优于TSA和STB。
图6展示了平均吞吐量的比较。当MR的数量为4000时,SFT-EA的吞吐量比HAJPR高约5 Gbps,比TSA高约14 Gbps,比STB高约20 Gbps。性能和流接受率相符。
图7展示了当4000条MRs进入网络时链路平均剩余带宽的累积分布。从图中可看出,STB和TSA有大约5%和3%的瓶颈链路。对于SFT-EA,剩余带宽为6G和3G的链路分别约占71%和17%,因此,网络中约有54%的链路剩余带宽在3 Gbps到6 Gbps之间,对于HAJPR, TSA和STB,其剩余带宽在3 Gbps到6 Gbps之间的链路分别约为51%、32%和27%。显然,SFT-EA中使用指数函数来表示链路带宽成本,使其对链路资源的利用比其他算法更加均衡。
图8描述了4000条MRs进入网络时平均剩余流表条目的累积分布。可以看到,TSA和STB有大约3%和5%的交换节点瓶颈。从图中剩余流表条目为400个单位看,STB大约有60%的交换机节点,其剩余流表条目小于400个单位,TSA为49%,HAJPR为35%,SFT-EA为30%, SFT-EA算法的性能优于其他算法。
图9显示了当4000条MRs进入网络时,功能节点上平均剩余CPU的累积分布。由于STB和TSA不能保证功能节点上CPU的均衡使用,分别有约4%和2%的瓶颈节点。对于SFT-EA,剩余CPU为1600 MIP的功能节点大约占10%,剩余CPU为4000 MIPS的功能节点大约占85%,因此,约75%的功能节点的剩余CPU在1600~4000 MIPS,而HAJPR, TSA和STB在这区间的剩余CPU分别约为63%、49%和45%。SFT-EA比其他算法更均衡。
图10展示了不同长度SFC下流接受率的变化。由于MR消耗的网络资源随着SFC长度的增加而增加,因此,流接受率随SFC长度的增加而降低。因STB和TSA无法平衡带宽、流表和CPU资源的利用率,因此它们的性能较差。虽然HAJPR不考虑资源平衡,但由于采用多径路由,且不考虑时延抖动约束,因此性能略高于SFT-EA。
图11显示了不同比例功能节点下网络的平均流接受率。功能节点的比例越高,可以动态部署VNF实例的节点就越多,MR可以选择冗余的VNF实例来满足其预定顺序,因此,这些算法的平均流接受率就越高。同理,虽然HAJPR不考虑资源平衡,但由于采用多径路由,且不考虑时延抖动约束,因此性能略高于SFT-EA。
图12给出了多播目的节点数 |D| \in [5,25] 时,算法的运行时间比较,随着多播目的节点数的增加,4种算法的执行时间都会增加。因SFT-EA需要考虑抖动约束,算法运行时间约高于HAJPR。
5. 结束语
本文基于SDN/NFV架构,研究了延迟和抖动感知的多播服务功能树嵌入和路由问题。首先将其建模为ILP模型。然后,利用节点分裂,将节点资源成本转换为边的思想,并设计了一个最优链路选择函数和基于辅助边权图的SFT嵌入算法SFT-EA来解决该问题。最后通过实验仿真对算法的性能进行了评价。结果表明,所提算法在吞吐量、流接受率和网络负载均衡方面比现有算法有更好的性能,为虚拟网络环境下具有延迟和抖动约束的多播流调度提供了有价值的参考。
-
算法1 SFT-EA算法 输入: G(N,L) ,流请求 {\text{M}}{{\text{R}}_i} ,资源容量,资源剩余率,最大迭
代次数 K 。输出:多播树 T 。 1. 根据2.4.1枚举 G 中功能节点上所有可能的VNFs 2. 根据3.1构造 G_i^\prime 3. 基于 G_i^\prime 构造 {\hat G_i} 4. 求最小时延树 {T_{{\text{LDT}}}}\leftarrow KruskalMST( {\hat G_i} ) 5. if{D_{ {\text{max} } } }\;{\rm{in}}\;{T_{ {\text{LDT} } } } > R_i^{ {\text{delay} } }则算法结束 6. else 7. while (({\Delta _T} \in [\max \left\{ {{D_{\max }},R_i^{{\text{jitter}}}} \right\},R_i^{{\text{delay}}}]) 且k \le K)//算法最多迭代 K 次 8. {T_i} \leftarrow s;V[\hat u] = 0;L[\hat u][\hat v] = 0;V[s] = 1 ,//数组 V 和 L 分别用于记录节点和链路是否已被访问 {{Pre} }({{s} }) = \emptyset ;\hat u = {\text{s} };{\Delta _T} = \max \left\{ { {D_{\max } },R_i^{ {\text{jitter} } } } \right\}// pre() 函数表示一个节点的前驱 9. while L[\hat u][\hat v] \ne 1 10. if \hat v \notin {D_i} \cup \{ s\} and D(\hat u) + d(\hat u,\hat v) \leqslant {\Delta _T} 11. N = N \cup \{ \hat v\} // N 记录候选节点 12. else if \hat v \in {D_i} 且{\Delta _T} - R_i^{ {\text{Jitter} } } \le D(\hat u) + d(\hat u,\hat v) \le {\Delta _T} 13. N = N \cup \{ \hat v\} 14. end if 15. if N \ne \emptyset 16. for each \hat v \in N 17. if D(\hat u) + d(\hat u,\hat v) = = {\Delta _T} 18. if \hat v \in {D_i} 19. V[\hat v] = 1;L[\hat u][\hat v] = 1;{T_i} = {T_i} \cup \{ \hat v\} 20. else L[\hat u][\hat v] = 1 21. end if 22. else if D(\hat u) + d(\hat u,\hat v) < {\Delta _T} 23. 选择 f(\hat u,\hat v) 中最小的节点 \hat v 24. {T_i} = {T_i} \cup \{ \hat v\} ;V[\hat v] = 1;L[\hat u][\hat v] = 1;Pre(\hat v) = \hat u;
\hat u = \hat v;L[\hat u][\hat v] = 0;25. end if 26. end for 27. else 将 L[\hat u][\hat v] 为0的链路设置为1, \hat u = pre(\hat u) 28. end if 29. end while 30. for each \hat v \in {D_i} 31. if 所有 V[\hat v] = = 1 则转到36 32. else {\Delta _T} + + ;k + + ;break; 33. end if 34. end for 35. end while 36. if {T_i} 包含 {D_i} 中的所有目的节点 37. 通过将 {T_i} 中的每条边替换为其在 G 中对应的路径来映射多播
树 T ,并更新r_{i,{\rm{uv}}}^{ {\text{bw} } }\;,r_{i,u}^{ {\text{ft} } }\;,r_{i,u}^{ {\text{cpu} } }和 r_{i,m}^{{\text{cpu}}}38. else 路由失败, {\text{M}}{{\text{R}}_i} 请求被拒绝,Return 39. end if 40. end if -
[1] 唐伦, 吴婷, 周鑫隆, 等. 一种基于联邦学习资源需求预测的虚拟网络功能迁移算法[J]. 电子与信息学报, 2022, 44(10): 3532–3540. doi: 10.11999/JEIT210743TANG Lun, WU Ting, ZHOU Xinlong, et al. A virtual network function migration algorithm based on federated learning prediction of resource requirements[J]. Journal of Electronics &Information Technology, 2022, 44(10): 3532–3540. doi: 10.11999/JEIT210743 [2] LIU Liang, GUO Songtao, LIU Guiyan, et al. Joint dynamical VNF placement and SFC routing in NFV-enabled SDNs[J]. IEEE Transactions on Network and Service Management, 2021, 18(4): 4263–4276. doi: 10.1109/TNSM.2021.3091424 [3] 徐勇军, 谷博文, 谢豪, 等. 全双工中继协作下的移动边缘计算系统能耗优化算法[J]. 电子与信息学报, 2021, 43(12): 3621–3628. doi: 10.11999/JEIT200937XU Yongjun, GU Bowen, XIE Hao, et al. Energy consumption optimization algorithm for full-duplex relay-assisted mobile edge computing systems[J]. Journal of Electronics &Information Technology, 2021, 43(12): 3621–3628. doi: 10.11999/JEIT200937 [4] MALI R, ZHANG Xijun, and QIAO Chunming. Benefits of multicasting in all-optical networks[C]. SPIE 3531, All-Optical Networking: Architecture, Control, and Management Issues. Boston, United States, 1998: 209–220. [5] Grand View Research. Video streaming market size, share & trends analysis report by streaming type, by solution, by platform, by service, by revenue model, by deployment type, by user, by region, and segment forecasts, 2023 – 2030[EB/OL].https://www.grandviewresearch.com/industry-analysis/video-streaming-market, 2023. [6] XIE Yanghao, HUANG Lin, KONG Yuyang, et al. Virtualized network function forwarding graph placing in SDN and NFV-Enabled IoT networks: A graph neural network assisted deep reinforcement learning method[J]. IEEE Transactions on Network and Service Management, 2022, 19(1): 524–537. doi: 10.1109/TNSM.2021.3123460 [7] XU Zichuan, LIANG Weifa, HUANG Meitian, et al. Approximation and online algorithms for NFV-enabled multicasting in SDNs[C]. 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS), Atlanta, USA, 2017: 625–634. [8] MUHAMMAD A, SORKHOH I, QU Long, et al. Delay-sensitive multi-source multicast resource optimization in NFV-enabled networks: A column generation approach[J]. IEEE Transactions on Network and Service Management, 2021, 18(1): 286–300. doi: 10.1109/TNSM.2021.3049718 [9] 孔紫璇, 李航, 向万, 等. 用户动态接入下的多播业务链部署和调整方法[J]. 北京邮电大学学报, 2022, 45(6): 53–59. doi: 10.13190/j.jbupt.2022-116KONG Zixuan, LI Hang, XIANG Wan, et al. Multicast service chain deployment and adjustment method under user dynamic access[J]. Journal of Beijing University of Posts and Telecommunications, 2022, 45(6): 53–59. doi: 10.13190/j.jbupt.2022-116 [10] WANG Xinhan, XING Huanlai, SONG Fuhong, et al. Dynamic multicast-oriented virtual network function placement with SFC request prediction[C]. 2022 14th International Conference on Communication Software and Networks (ICCSN), Chongqing, China, 2022: 81–88. [11] JIA Mike, LIANG Weifa, HUANG Meitian, et al. Routing cost minimization and throughput maximization of NFV-enabled unicasting in software-defined networks[J]. IEEE Transactions on Network and Service Management, 2018, 15(2): 732–745. doi: 10.1109/TNSM.2018.2810817 [12] XU Zichuan, LIANG Weifa, HUANG Meitian, et al. Efficient NFV-enabled multicasting in SDNs[J]. IEEE Transactions on Communications, 2019, 67(3): 2052–2070. doi: 10.1109/TCOMM.2018.2881438 [13] REN Bangbang, GUO Deke, SHEN Yulong, et al. Embedding service function tree with minimum cost for NFV-enabled multicast[J]. IEEE Journal on Selected Areas in Communications, 2019, 37(5): 1085–1097. doi: 10.1109/JSAC.2019.2906764 [14] ASGARIAN M, MIRJALILY G, and LUO Zhiquan. Trade-off between efficiency and complexity in multi-stage embedding of multicast VNF service chains[J]. IEEE Communications Letters, 2022, 26(2): 429–433. doi: 10.1109/LCOMM.2021.3132134 [15] REN Haozhe, XU Zichuan, LIANG Weifa, et al. Efficient algorithms for delay-aware NFV-enabled multicasting in mobile edge clouds with resource sharing[J]. IEEE Transactions on Parallel and Distributed Systems, 2020, 31(9): 2050–2066. doi: 10.1109/TPDS.2020.2983918 [16] ALHUSSEIN O, DO P T, YE Qiang, et al. A virtual network customization framework for multicast services in NFV-enabled core networks[J]. IEEE Journal on Selected Areas in Communications, 2020, 38(6): 1025–1039. doi: 10.1109/JSAC.2020.2986591 [17] REN Cheng, CHEN Xuxiang, XIANG Haiyun, et al. On efficient delay-aware multisource multicasting in NFV-Enabled softwarized networks[J]. IEEE Transactions on Network and Service Management, 2022, 19(3): 3371–3386. doi: 10.1109/TNSM.2022.3188777 [18] LI Hang, WANG Luhan, ZHU Zhenghe, et al. Multicast service function chain orchestration in SDN/NFV-Enabled networks: Embedding, readjustment, and expanding[J]. IEEE Transactions on Network and Service Management, 2023. [19] MIRJALILY G, ASGARIAN M, and LUO Zhiquan. Interference-aware NFV-enabled multicast service in resource-constrained wireless mesh networks[J]. IEEE Transactions on Network and Service Management, 2022, 19(1): 424–436. doi: 10.1109/TNSM.2021.3083798 [20] Python Community. Networkx 3.1[EB/OL]. https://pypi.org/project/networkx/, 2023. [21] Internet topology[EB/OL]. http://topology-zoo.org/maps/, 2022. [22] CHENG Yulun and YANG Longxiang. VNF deployment and routing for NFV-enabled multicast: A Steiner tree-based approach[C]. 2017 9th International Conference on Wireless Communications and Signal Processing (WCSP), Nanjing, China, 2017: 1–4. 期刊类型引用(0)
其他类型引用(1)
-