CN112437010B - 服务功能聚合树的嵌入方法、装置、电子设备及存储介质 - Google Patents
服务功能聚合树的嵌入方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112437010B CN112437010B CN202110108124.1A CN202110108124A CN112437010B CN 112437010 B CN112437010 B CN 112437010B CN 202110108124 A CN202110108124 A CN 202110108124A CN 112437010 B CN112437010 B CN 112437010B
- Authority
- CN
- China
- Prior art keywords
- embedding
- service function
- aggregation tree
- function aggregation
- optimal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请中一个或多个实施例提供一种服务功能聚合树的嵌入方法、装置、电子设备及存储介质,包括:建立服务功能聚合树的嵌入任务;基于服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型;基于服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法;以最优嵌入路径算法为指导执行服务功能聚合树的嵌入任务。本申请在不出现过多冗余的虚拟网络功能实例的基础上,不仅能够保证每条流量请求能够在穿过整条服务功能链的基础上到达目标节点,而且能够聚合虚拟网络功能实例来节省资源并减小代价,降低了开销。
Description
技术领域
本申请中一个或多个实施例涉及数据嵌入技术领域,尤其涉及服务功能聚合树的嵌入方法、装置、电子设备及存储介质。
背景技术
现有技术中,通过网络功能虚拟化(network function virtualization, NFV)技术,可以灵活部署和升级网络安全功能,但在相同防御模式下,需要将服务功能链(Servicefunction chain, SFC)嵌入网络中的同时,保证嵌入代价足够小。
通常,采用的方法是针对每条流量请求独立嵌入一条SFC,但这种方法将会产生高开销的问题,部署了很多冗余的虚拟网络功能(virtual network function, VNF)实例。
发明内容
有鉴于此,本申请中一个或多个实施例的目的在于提出一种服务功能聚合树的嵌入方法、装置、电子设备及存储介质,以解决现有技术存在的上述至少一个问题。
基于上述目的,本申请中一个或多个实施例提供了一种服务功能聚合树的嵌入方法,包括:
建立服务功能聚合树的嵌入任务;
基于所述服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型;
基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法;
以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务。
基于同一发明构思,本申请中一个或多个实施例还提出了一种服务功能聚合树的嵌入装置,包括:
建立模块,被配置为建立服务功能聚合树的嵌入任务;
模型构建模块,被配置为基于所述服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型;
确定模块,被配置为基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法;
执行模块,被配置为以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务。
基于同一发明构思,本申请中一个或多个实施例还提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一项所述的服务功能聚合树的嵌入方法。
基于同一发明构思,本申请中一个或多个实施例还提出了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任意一项所述的服务功能聚合树的嵌入方法。
从上面所述可以看出,本申请中一个或多个实施例提供的一种服务功能聚合树的嵌入方法,包括:建立服务功能聚合树的嵌入任务;基于所述服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型;基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法;以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务。本申请提供的方法通过建立服务功能聚合树的嵌入任务,将SFC的嵌入问题转化为服务功能聚合树的嵌入任务,充分利用NFV的便捷性,即灵活部署和自动扩容,来将多条SFC合并成一个服务功能聚合树,能够通过聚合VNF实例来节省资源并减小代价;为了确定每个VNF需要部署的实例数量,并保证给每条流量请求设计路由使得它们在到达终点前穿过整条SFC,基于服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型,在分析了服务功能聚合树嵌入任务的优化目标和各个约束后,将其建模为整数规划,进一步地,通过引入中间变量将该嵌入任务转化为整数线性规划;进一步,利用图论将嵌入任务转化为图上选路问题,基于服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法,从而解决并执行服务功能聚合树的嵌入任务,在不出现过多冗余的VNF实例的基础上,不仅能够保证每条流量请求能够在穿过整条SFC的基础上到达目标节点,而且通过聚合VNF来节省资源并减小代价,降低了开销。
附图说明
为了更清楚地说明本申请中一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请中一个或多个实施例中将SFC嵌入网络中的示例性结构示意图;
图2为本申请中一个或多个实施例中一种服务功能聚合树的嵌入方法的流程图;
图3(a)为本申请中一个或多个实施例中服务功能聚合树的嵌入方案的示例性结构示意图;
图3(b)为本申请中一个或多个实施例中服务功能聚合树的嵌入方案的又一示例性结构示意图;
图3(c)为本申请中一个或多个实施例中服务功能聚合树的嵌入方案的又一示例性结构示意图;
图4为本申请中一个或多个实施例中覆盖网络的示例性结构示意图;
图5为本申请中一个或多个实施例中小规模网络拓扑结构示意图;
图6(a)为本申请中一个或多个实施例中不同SFC长度下的总代价变化对比实验结果示意图;
图6(b)为本申请中一个或多个实施例中不同流量请求个数下的总代价变化对比实验结果示意图;
图7(a)为本申请中一个或多个实施例中不同SFC长度下不同算法的运行时间对比实验结果示意图;
图7(b)为本申请中一个或多个实施例中不同流量请求个数下不同算法运行时间对比实验结果示意图;
图8(a)为本申请中一个或多个实施例中1000条流量请求时不同SFC长度下的总代价变化对比实验结果示意图;
图8(b)为本申请中一个或多个实施例中SFC长度为6时不同个数流量请求下的总代价变化对比实验结果示意图;
图9(a)为本申请中一个或多个实施例中1000条流量请求时不同SFC长度下不同算法运行时间对比实验结果示意图;
图9(b)为本申请中一个或多个实施例中SFC长度为6时,不同个数流量请求下不同算法运行时间对比实验结果示意图;
图10(a)为本申请中一个或多个实施例中不同VNF候选节点集合大小下服务功能聚合树的嵌入总代价对比实验结果示意图;
图10(b)为本申请中一个或多个实施例中VNF部署代价为0时不同SFC长度下服务功能聚合树的嵌入总代价对比实验结果示意图;
图11为本申请中一个或多个实施例中一种服务功能聚合树的嵌入装置的结构示意图;
图12为本申请中一个或多个实施例中一种电子设备的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本申请中一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本申请中一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术部分所述,现有技术中,互联网中的应用、服务和数据都面临着各种各样的网络威胁,为了保护这些应用、服务和数据,人们在终端系统中部署了很多安全软件来提升系统安全性。然而,在终端系统中部署这些额外的安全软件将会消耗一些原本用于应用的资源。将安全功能部署在网络核心中将能同时实现应用保护和减少终端系统资源的消耗。
尽管在网络核心部署安全功能很具有吸引力,对运营商而言,仍然有两个现实问题需要考量。第一,这些安全功能通常都需要定制并用特殊的基于硬件的中间件实现。这些中间件升级不便,使得它们无法应对新型的攻击。第二,一些攻击流量需要被多个不同的安全功能合作才能清除。为了引导流量经过这些安全功能,将不得不进行路由更改,产生额外的路由开销。
而网络功能虚拟化(network function virtualization, NFV)的出现使得上述问题可以很好的被解决。NFV致力于将定制的中间件功能以可运行在通用服务器上的软件来代替,即虚拟网络功能(virtual network function, VNF)。通过NFV技术,运营商可以灵活部署和升级网络安全功能。
参考图1,申请人通过研究现有技术发现,提升网络安全的更一般场景是引导流量经过一系列预先定义顺序的网络功能,即服务功能链(Service function chain, SFC)。图1给出了一个将SFC嵌入网络中的例子。三个用户(例如,图1中用户1—用户3)希望通过接入点接入远方数据中心(例如,Datacenter)的应用。需要在核心网络(例如,Core Network)中嵌入一条SFC来确保流量在最终接入服务前都进行过安全检查。本例中的SFC由三个VNF实例(例如,图1中f 1 :防火墙(Firewall)、f 2 :杀毒软件(Antivirus)和f 3 :入侵检测系统(IDS))组成,即。在将SFC嵌入网络中,一个最基本的考量就是如何以最小的代价将其嵌入网络中,包括VNF部署代价和穿越整条SFC的路由代价。最简单的方法是针对每条流量请求独立嵌入一条SFC,但是,这种方法将会产生高开销,因为需要部署很多冗余的VNF实例。而申请人通过研究发现可以充分利用NFV的便捷性,即灵活部署和自动扩容,来将多条SFC合并成一个服务功能聚合树(aggregated service function tree, ASFT)。ASFT能够通过聚合VNF实例来节省资源和减小代价。
正因如此,本申请提供的方法通过建立服务功能聚合树的嵌入任务,将SFC的嵌入问题转化为服务功能聚合树的嵌入任务,充分利用NFV的便捷性,即灵活部署和自动扩容,来将多条SFC合并成一个服务功能聚合树,能够通过聚合VNF实例来节省资源并减小代价;为了确定每个VNF需要部署的实例数量,并保证给每条流量请求设计路由使得它们在到达终点前穿过整条SFC,基于服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型,在分析了服务功能聚合树嵌入任务的优化目标和各个约束后,将其建模为整数规划,进一步地,通过引入中间变量将该嵌入任务转化为整数线性规划;进一步,利用图论将嵌入任务转化为图上选路问题,基于服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法,从而解决并执行服务功能聚合树的嵌入任务,在不出现过多冗余的VNF实例的基础上,保证每条流量请求能够在穿过整条SFC的基础上到达目标节点的同时,聚合VNF实例来节省资源并减小代价,降低了开销。
以下,通过具体的实施例进一步详细说明本公开的技术方案。
参考图2,因此本申请中一个或多个实施例提供的一种服务功能聚合树的嵌入方法,具体包括以下步骤:
S201:建立服务功能聚合树的嵌入任务。
本实施例中,根据服务功能聚合树在网络中的嵌入问题,建立服务功能聚合树的嵌入任务。具体地,在建立服务功能聚合树的嵌入任务之前,可以获取若干条流量请求;流量请求表示为,其中表示第i个流量请求的源节点,表示所有流量请求的共同目的节点,表示第i个流量请求的大小,表示流量请求的收益,表示服务功能链;根据流量请求确定实例数量,在获取流量请求并确定需要放置的实例的数量后,需要从两个角度对实例的放置进行考虑。
需要说明的是,在考虑无顺序约束的实例放置场景时,这一类工作在放置VNF实例时,不考虑VNF实例访问顺序的约束。现有技术中,针对单条流的场景提出了一种最小化部署代价的启发式算法。对于更一般的多条流场景而言,现有技术中,也对最小化流量路由代价和VNF部署代价进行了研究。可以将VNF实例放置问题转化为经典次模覆盖问题并提出了相应的近似算法。现有技术从保证VNF可用性的基础上研究了最小化资源消耗的VNF实例放置。
而在考虑有顺序约束的放置场景时,针对单条流场景,现有技术研究了有顺序依赖且具有流量整形作用的VNF实例放置问题。对于多条流的场景,现有技术综合考虑了VNF部署代价和流量路由代价,并研究了有SFC约束的最短路问题和最大流问题。进一步地,研究了DAG形式的服务功能嵌入问题。
在一些可选的实施方式中,参考图1,尽管NFV使得VNF的部署更加灵活,一些VNF的部署依然与特定节点是强关联的,且一些VNF实例只能在特定的某些节点上部署,例如IP多媒体子系统必须部署在网络边缘,但是深度包检测功能则可以被部署在网络任意位置处。在根据流量请求确定实例数量之后,根据实例数量确定若干实例层,其中每个实例层至少包括一个实例;逐层连接所有实例层后,能够确定服务功能聚合树。具体地,图1中,实例可以被部署在节点,实例可以被部署在节点,实例可以被部署在节点。除此之外,每个VNF实例在不同节点上的部署代价是不同的,不失一般性地,图3(a)——图3(c)中节点旁的数字代表相应VNF实例在该节点上的部署代价,链路上的数字表示单位流量请求的传输代价,而服务功能聚合树的嵌入任务的目的就是让每条流量请求在到达目标节点(即终点)前都能够访问完整SFC,同时最小化这一过程的总代价。
在一些可选的实施方式中,参考图3(a),为每条流量请求建立了一个独立的SFC,使得VNF实例的部署代价为1+1+1+6+8+6+4+5+3=35,流量请求的路由代价为9+8+10=27,其总代价为35+27-3×0=62。与该方案明显对比的是,参考图3(b)中只嵌入一条SFC的代价为66,参考图3(c)中嵌入一棵服务功能聚合树的代价仅为44。为了以最小的代价来嵌入SFC,有如下定义:
其一,服务功能聚合树(即ASFT)表示给定一个网络和多条流量请求,这些流量请求有一个共同的SFC请求,即。需要在网络中部署一些VNF实例来满足每条流量请求的SFC请求,这会在网络中嵌入一个树形拓扑的服务链,即服务功能聚合树。假设需要在网络中部署多个VNF实例来保证每条流都能经过完整的SFC,。用表示实例的个数,则最小代价的SFC嵌入方案即为嵌入一颗服务功能聚合树,即 。证明过程如下:为了保证每条流都能穿过一条完整的SFC,则每个的实例必定会连接一个的实例。同时,每个的实例至少连接一个的实例,否则为了最小化部署代价,这个的实例不应该被部署。因此可以得出。
S202:基于所述服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型。
本实施例中,在建立了服务功能聚合树的嵌入任务后,可以基于服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型,用更加简便的模型表示服务功能聚合树的嵌入任务,能够更容易求解出该嵌入任务最优的解。具体地,表示网络,表示个流量请求。每个VNF实例的候选部署节点集合用表示。表示将实例部署在节点上的代价。连接节点和节点的边在传输单位流量请求时的代价为。表示连接节点和节点的最短路径。在网络中为这些流量请求部署SFC的总代价共分为三个部分:所有VNF的部署代价,所有流量请求的路由代价和服务这些流量请求产生的收益。
所有流量请求的传输代价表示为
所有VNF实例的部署代价表示为
服务这些流量请求得到的收益表示为
综上所述,可以将服务功能聚合树的嵌入问题进行初步建模,初步服务功能聚合树嵌入模型表示为
公式(5)可以被重写为
最终,可以将服务功能聚合树的嵌入问题用线性整数规划建模,得到的服务功能聚合树嵌入模型表示为
表1 符号表示
需要说明的是,在得到服务功能聚合树嵌入模型后,可以对其进行复杂性分析,来确定建立的模型问题的处理难度。具体地,首先考虑一种特殊情况,即SFC只含有1个VNF(n=1),且服务请求的收益均为。给定一个网络图,其中每条边的权重均大于0。仅有的VNF实例可以以不同代价被部署在一些节点上。在网络图中添加一个额外的节点来表示所有请求的共同目的节点,并将它与中所有的节点以代价为0相连。则在上述的特殊情况中,服务功能聚合树的最优嵌入代价可以被分为3个部分:其一,所有实例的部署代价;其二,将所有流量请求路由至的传输代价;其三,将所有流量请求由路由至的代价。因为中所有节点与的连接代价为0,所以第三部分的代价可以不用考虑。在删除第三部分的代价以后,这种特殊情况下的问题即退化为一个经典的NP-hard问题,无容量设施选址问题。假设服务功能聚合树的嵌入问题存在一个多项式时间算法,则意味着可以用它来解决无容量设施选址问题,这显然与无容量设施选址问题是NP-hard这一事实违背。因此,可以得出结论,服务功能聚合树的嵌入问题也是NP-hard的。其中,NP-hard指所有NP问题都能在多项式时间复杂度内归约到的问题。
S203:基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法。
本实施例中,在确定了服务功能聚合树嵌入模型和次模函数之间的联系后,可以根据最大化次模函数框架设计服务功能聚合树的嵌入问题的近似算法,即基于服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法(也可称为MSF算法)。
在一些可选的实施方式中,基于服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法具体包括:定义节点子集Q;根据所述节点子集Q构建传输路径;根据所述传输路径构建所述服务功能聚合树嵌入模型的可行解集;根据所述可行解集和次模函数确定所述最优嵌入路径算法。
需要说明的是,在利用整数线性规划对服务功能聚合树的嵌入问题进行建模之后,从公式(4)-(6),可以看出变量决定了的路由。例如,如果,则的路由是,其中子路径表示中到的最短。换句话说,的路由也决定了。因此,如果可以为每一条流量请求找到一条传输路径 ,其中,则集合可以表示模型(15)的可行解。从路径中,可以得到 。易知,集合满足模型(15)。
在一些可选的实施方式中,可以定义集合和节点子集,其中的第个元素。可以按照如下步骤生成模型(15)的可行解。对于,可以从中随机选择并且构建传输路径 。对于每条传输路径,可以得到 ,则集合 即表示找到的可行解集。
模型(19)可以被视为次模函数最大化问题的实例。
具体地,参考表2中示出的最优嵌入路径算法的伪代码,令 表示第次迭代时的解,其中。将加入时,目标函数的增量为。在第次迭代时,选择满足的加入。尽管对于任意都可以生成一个可行解,为了使得最优嵌入路径算法可行,仍然需要解决下述两个挑战:其一就是为了使算法初始条件满足,需要确保,即;其二就是因为可以大至,因此需要能够快速有效的找到满足条件的,即。
表2 最优嵌入路径算法的伪代码
在一些可选的实施方式中,在根据可行解集和次模函数确定最优嵌入路径算法之后,还包括:获取网络G、流量请求、服务功能链、虚拟网络功能的候选部署节点集合和虚拟网络功能的部署代价;利用最优嵌入路径算法根据网络G、流量请求、服务功能链、虚拟网络功能的候选部署节点集合和虚拟网络功能的部署代价确定算法解集。具体地,参考图4,为了解决上述的挑战,申请人设计了一种使用overlay网络(即覆盖网络)的方法来寻找 。图4给出了在第次迭代时构造overlay网络的示例,将这种通过构造overlay网络寻找的方法记为BON(based on overlaynetwork)。BON包括如下步骤:首先构造图。将中的每一个节点都与中的所有节点相连。将中的所有节点均与相连。在图4给出的例子中,,,;给中的边分配权重,共分为两种情况。情况一,如果被包含,则将的权重设置为 ,其中表示点和点在图中最短路的代价。情况二,如果点没有被包含,则将的权重设置为。为与的所有边设置权重为。图4给出了一个示例,在第次迭代中被部署在节点上,且;对于中的每个节点,找到其与的最短路。使用DAG-Shortest-Paths算法来找出具有负权重的最短路。在删除目的节点后,这些最短路可以构成候选路径集合。特别的,。对于。
在一些可选的实施方式中,可以对得到的最优嵌入路径算法的性能进行分析,具体地,最优嵌入路径算法的迭代次数小于,也即,在步骤S201中已经证明了,且对于的任何一个实例来说,都只有一条路径连接。这样在每次迭代中,都必须新添加一个到使得能够占用一个新的且是集合中的点来部署。这一性质确保了。在中,总共有个节点和条边。在中运行DAG-Shortest-Paths算法的时间复杂度为 。在第次循环中,构造需要花费。在中有个节点没有被覆盖。对于这个节点中的每个节点,使用DAG-Shortest-Paths算法来找出候选路径并且花费额外的步来计算。可以得出第次循环的时间复杂度为。最优嵌入路径算法至多迭代次,因此最优嵌入路径算法的总时间复杂度表示为
则有
和
S204:以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务。
本实施例中,在得到最优嵌入路径算法后,以其为指导执行服务功能聚合树的嵌入任务。具体地,在一些可选的实施方式中,当服务功能聚合树嵌入模型中所有虚拟网络功能的部署代价均为0时,判断算法解集是否满足最优解集条件;最优解集条件表示为
需要说明的是,具体可以理解为如果服务功能聚合树的嵌入问题中,所有VNF的部署代价均为0,即。则如果最优嵌入路径算法给出的解满足,则该解是最优解,即。对于任意可行的算法解集,可以知道 。对于任意的,能够导出,。对于 能够确保始终成立。因此可以设置而不是。进一步地,有
为了验证本申请提供的方法的有益效果,申请人设置了对比实验。参考图5,构建一个小规模网络,相关数据是来自于SNDlib库的Atlanta网络拓扑(共有15个节点和22条边)。在其中加入了四个基站和一个数据中心(即Central Office),另外,还构建了一个有500个节点的随机ER图,并随机选取40个节点作为网络接入点,随机选择一个节点作为数据中心。
对于链路代价,在Atlanta网络,链路代价正比于其在地理空间上的距离。新增的基站和数据中心与网络连接的代价为平均代价。对于500节点网络,将其均匀分布在的网格,并将链路代价设置为其在欧氏空间的距离。对于流量请求,随机选择一个接入点作为流的源节点。不失一般性的,设置流量请求为单位大小且服务该流量请求的收益为0,即和。对于服务功能链,将SFC的长度设置为2到10。对于每个VNF,设置2到10个候选部署节点。部署代价设置为20至30的随机数。
采用两个不同的算法与本申请提供的最优嵌入路径算法进行对比,其中,FG算法(FastGreedy algorithm)是假设流量请求的路由路径是固定的,其优化目标是通过最大化共享VNF的个数来最小化总的部署代价,为了适应实验场景,将每条流量请求的路径设置为沿着最短路转发;SG算法(SimpleGreedy algorithm)为每个流量请求独立嵌入一个最优的SFC,然后将同一节点上的相同VNF进行合并。最后利用CPLEX求解器来对ASFT的整数线性规划问题进行求解以得到最优值。
参考图6(a),在小规模实验中,使用图5中的网络拓扑,可以看出嵌入ASFT的总代价随着SFC长度增加而增加。导致这一现象的原因就在于更长的SFC不仅有更多的VNF且会占用更多的链路。另一方面,可以看到最优嵌入路径算法和另外两种算法的差距也在随着SFC长度增加而增加,这种差距最大可以分别达到7.22%和16.6%。图6(b)也表现出类似的趋势,即ASFT的嵌入代价随着请求个数的增加而增加。与两种对比算法相比,最优嵌入路径算法可以最多可以分别减少6.09%和13.86%的代价。
参考图7(a)和图7(b),可以看出代表CPLEX运行时间的曲线远远高于其他三种算法。CPLEX的运行时间平均比最优嵌入路径算法高13.4倍。从图7(a)和图7(b)的差别,可以看出FG算法的运行时间受SFC长度要更大,其是随着SFC长度而呈现指数增加。
参考图8(a)和图8(b),在本组实验中,采用生成的具有500个节点的ER随机网络。注意到,从同一网络接入点过来的流可以被合并为一条大流。类似图6(a)和图6(b),图8(a)和图8(b)也表明嵌入ASFT的总代价是随着SFC长度增加和流请求个数增加而增加的。另一方面,代表三种算法的三个曲线之间的差距要比图6(a)和图6(b)大的多。其原因在于FG算法只优化VNF的部署代价,使得其优化空间要小于最优嵌入路径算法。在图8(a)中,可以看到最优嵌入路径算法较FG算法和SG算法可以分别减少15.1%和19.0%的代价。在图8(b)中,可以减少22.0%和24.1%的代价。
参考图9(a)和图9(b),FG算法的运行时间一开始是要快于最优嵌入路径算法的,但是随着SFC长度的增加,其运行时间很快要超过最优嵌入路径算法。图9(b)中,三种算法的运行时间没有随着流请求个数的增加而增加,因为在本组实验中只有40个网络接入点,可以将许多小流合并为40个大流而不改变ASFT的最优嵌入方案。如此,算法的运行时间不再依赖于流的个数。图9(b)的实验结果表明,最优嵌入路径算法可以被应用在有大量流量请求的边缘服务中。
参考图10(a)和图10(b),示出了两种特殊情况下的实验。在本组实验中,设置了两种特殊情况。第一种情况是评估VNF候选节点集合大小的影响,即有如下设置。图10(a)展现了总嵌入代价的变化随着从2增加到10。在这个实验中,设置。可以看出候选集合大小的值越大,则ASFT的嵌入总代价越小。造成这种现象的原因在于候选集合越大,则优化空间越大。因为最优嵌入路径算法在VNF的部署代价为0和的情况下可以找到最优解。为了满足这一特殊条件,将每条流量请求的服务收益设置为中平均最短路的10倍。另一方面,为了使得CPLEX能够找到最优解,在小规模网络中进行该实验并选定5条流量请求。图10(b)的结果表明,所有的4种算法都可以在这种特殊情况下找到最优解。因此,最优嵌入路径算法可以在特殊情况下找到最优解的结论是正确的。
从上面所述可以看出,本申请中一个或多个实施例提供的一种服务功能聚合树的嵌入方法,包括:建立服务功能聚合树的嵌入任务;基于所述服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型;基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法;以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务。本申请提供的方法通过建立服务功能聚合树的嵌入任务,将SFC的嵌入问题转化为服务功能聚合树的嵌入任务,充分利用NFV的便捷性,即灵活部署和自动扩容,来将多条SFC合并成一个服务功能聚合树,能够通过聚合VNF来节省资源并减小代价;为了确定每个VNF需要部署的实例数量,并保证给每条流量请求设计路由使得它们在到达终点前穿过整条SFC,基于服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型,在分析了服务功能聚合树嵌入任务的优化目标和各个约束后,将其建模为整数规划,进一步地,通过引入中间变量将该嵌入任务转化为整数线性规划;进一步,利用图论将嵌入任务转化为图上选路问题,基于服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法,从而解决并执行服务功能聚合树的嵌入任务,在不出现过多冗余的VNF实例的基础上,不仅能够保证每条流量请求能够在穿过整条SFC的基础上到达目标节点,而且能够通过聚合VNF来节省资源并减小代价,降低了开销。
可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。
需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,本申请中一个或多个实施例还提出了一种服务功能聚合树的嵌入装置,参考图11,所述服务功能聚合树的嵌入装置包括:
建立模块,被配置为建立服务功能聚合树的嵌入任务;
模型构建模块,被配置为基于所述服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型;
确定模块,被配置为基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法;
执行模块,被配置为以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的服务功能聚合树的嵌入方法。
图12示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1210、存储器1220、输入/输出接口1230、通信接口1240和总线1250。其中处理器1210、存储器1220、输入/输出接口1230和通信接口1240通过总线1250实现彼此之间在设备内部的通信连接。
处理器1210可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1220可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1220可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1220中,并由处理器1210来调用执行。
输入/输出接口1230用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触控屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1240用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1250包括一通路,在设备的各个组件(例如处理器1210、存储器1220、输入/输出接口1230和通信接口1240)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1210、存储器1220、输入/输出接口1230、通信接口1240以及总线1250,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本说明书一个或多个实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的服务功能聚合树的嵌入方法。
本实施例的非暂态计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的服务功能聚合树的嵌入方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请中一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本说明书一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本说明书一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本说明书一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本说明书一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请中一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请中一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (7)
1.一种服务功能聚合树的嵌入方法,其特征在于,包括:
建立服务功能聚合树的嵌入任务;所述服务功能聚合树表示给定一个网络和多条流量请求;在所述网络中部署多个VNF实例以保证每条所述流量请求都能够经过完整的SFC,,用表示实例的个数,嵌入一颗服务功能聚合树;
基于所述服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型;
基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法;所述基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法,具体包括:
定义节点子集Q;
根据所述可行解集和次模函数确定所述最优嵌入路径算法;
所述根据所述可行解集和次模函数确定所述最优嵌入路径算法,之后还包括:
获取网络G、所述流量请求、所述服务功能链、所述虚拟网络功能的候选部署节点集合和所述虚拟网络功能的部署代价;
利用所述最优嵌入路径算法根据所述网络G、流量请求、服务功能链、虚拟网络功能的候选部署节点集合和虚拟网络功能的部署代价确定算法解集;
以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务;
所述以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务,具体包括:
当所述服务功能聚合树嵌入模型中所有所述虚拟网络功能的部署代价均为0时,判断所述算法解集是否满足最优解集条件;所述最优解集条件表示为
若是,则以所述算法解集执行所述服务功能聚合树的嵌入任务。
3.根据权利要求2所述的服务功能聚合树的嵌入方法,其特征在于,所述根据所述流量请求确定实例数量,之后还包括:
根据所述实例数量确定若干实例层;其中每个所述实例层至少包括一个实例;
逐层连接所有所述实例层以确定服务功能聚合树。
5.一种服务功能聚合树的嵌入装置,其特征在于,包括:
建立模块,被配置为建立服务功能聚合树的嵌入任务;所述服务功能聚合树表示给定一个网络和多条流量请求;在所述网络中部署多个VNF实例以保证每条所述流量请求都能够经过完整的SFC,,用表示实例的个数,嵌入一颗服务功能聚合树;
模型构建模块,被配置为基于所述服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型;
确定模块,被配置为基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法;所述基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法,具体包括:
定义节点子集Q;
根据所述可行解集和次模函数确定所述最优嵌入路径算法;
所述根据所述可行解集和次模函数确定所述最优嵌入路径算法,之后还包括:
获取网络G、所述流量请求、所述服务功能链、所述虚拟网络功能的候选部署节点集合和所述虚拟网络功能的部署代价;
利用所述最优嵌入路径算法根据所述网络G、流量请求、服务功能链、虚拟网络功能的候选部署节点集合和虚拟网络功能的部署代价确定算法解集;
执行模块,被配置为以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务;
所述以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务,具体包括:
当所述服务功能聚合树嵌入模型中所有所述虚拟网络功能的部署代价均为0时,判断所述算法解集是否满足最优解集条件;所述最优解集条件表示为
若是,则以所述算法解集执行所述服务功能聚合树的嵌入任务。
6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任意一项所述的服务功能聚合树的嵌入方法。
7.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1至4任意一项所述的服务功能聚合树的嵌入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110108124.1A CN112437010B (zh) | 2021-01-27 | 2021-01-27 | 服务功能聚合树的嵌入方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110108124.1A CN112437010B (zh) | 2021-01-27 | 2021-01-27 | 服务功能聚合树的嵌入方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112437010A CN112437010A (zh) | 2021-03-02 |
CN112437010B true CN112437010B (zh) | 2021-04-27 |
Family
ID=74697320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110108124.1A Active CN112437010B (zh) | 2021-01-27 | 2021-01-27 | 服务功能聚合树的嵌入方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112437010B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114466059B (zh) * | 2022-01-20 | 2023-06-02 | 天津大学 | 一种向移动边缘计算系统提供可靠服务功能链的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10003530B2 (en) * | 2014-07-22 | 2018-06-19 | Futurewei Technologies, Inc. | Service chain header and metadata transport |
CN108768736B (zh) * | 2018-06-05 | 2021-04-23 | 中国人民解放军国防科技大学 | 一种混合型服务功能链嵌入代价的优化方法 |
CN108494685B (zh) * | 2018-06-05 | 2020-07-31 | 中国人民解放军国防科技大学 | 服务链在多播路由中的最优嵌入方法 |
CN111447266B (zh) * | 2020-03-24 | 2022-11-11 | 中国人民解放军国防科技大学 | 一种基于链的移动边缘计算模型及其服务请求、调度方法 |
-
2021
- 2021-01-27 CN CN202110108124.1A patent/CN112437010B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112437010A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4020880A1 (en) | Method, apparatus and machine-readable storage to verify trained models in an edge environment | |
JP6815385B2 (ja) | アプリケーションのコード難読化のためのシステムおよび方法 | |
US10255443B2 (en) | Method, apparatus, system and non-transitory computer readable medium for code protection | |
JP6936016B2 (ja) | パッケージファイルに対する機能拡張方法およびシステム | |
CN106201481A (zh) | 应用程序开发系统中的组件管理方法和装置 | |
US11449783B2 (en) | Trivalent lattice scheme to identify flag qubit outcomes | |
CN112256275B (zh) | 代码混淆方法、装置、电子设备及介质 | |
TW201511486A (zh) | 用於無線電波形產生裝置的任意無線電波形技術方案之執行時生成、指派、部署及更新技術 | |
WO2017026738A1 (ko) | 어플리케이션의 코드를 보호하기 위한 시스템 및 방법 | |
US20110231813A1 (en) | Apparatus and method for on-demand optimization of applications | |
CN112437010B (zh) | 服务功能聚合树的嵌入方法、装置、电子设备及存储介质 | |
CN114254336A (zh) | 用于通过使用边界标签来实施数据边界的方法、装置和系统 | |
CN107111495A (zh) | 用于虚拟和接口方法调用的装置和方法 | |
CN116933886B (zh) | 一种量子计算执行方法、系统、电子设备及存储介质 | |
US9519566B2 (en) | Modeling memory use of applications | |
CN109710382A (zh) | 一种虚拟化平台构建方法 | |
CN108140095B (zh) | 分布式大数据安全体系架构 | |
US10642580B1 (en) | Simplifying and reusing visual programming graphs | |
CN115269198A (zh) | 基于服务器集群的访问请求处理方法及相关设备 | |
US20210367956A1 (en) | Cyber attack coverage | |
KR20210141726A (ko) | 8비트 및 10비트 코어를 이용한 기본 변환 | |
JP7015120B2 (ja) | アプリケーションパッケージを提供する方法およびシステム、アプリケーションを実行する方法およびシステム | |
US20240241960A1 (en) | Trusted provenance authority for cloud native computing platforms | |
KR102410810B1 (ko) | 확장 암호연산 처리 방법 및 시스템 | |
WO2024082560A9 (zh) | 固件升级方法、设备、服务器、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |