CN112437010B - 服务功能聚合树的嵌入方法、装置、电子设备及存储介质 - Google Patents

服务功能聚合树的嵌入方法、装置、电子设备及存储介质 Download PDF

Info

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
Application number
CN202110108124.1A
Other languages
English (en)
Other versions
CN112437010A (zh
Inventor
郭得科
任棒棒
廖汉龙
郑龙
罗来龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202110108124.1A priority Critical patent/CN112437010B/zh
Publication of CN112437010A publication Critical patent/CN112437010A/zh
Application granted granted Critical
Publication of CN112437010B publication Critical patent/CN112437010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network 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))组成,即
Figure 309323DEST_PATH_IMAGE001
。在将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:建立服务功能聚合树的嵌入任务。
本实施例中,根据服务功能聚合树在网络中的嵌入问题,建立服务功能聚合树的嵌入任务。具体地,在建立服务功能聚合树的嵌入任务之前,可以获取若干条流量请求;流量请求表示为
Figure 489768DEST_PATH_IMAGE002
,其中
Figure 89377DEST_PATH_IMAGE003
表示第i个流量请求的源节点,
Figure 87289DEST_PATH_IMAGE004
表示所有流量请求的共同目的节点,
Figure DEST_PATH_IMAGE005
表示第i个流量请求的大小,
Figure 873979DEST_PATH_IMAGE006
表示流量请求的收益,
Figure 717170DEST_PATH_IMAGE007
表示服务功能链;根据流量请求确定实例数量,在获取流量请求并确定需要放置的实例的数量后,需要从两个角度对实例的放置进行考虑。
需要说明的是,在考虑无顺序约束的实例放置场景时,这一类工作在放置VNF实例时,不考虑VNF实例访问顺序的约束。现有技术中,针对单条流的场景提出了一种最小化部署代价的启发式算法。对于更一般的多条流场景而言,现有技术中,也对最小化流量路由代价和VNF部署代价进行了研究。可以将VNF实例放置问题转化为经典次模覆盖问题并提出了相应的近似算法。现有技术从保证VNF可用性的基础上研究了最小化资源消耗的VNF实例放置。
而在考虑有顺序约束的放置场景时,针对单条流场景,现有技术研究了有顺序依赖且具有流量整形作用的VNF实例放置问题。对于多条流的场景,现有技术综合考虑了VNF部署代价和流量路由代价,并研究了有SFC约束的最短路问题和最大流问题。进一步地,研究了DAG形式的服务功能嵌入问题。
在一些可选的实施方式中,参考图1,尽管NFV使得VNF的部署更加灵活,一些VNF的部署依然与特定节点是强关联的,且一些VNF实例只能在特定的某些节点上部署,例如IP多媒体子系统必须部署在网络边缘,但是深度包检测功能则可以被部署在网络任意位置处。在根据流量请求确定实例数量之后,根据实例数量确定若干实例层,其中每个实例层至少包括一个实例;逐层连接所有实例层后,能够确定服务功能聚合树。具体地,图1中,实例
Figure 436865DEST_PATH_IMAGE008
可以被部署在节点
Figure DEST_PATH_IMAGE009
,实例
Figure 573054DEST_PATH_IMAGE010
可以被部署在节点
Figure 112620DEST_PATH_IMAGE011
,实例
Figure DEST_PATH_IMAGE012
可以被部署在节点
Figure 493923DEST_PATH_IMAGE013
。除此之外,每个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请求,即
Figure DEST_PATH_IMAGE014
。需要在网络中部署一些VNF实例来满足每条流量请求的SFC请求,这会在网络中嵌入一个树形拓扑的服务链,即服务功能聚合树。假设需要在网络中部署多个VNF实例来保证每条流都能经过完整的SFC,
Figure 661599DEST_PATH_IMAGE015
。用
Figure 876680DEST_PATH_IMAGE016
表示
Figure DEST_PATH_IMAGE017
实例的个数,则最小代价的SFC嵌入方案即为嵌入一颗服务功能聚合树,即
Figure 762596DEST_PATH_IMAGE018
Figure 88535DEST_PATH_IMAGE019
。证明过程如下:为了保证每条流都能穿过一条完整的SFC,则每个
Figure 517243DEST_PATH_IMAGE020
的实例必定会连接一个
Figure 529323DEST_PATH_IMAGE021
的实例。同时,每个
Figure 43481DEST_PATH_IMAGE022
的实例至少连接一个
Figure 32166DEST_PATH_IMAGE020
的实例,否则为了最小化部署代价,这个
Figure 49800DEST_PATH_IMAGE021
的实例不应该被部署。因此可以得出
Figure 731317DEST_PATH_IMAGE023
S202:基于所述服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型。
本实施例中,在建立了服务功能聚合树的嵌入任务后,可以基于服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型,用更加简便的模型表示服务功能聚合树的嵌入任务,能够更容易求解出该嵌入任务最优的解。具体地,
Figure 732771DEST_PATH_IMAGE024
表示网络,
Figure 666092DEST_PATH_IMAGE025
表示
Figure 662867DEST_PATH_IMAGE026
个流量请求。每个VNF实例
Figure 656231DEST_PATH_IMAGE027
的候选部署节点集合用
Figure 144981DEST_PATH_IMAGE028
表示。
Figure DEST_PATH_IMAGE029
表示将实例
Figure 726002DEST_PATH_IMAGE022
部署在节点
Figure 983808DEST_PATH_IMAGE030
上的代价。连接节点
Figure 148074DEST_PATH_IMAGE030
和节点
Figure 100002_DEST_PATH_IMAGE031
的边
Figure 452016DEST_PATH_IMAGE032
在传输单位流量请求时的代价为
Figure 727139DEST_PATH_IMAGE033
Figure 964086DEST_PATH_IMAGE034
表示连接节点
Figure 33673DEST_PATH_IMAGE030
和节点
Figure 497015DEST_PATH_IMAGE031
的最短路径。在网络中为这些流量请求部署SFC的总代价共分为三个部分:所有VNF的部署代价,所有流量请求的路由代价和服务这些流量请求产生的收益。
在一些可选的实施方式中,参考表1中的符号表示,对于二元变量
Figure 434884DEST_PATH_IMAGE035
可以表示流量请求
Figure 667283DEST_PATH_IMAGE036
是否在节点
Figure 907771DEST_PATH_IMAGE037
上访问
Figure 218929DEST_PATH_IMAGE022
。因为需要确保每条流只需访问SFC上的所有VNF实例一次,则可以得到
Figure DEST_PATH_IMAGE038
公式(2)确保流量请求
Figure 570276DEST_PATH_IMAGE036
不会在
Figure 657180DEST_PATH_IMAGE039
以外的节点上访问
Figure 458783DEST_PATH_IMAGE022
。二元变量
Figure DEST_PATH_IMAGE040
表示VNF实例
Figure 99980DEST_PATH_IMAGE021
是否被部署在
Figure 379652DEST_PATH_IMAGE030
。假设
Figure 586642DEST_PATH_IMAGE022
的每个实例都能够承载访问它的所有流量请求。这一假设意味着在每个节点一个VNF最多只存在一个实例,因此,可以得到
Figure 168933DEST_PATH_IMAGE041
流量请求
Figure 828585DEST_PATH_IMAGE036
的传输代价包括三个部分,其一,变量
Figure 911947DEST_PATH_IMAGE042
表示从
Figure 707865DEST_PATH_IMAGE043
Figure 726637DEST_PATH_IMAGE044
的传输代价;其二,变量
Figure 496753DEST_PATH_IMAGE045
表示从
Figure 993593DEST_PATH_IMAGE044
Figure 909597DEST_PATH_IMAGE046
的传输代价;其三,变量
Figure 958324DEST_PATH_IMAGE047
表示从
Figure 592568DEST_PATH_IMAGE048
Figure 893099DEST_PATH_IMAGE049
的代价。它们分别可以按照如下公式进行计算。
Figure 663609DEST_PATH_IMAGE050
Figure 148817DEST_PATH_IMAGE051
Figure DEST_PATH_IMAGE052
所有流量请求的传输代价表示为
Figure 4778DEST_PATH_IMAGE053
所有VNF实例的部署代价表示为
Figure DEST_PATH_IMAGE054
服务这些流量请求得到的收益表示为
Figure 436896DEST_PATH_IMAGE055
综上所述,可以将服务功能聚合树的嵌入问题进行初步建模,初步服务功能聚合树嵌入模型表示为
Figure 327492DEST_PATH_IMAGE056
但是,考虑到公式(5)是非线性的,因此初步服务功能聚合树嵌入模型为一个非常难于求解的整数规划模型。此时可以通过引入新的二元变量
Figure 858967DEST_PATH_IMAGE057
将公式(5)进行线性化。
对于
Figure 828322DEST_PATH_IMAGE058
,满足
Figure 736236DEST_PATH_IMAGE059
Figure DEST_PATH_IMAGE060
公式(5)可以被重写为
Figure 74813DEST_PATH_IMAGE061
最终,可以将服务功能聚合树的嵌入问题用线性整数规划建模,得到的服务功能聚合树嵌入模型表示为
Figure 777190DEST_PATH_IMAGE062
表1 符号表示
Figure 607743DEST_PATH_IMAGE063
需要说明的是,在得到服务功能聚合树嵌入模型后,可以对其进行复杂性分析,来确定建立的模型问题的处理难度。具体地,首先考虑一种特殊情况,即SFC只含有1个VNF(n=1),且服务请求的收益均为
Figure 788188DEST_PATH_IMAGE064
。给定一个网络图
Figure 778010DEST_PATH_IMAGE065
,其中每条边的权重均大于0。仅有的VNF实例
Figure 385709DEST_PATH_IMAGE066
可以以不同代价被部署在一些节点上。在网络图
Figure 703558DEST_PATH_IMAGE067
中添加一个额外的节点
Figure 812328DEST_PATH_IMAGE068
来表示所有请求的共同目的节点,并将它与
Figure 532022DEST_PATH_IMAGE069
中所有的节点以代价为0相连。则在上述的特殊情况中,服务功能聚合树的最优嵌入代价可以被分为3个部分:其一,
Figure 576202DEST_PATH_IMAGE066
所有实例的部署代价;其二,将所有流量请求路由至
Figure 381347DEST_PATH_IMAGE066
的传输代价;其三,将所有流量请求由
Figure 532623DEST_PATH_IMAGE066
路由至
Figure 106824DEST_PATH_IMAGE068
的代价。因为
Figure 321905DEST_PATH_IMAGE069
中所有节点与
Figure 207821DEST_PATH_IMAGE068
的连接代价为0,所以第三部分的代价可以不用考虑。在删除第三部分的代价以后,这种特殊情况下的问题即退化为一个经典的NP-hard问题,无容量设施选址问题。假设服务功能聚合树的嵌入问题存在一个多项式时间算法,则意味着可以用它来解决无容量设施选址问题,这显然与无容量设施选址问题是NP-hard这一事实违背。因此,可以得出结论,服务功能聚合树的嵌入问题也是NP-hard的。其中,NP-hard指所有NP问题都能在多项式时间复杂度内归约到的问题。
S203:基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法。
本实施例中,在确定了服务功能聚合树嵌入模型和次模函数之间的联系后,可以根据最大化次模函数框架设计服务功能聚合树的嵌入问题的近似算法,即基于服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法(也可称为MSF算法)。
在一些可选的实施方式中,基于服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法具体包括:定义节点子集Q;根据所述节点子集Q构建传输路径
Figure 799339DEST_PATH_IMAGE070
;根据所述传输路径
Figure 228047DEST_PATH_IMAGE070
构建所述服务功能聚合树嵌入模型的可行解集
Figure 473083DEST_PATH_IMAGE071
;根据所述可行解集和次模函数确定所述最优嵌入路径算法。
需要说明的是,在利用整数线性规划对服务功能聚合树的嵌入问题进行建模之后,从公式(4)-(6),可以看出变量
Figure 252820DEST_PATH_IMAGE072
决定了
Figure 382450DEST_PATH_IMAGE073
的路由。例如,如果
Figure 524719DEST_PATH_IMAGE074
,则
Figure 347181DEST_PATH_IMAGE073
的路由是
Figure 348635DEST_PATH_IMAGE075
,其中子路径
Figure 767109DEST_PATH_IMAGE076
表示
Figure 904830DEST_PATH_IMAGE077
Figure 898193DEST_PATH_IMAGE078
Figure 245998DEST_PATH_IMAGE079
的最短。换句话说,
Figure 717431DEST_PATH_IMAGE073
的路由也决定了
Figure DEST_PATH_IMAGE080
。因此,如果可以为每一条流量请求
Figure 332827DEST_PATH_IMAGE073
找到一条传输路径
Figure 965933DEST_PATH_IMAGE081
Figure 941979DEST_PATH_IMAGE082
,其中
Figure DEST_PATH_IMAGE083
,则集合
Figure 810578DEST_PATH_IMAGE084
可以表示模型(15)的可行解。从路径
Figure 922891DEST_PATH_IMAGE085
中,可以得到
Figure 117112DEST_PATH_IMAGE086
Figure 314875DEST_PATH_IMAGE087
。易知,集合
Figure 393689DEST_PATH_IMAGE088
满足模型(15)。
在一些可选的实施方式中,可以定义集合
Figure 485142DEST_PATH_IMAGE089
和节点子集
Figure DEST_PATH_IMAGE090
,其中
Figure 460051DEST_PATH_IMAGE091
的第
Figure DEST_PATH_IMAGE092
个元素
Figure 771209DEST_PATH_IMAGE093
。可以按照如下步骤生成模型(15)的可行解。对于
Figure 388135DEST_PATH_IMAGE094
,可以从
Figure DEST_PATH_IMAGE095
中随机选择
Figure 68515DEST_PATH_IMAGE096
并且构建传输路径
Figure 479905DEST_PATH_IMAGE097
Figure 652261DEST_PATH_IMAGE098
。对于每条传输路径
Figure DEST_PATH_IMAGE099
,可以得到
Figure 666353DEST_PATH_IMAGE100
Figure 607764DEST_PATH_IMAGE101
,则集合
Figure 580268DEST_PATH_IMAGE102
Figure DEST_PATH_IMAGE103
即表示找到的可行解集。
进一步地,让
Figure 974340DEST_PATH_IMAGE104
表示
Figure 284800DEST_PATH_IMAGE094
Figure 346296DEST_PATH_IMAGE099
上的传输代价,则有
Figure 365068DEST_PATH_IMAGE105
。让
Figure 246436DEST_PATH_IMAGE106
表示部署
Figure DEST_PATH_IMAGE107
的点集合,则
Figure 602331DEST_PATH_IMAGE108
Figure 518335DEST_PATH_IMAGE109
。既然任何
Figure 832641DEST_PATH_IMAGE110
都能构造出一个可行解,则服务功能聚合树的嵌入问题可以转化为寻找最佳的子集
Figure 466885DEST_PATH_IMAGE111
。可以对中间量进行定义,其中
Figure 501837DEST_PATH_IMAGE112
可以使用
Figure 396981DEST_PATH_IMAGE113
来代表服务功能聚合树的嵌入问题的优化目标,则模型(15)可以被下述集合重新描述
Figure DEST_PATH_IMAGE114
在上述实施例中,已经证明了任意
Figure 491976DEST_PATH_IMAGE115
均可以生成服务功能聚合树的嵌入问题的一个可行解。模型(18)表明通过向
Figure 347936DEST_PATH_IMAGE110
中添加
Figure 812678DEST_PATH_IMAGE116
可以生成更好的解。申请人通过这一观察,进一步对模型(18)的次模性质进行了分析。
需要说明的是,次模是集合函数的性质,如函数
Figure 703274DEST_PATH_IMAGE117
表示给集合
Figure DEST_PATH_IMAGE118
赋值
Figure 93804DEST_PATH_IMAGE119
。令
Figure DEST_PATH_IMAGE120
,则可以得到给定一个有限集合
Figure 905902DEST_PATH_IMAGE121
,真值函数
Figure 672870DEST_PATH_IMAGE122
是次模的,如果
Figure DEST_PATH_IMAGE123
另一方面,函数
Figure 152393DEST_PATH_IMAGE117
是次模的,如果对于任意
Figure 854769DEST_PATH_IMAGE124
Figure 809956DEST_PATH_IMAGE125
Figure 990402DEST_PATH_IMAGE126
,有
Figure 855589DEST_PATH_IMAGE127
。函数
Figure 352036DEST_PATH_IMAGE117
是次模的且非递减的,如果对于任意
Figure 404306DEST_PATH_IMAGE128
,有
Figure 388443DEST_PATH_IMAGE129
。回到模型(18),可以得到
Figure DEST_PATH_IMAGE130
是次模的和非递减的。
Figure 967191DEST_PATH_IMAGE131
Figure DEST_PATH_IMAGE132
是次模的。令
Figure 745792DEST_PATH_IMAGE133
,则模型(18)可以被表述为
Figure 409991DEST_PATH_IMAGE134
模型(19)可以被视为次模函数最大化问题的实例。
具体地,参考表2中示出的最优嵌入路径算法的伪代码,令
Figure DEST_PATH_IMAGE135
Figure 666660DEST_PATH_IMAGE136
表示第
Figure 365495DEST_PATH_IMAGE137
次迭代时的解,其中
Figure DEST_PATH_IMAGE138
。将
Figure 49417DEST_PATH_IMAGE139
加入
Figure 967957DEST_PATH_IMAGE140
时,目标函数的增量为
Figure 293896DEST_PATH_IMAGE141
。在第
Figure DEST_PATH_IMAGE142
次迭代时,选择满足
Figure 722603DEST_PATH_IMAGE143
Figure 233219DEST_PATH_IMAGE144
加入
Figure DEST_PATH_IMAGE145
。尽管对于任意
Figure 216218DEST_PATH_IMAGE146
都可以生成一个可行解,为了使得最优嵌入路径算法可行,仍然需要解决下述两个挑战:其一就是为了使算法初始条件满足,需要确保
Figure 470482DEST_PATH_IMAGE147
,即
Figure 19275DEST_PATH_IMAGE148
;其二就是因为
Figure 576158DEST_PATH_IMAGE149
可以大至
Figure 436667DEST_PATH_IMAGE150
,因此需要能够快速有效的找到满足条件的
Figure 369988DEST_PATH_IMAGE139
,即
Figure 773287DEST_PATH_IMAGE151
表2 最优嵌入路径算法的伪代码
Figure DEST_PATH_IMAGE152
在一些可选的实施方式中,在根据可行解集和次模函数确定最优嵌入路径算法之后,还包括:获取网络G、流量请求、服务功能链、虚拟网络功能的候选部署节点集合和虚拟网络功能的部署代价;利用最优嵌入路径算法根据网络G、流量请求、服务功能链、虚拟网络功能的候选部署节点集合和虚拟网络功能的部署代价确定算法解集。具体地,参考图4,为了解决上述的挑战,申请人设计了一种使用overlay网络(即覆盖网络)的方法来寻找
Figure 864521DEST_PATH_IMAGE153
Figure 353271DEST_PATH_IMAGE154
。图4给出了在第
Figure 824704DEST_PATH_IMAGE155
次迭代时构造overlay网络的示例,将这种通过构造overlay网络寻找
Figure 207144DEST_PATH_IMAGE139
的方法记为BON(based on overlaynetwork)。BON包括如下步骤:首先构造图
Figure 105830DEST_PATH_IMAGE156
。将
Figure 81876DEST_PATH_IMAGE157
中的每一个节点都与
Figure 356999DEST_PATH_IMAGE158
中的所有节点相连。将
Figure 593946DEST_PATH_IMAGE159
中的所有节点均与
Figure 929112DEST_PATH_IMAGE160
相连。在图4给出的例子中,
Figure 861296DEST_PATH_IMAGE161
Figure 64744DEST_PATH_IMAGE162
Figure 31563DEST_PATH_IMAGE163
;给
Figure 537631DEST_PATH_IMAGE164
中的边
Figure 222690DEST_PATH_IMAGE165
分配权重,共分为两种情况。情况一,如果
Figure DEST_PATH_IMAGE166
Figure 934556DEST_PATH_IMAGE167
包含,则将
Figure 21461DEST_PATH_IMAGE168
的权重设置为
Figure 823064DEST_PATH_IMAGE169
Figure 995419DEST_PATH_IMAGE170
,其中
Figure 150457DEST_PATH_IMAGE171
表示点
Figure 216502DEST_PATH_IMAGE172
和点
Figure 64372DEST_PATH_IMAGE166
在图
Figure 724024DEST_PATH_IMAGE173
中最短路的代价。情况二,如果点
Figure 682753DEST_PATH_IMAGE166
没有被
Figure 868883DEST_PATH_IMAGE174
包含,则将
Figure 622076DEST_PATH_IMAGE168
的权重设置为
Figure DEST_PATH_IMAGE175
。为
Figure 861034DEST_PATH_IMAGE176
Figure DEST_PATH_IMAGE177
的所有边设置权重为
Figure 357874DEST_PATH_IMAGE178
。图4给出了一个示例,
Figure 273878DEST_PATH_IMAGE179
在第
Figure DEST_PATH_IMAGE180
次迭代中被部署在节点
Figure 57026DEST_PATH_IMAGE181
上,且
Figure 425690DEST_PATH_IMAGE182
;对于
Figure DEST_PATH_IMAGE183
中的每个节点,找到其与
Figure 585276DEST_PATH_IMAGE160
的最短路。使用DAG-Shortest-Paths算法来找出具有负权重的最短路。在删除目的节点
Figure 355786DEST_PATH_IMAGE160
后,这些最短路可以构成候选路径集合
Figure 840994DEST_PATH_IMAGE184
。特别的,
Figure DEST_PATH_IMAGE185
。对于
Figure 431375DEST_PATH_IMAGE186
在一些可选的实施方式中,可以对得到的最优嵌入路径算法的性能进行分析,具体地,最优嵌入路径算法的迭代次数小于
Figure 896117DEST_PATH_IMAGE187
,也即
Figure 786713DEST_PATH_IMAGE188
,在步骤S201中已经证明了
Figure 318188DEST_PATH_IMAGE189
,且对于
Figure 661445DEST_PATH_IMAGE190
的任何一个实例来说,都只有一条路径连接
Figure 428412DEST_PATH_IMAGE191
。这样在每次迭代中,都必须新添加一个
Figure 907935DEST_PATH_IMAGE192
Figure DEST_PATH_IMAGE193
使得
Figure 469367DEST_PATH_IMAGE194
能够占用一个新的且是集合
Figure 299919DEST_PATH_IMAGE195
中的点来部署
Figure 745944DEST_PATH_IMAGE190
。这一性质确保了
Figure DEST_PATH_IMAGE196
。在
Figure 673449DEST_PATH_IMAGE197
中,总共有
Figure DEST_PATH_IMAGE198
个节点和
Figure 656316DEST_PATH_IMAGE199
条边。在
Figure 974165DEST_PATH_IMAGE197
中运行DAG-Shortest-Paths算法的时间复杂度为
Figure 223880DEST_PATH_IMAGE200
Figure 537050DEST_PATH_IMAGE201
。在第
Figure DEST_PATH_IMAGE202
次循环中,构造
Figure 315650DEST_PATH_IMAGE197
需要花费
Figure 245429DEST_PATH_IMAGE203
。在
Figure 767677DEST_PATH_IMAGE204
中有
Figure DEST_PATH_IMAGE205
个节点没有被
Figure 200932DEST_PATH_IMAGE206
覆盖。对于这
Figure 416013DEST_PATH_IMAGE205
个节点中的每个节点,使用DAG-Shortest-Paths算法来找出候选路径
Figure 442875DEST_PATH_IMAGE207
并且花费额外的
Figure 394913DEST_PATH_IMAGE208
步来计算
Figure DEST_PATH_IMAGE209
。可以得出第
Figure 558041DEST_PATH_IMAGE210
次循环的时间复杂度为
Figure 209602DEST_PATH_IMAGE211
。最优嵌入路径算法至多迭代
Figure DEST_PATH_IMAGE212
次,因此最优嵌入路径算法的总时间复杂度表示为
Figure 317235DEST_PATH_IMAGE213
需要说明的是,因为
Figure 446865DEST_PATH_IMAGE214
,易知
Figure DEST_PATH_IMAGE215
Figure 854713DEST_PATH_IMAGE216
都是有限可数集合,则
Figure 411596DEST_PATH_IMAGE217
必然是在一个区间中。不失一般性的,可以假设该区间为
Figure 272105DEST_PATH_IMAGE218
。所以可以得到,对于
Figure 205426DEST_PATH_IMAGE219
Figure DEST_PATH_IMAGE220
,必定存在两个实数
Figure 343146DEST_PATH_IMAGE221
Figure DEST_PATH_IMAGE222
,使得
Figure 162941DEST_PATH_IMAGE223
。另一方面,对于
Figure 651691DEST_PATH_IMAGE219
Figure 247758DEST_PATH_IMAGE224
,有
Figure 505564DEST_PATH_IMAGE225
可以令
Figure DEST_PATH_IMAGE226
Figure 404250DEST_PATH_IMAGE227
。如果
Figure 504930DEST_PATH_IMAGE228
,则有
Figure DEST_PATH_IMAGE229
Figure 983315DEST_PATH_IMAGE230
Figure DEST_PATH_IMAGE231
Figure 220262DEST_PATH_IMAGE232
Figure 289849DEST_PATH_IMAGE233
表示服务功能聚合树的嵌入问题的最优解,
Figure 113711DEST_PATH_IMAGE234
表示最优嵌入路径算法得到的解,
Figure 926946DEST_PATH_IMAGE235
表示最优嵌入路径算法的执行次数。根据最优嵌入路径算法,可以知道
Figure 159344DEST_PATH_IMAGE236
,则如果最优嵌入路径算法共执行
Figure DEST_PATH_IMAGE237
次迭代,则
Figure 55625DEST_PATH_IMAGE238
给定一个非负实数
Figure 740684DEST_PATH_IMAGE239
,正整数
Figure DEST_PATH_IMAGE240
Figure 216665DEST_PATH_IMAGE241
Figure 303569DEST_PATH_IMAGE242
,令
Figure 980538DEST_PATH_IMAGE243
Figure 516343DEST_PATH_IMAGE244
Figure DEST_PATH_IMAGE245
则有
Figure 405802DEST_PATH_IMAGE246
Figure 737426DEST_PATH_IMAGE247
S204:以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务。
本实施例中,在得到最优嵌入路径算法后,以其为指导执行服务功能聚合树的嵌入任务。具体地,在一些可选的实施方式中,当服务功能聚合树嵌入模型中所有虚拟网络功能的部署代价均为0时,判断算法解集是否满足最优解集条件;最优解集条件表示为
Figure 585296DEST_PATH_IMAGE248
其中,
Figure 979368DEST_PATH_IMAGE249
表示为第i个流量请求从第j个虚拟网络功能到接受第j+1个虚拟网络功能的传输代价;若是,则以算法解集执行服务功能聚合树的嵌入任务。
需要说明的是,具体可以理解为如果服务功能聚合树的嵌入问题中,所有VNF的部署代价均为0,即
Figure DEST_PATH_IMAGE250
。则如果最优嵌入路径算法给出的解满足
Figure 797152DEST_PATH_IMAGE251
,则该解是最优解,即
Figure 593069DEST_PATH_IMAGE252
。对于任意可行的算法解集
Figure 611841DEST_PATH_IMAGE253
,可以知道
Figure 617843DEST_PATH_IMAGE254
Figure DEST_PATH_IMAGE255
。对于任意的
Figure 114683DEST_PATH_IMAGE256
,能够导出
Figure 656785DEST_PATH_IMAGE257
Figure 580879DEST_PATH_IMAGE258
。对于
Figure 215123DEST_PATH_IMAGE259
能够确保
Figure DEST_PATH_IMAGE260
始终成立。因此可以设置
Figure 109129DEST_PATH_IMAGE261
而不是
Figure DEST_PATH_IMAGE262
。进一步地,有
Figure 879639DEST_PATH_IMAGE263
Figure DEST_PATH_IMAGE264
Figure 833689DEST_PATH_IMAGE265
因为
Figure DEST_PATH_IMAGE266
,则有
Figure 548704DEST_PATH_IMAGE267
Figure 652926DEST_PATH_IMAGE268
。最终,
Figure 277943DEST_PATH_IMAGE269
Figure 809418DEST_PATH_IMAGE270
。因此,可以得出
Figure 510264DEST_PATH_IMAGE271
为了验证本申请提供的方法的有益效果,申请人设置了对比实验。参考图5,构建一个小规模网络,相关数据是来自于SNDlib库的Atlanta网络拓扑(共有15个节点和22条边)。在其中加入了四个基站和一个数据中心(即Central Office),另外,还构建了一个有500个节点的随机ER图,并随机选取40个节点作为网络接入点,随机选择一个节点作为数据中心。
对于链路代价,在Atlanta网络,链路代价正比于其在地理空间上的距离。新增的基站和数据中心与网络连接的代价为平均代价。对于500节点网络,将其均匀分布在
Figure 418178DEST_PATH_IMAGE272
的网格,并将链路代价设置为其在欧氏空间的距离。对于流量请求,随机选择一个接入点作为流的源节点。不失一般性的,设置流量请求为单位大小且服务该流量请求的收益为0,即
Figure 163280DEST_PATH_IMAGE273
Figure 990290DEST_PATH_IMAGE274
。对于服务功能链,将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候选节点集合大小的影响,即有如下设置
Figure 820843DEST_PATH_IMAGE275
。图10(a)展现了总嵌入代价的变化随着
Figure DEST_PATH_IMAGE276
从2增加到10。在这个实验中,设置
Figure 860343DEST_PATH_IMAGE277
。可以看出候选集合大小的值越大,则ASFT的嵌入总代价越小。造成这种现象的原因在于候选集合越大,则优化空间越大。因为最优嵌入路径算法在VNF的部署代价为0和
Figure 459952DEST_PATH_IMAGE278
的情况下可以找到最优解。为了满足这一特殊条件,将每条流量请求的服务收益设置为
Figure 333230DEST_PATH_IMAGE279
中平均最短路的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,
Figure 115083DEST_PATH_IMAGE002
,用
Figure 981408DEST_PATH_IMAGE004
表示
Figure 116854DEST_PATH_IMAGE006
实例的个数,嵌入一颗服务功能聚合树
Figure 930089DEST_PATH_IMAGE008
基于所述服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型;
基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法;所述基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法,具体包括:
定义节点子集Q
根据所述节点子集Q构建传输路径
Figure 959225DEST_PATH_IMAGE010
根据所述传输路径
Figure DEST_PATH_IMAGE011
构建所述服务功能聚合树嵌入模型的可行解集
Figure 934134DEST_PATH_IMAGE012
根据所述可行解集和次模函数确定所述最优嵌入路径算法;
所述根据所述可行解集和次模函数确定所述最优嵌入路径算法,之后还包括:
获取网络G、所述流量请求、所述服务功能链、所述虚拟网络功能的候选部署节点集合和所述虚拟网络功能的部署代价;
利用所述最优嵌入路径算法根据所述网络G、流量请求、服务功能链、虚拟网络功能的候选部署节点集合和虚拟网络功能的部署代价确定算法解集;
以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务;
所述以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务,具体包括:
当所述服务功能聚合树嵌入模型中所有所述虚拟网络功能的部署代价均为0时,判断所述算法解集是否满足最优解集条件;所述最优解集条件表示为
Figure 619194DEST_PATH_IMAGE014
其中,
Figure 908224DEST_PATH_IMAGE016
表示为第i个所述流量请求从第j个所述虚拟网络功能到接受第j+1个所述虚拟网络功能的传输代价,
Figure 57445DEST_PATH_IMAGE018
表示服务流量请求
Figure 403588DEST_PATH_IMAGE020
的收益,n表示所述虚拟网络功能的总数,
Figure DEST_PATH_IMAGE021
表示对于任意的序号
Figure 107102DEST_PATH_IMAGE022
若是,则以所述算法解集执行所述服务功能聚合树的嵌入任务。
2.根据权利要求1所述的服务功能聚合树的嵌入方法,其特征在于,所述建立服务功能聚合树的嵌入任务,之前还包括:
获取若干条流量请求;所述流量请求表示为
Figure 934244DEST_PATH_IMAGE024
,其中
Figure 203551DEST_PATH_IMAGE026
表示第i个所述流量请求的源节点,
Figure 723525DEST_PATH_IMAGE028
表示所有所述流量请求的共同目的节点,
Figure 179915DEST_PATH_IMAGE030
表示第i个所述流量请求的大小,
Figure 138643DEST_PATH_IMAGE018
表示所述流量请求的收益,
Figure DEST_PATH_IMAGE031
表示服务功能链;
根据所述流量请求确定实例数量。
3.根据权利要求2所述的服务功能聚合树的嵌入方法,其特征在于,所述根据所述流量请求确定实例数量,之后还包括:
根据所述实例数量确定若干实例层;其中每个所述实例层至少包括一个实例;
逐层连接所有所述实例层以确定服务功能聚合树。
4.根据权利要求2所述的服务功能聚合树的嵌入方法,其特征在于,所述服务功能聚合树嵌入模型,表示为
Figure DEST_PATH_IMAGE033
Figure DEST_PATH_IMAGE035
其中,
Figure DEST_PATH_IMAGE037
表示所述流量请求
Figure 75506DEST_PATH_IMAGE020
是否在第一节点
Figure DEST_PATH_IMAGE039
上访问第j个虚拟网络功能
Figure DEST_PATH_IMAGE041
Figure DEST_PATH_IMAGE043
表示所有所述流量请求的传输代价,
Figure DEST_PATH_IMAGE045
表示所有虚拟网络功能的部署代价,
Figure DEST_PATH_IMAGE047
表示服务所有所述流量请求得到的收益,
Figure DEST_PATH_IMAGE049
表示第j个虚拟网络功能
Figure 131097DEST_PATH_IMAGE006
是否部署在第一节点
Figure 215728DEST_PATH_IMAGE050
上,
Figure 774885DEST_PATH_IMAGE022
表示任意一个序号。
5.一种服务功能聚合树的嵌入装置,其特征在于,包括:
建立模块,被配置为建立服务功能聚合树的嵌入任务;所述服务功能聚合树表示给定一个网络和多条流量请求;在所述网络中部署多个VNF实例以保证每条所述流量请求都能够经过完整的SFC,
Figure DEST_PATH_IMAGE051
,用
Figure 362993DEST_PATH_IMAGE004
表示
Figure 83824DEST_PATH_IMAGE006
实例的个数,嵌入一颗服务功能聚合树
Figure 390172DEST_PATH_IMAGE052
模型构建模块,被配置为基于所述服务功能聚合树的嵌入任务构建服务功能聚合树嵌入模型;
确定模块,被配置为基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法;所述基于所述服务功能聚合树嵌入模型和次模函数确定最优嵌入路径算法,具体包括:
定义节点子集Q
根据所述节点子集Q构建传输路径
Figure DEST_PATH_IMAGE053
根据所述传输路径
Figure 221861DEST_PATH_IMAGE053
构建所述服务功能聚合树嵌入模型的可行解集
Figure 195634DEST_PATH_IMAGE012
根据所述可行解集和次模函数确定所述最优嵌入路径算法;
所述根据所述可行解集和次模函数确定所述最优嵌入路径算法,之后还包括:
获取网络G、所述流量请求、所述服务功能链、所述虚拟网络功能的候选部署节点集合和所述虚拟网络功能的部署代价;
利用所述最优嵌入路径算法根据所述网络G、流量请求、服务功能链、虚拟网络功能的候选部署节点集合和虚拟网络功能的部署代价确定算法解集;
执行模块,被配置为以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务;
所述以所述最优嵌入路径算法为指导执行所述服务功能聚合树的嵌入任务,具体包括:
当所述服务功能聚合树嵌入模型中所有所述虚拟网络功能的部署代价均为0时,判断所述算法解集是否满足最优解集条件;所述最优解集条件表示为
Figure DEST_PATH_IMAGE055
其中,
Figure 821787DEST_PATH_IMAGE016
表示为第i个所述流量请求从第j个所述虚拟网络功能到接受第j+1个所述虚拟网络功能的传输代价,
Figure DEST_PATH_IMAGE056
表示服务流量请求
Figure DEST_PATH_IMAGE057
的收益,n表示所述虚拟网络功能的总数,
Figure 146589DEST_PATH_IMAGE021
表示对于任意的序号
Figure 188494DEST_PATH_IMAGE022
若是,则以所述算法解集执行所述服务功能聚合树的嵌入任务。
6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任意一项所述的服务功能聚合树的嵌入方法。
7.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1至4任意一项所述的服务功能聚合树的嵌入方法。
CN202110108124.1A 2021-01-27 2021-01-27 服务功能聚合树的嵌入方法、装置、电子设备及存储介质 Active CN112437010B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114466059B (zh) * 2022-01-20 2023-06-02 天津大学 一种向移动边缘计算系统提供可靠服务功能链的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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 中国人民解放军国防科技大学 一种基于链的移动边缘计算模型及其服务请求、调度方法

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