CN107135135A - 一种基于底层节点排序的虚拟网络映射方法及装置 - Google Patents
一种基于底层节点排序的虚拟网络映射方法及装置 Download PDFInfo
- Publication number
- CN107135135A CN107135135A CN201710301251.7A CN201710301251A CN107135135A CN 107135135 A CN107135135 A CN 107135135A CN 201710301251 A CN201710301251 A CN 201710301251A CN 107135135 A CN107135135 A CN 107135135A
- Authority
- CN
- China
- Prior art keywords
- mrow
- bottom layer
- node
- layer node
- queue
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种基于底层节点排序的虚拟网络映射方法及装置,应用于控制器,所述方法包括:接收目标虚拟网络请求;获取当前底层网络中每个底层节点的各项属性信息的属性值;根据每个底层节点的各项属性信息的属性值以及预先计算的各项属性信息对应的权重参数,计算各底层节点对应的排序权重;根据排序权重对各底层节点进行排序,形成第一队列;根据所述第一队列、各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求,对各虚拟节点进行映射以及对各虚拟链路进行映射。本发明实施例能够更好的适应变化的网络系统,提高虚拟网络映射的效果。
Description
技术领域
本发明涉及网络通信技术领域,特别是涉及一种基于底层节点排序的虚拟网络映射方法及装置。
背景技术
网络虚拟化技术是一种在底层网络的基础设施上共存虚拟网络的一种技术。
底层网络包括:底层节点以及由底层节点构成的底层链路,其中,底层节点为带有计算资源的设备(如路由器),底层链路为带有带宽资源的链路(如各路由器之间的链路)。
虚拟网络包括:虚拟节点以及虚拟节点构成的虚拟链路,其中,虚拟节点为可以向底层节点请求资源的虚拟设备(如虚拟路由器),虚拟链路为可以向底层链路请求带宽资源的虚拟链路(如各虚拟路由器之间的虚拟链路)。
虚拟网络映射的过程为:控制器(该控制器同时连接底层网络和虚拟网络)在接收到终端设备或服务器发送的虚拟网络请求后,根据该请求中携带的虚拟节点的计算资源需求和虚拟链路的带宽资源需求,为该请求中的虚拟节点分配满足其计算资源需求的底层节点的过程(命名为节点映射过程)以及控制器为该请求中的虚拟链路分配满足其带宽资源需求的底层链路的过程(命名为链路映射过程)。
通常情况下,在虚拟网络映射的过程之前,技术人员会对各个底层节点进行排序,在虚拟网络映射的过程中,控制器根据排序所得的序列逐个对虚拟节点进行映射,进而根据节点映射的结果进行链路映射,因此,对各个底层节点进行排序的过程会影响到虚拟网络映射的效果。
现有技术中,技术人员通常根据经验制定一个排序规则,对各个底层节点进行排序,但随着时间的推移,整个网络系统也在不断的发生变化,现有的排序方法无法适应变化的网络系统,导致虚拟网络映射的效果差。
发明内容
本发明实施例的目的在于提供一种基于底层节点排序的虚拟网络映射方法及装置,以适应变化的网络系统,提高虚拟网络映射的效果。
为达到上述目的本发明实施例提供了一种基于底层节点排序的虚拟网络映射方法,应用于控制器,所述方法包括:
接收目标虚拟网络请求;所述目标虚拟网络请求包括各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求;
获取当前底层网络中每个底层节点的各项属性信息的属性值;
根据每个底层节点的各项属性信息的属性值以及预先计算的各项属性信息对应的权重参数,计算各底层节点对应的排序权重;所述权重参数为根据历史虚拟网络映射数据计算得到的;
根据排序权重对各底层节点进行排序,形成第一队列;
根据所述第一队列、各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求,对各虚拟节点进行映射以及对各虚拟链路进行映射。
进一步地,任一属性信息对应的权重参数的计算方式包括:
采用粒子群优化训练算法,将各个粒子的预设的权重向量初值作为各个粒子的当前权重向量,将各个粒子的预设的速度向量初值作为各个粒子的当前速度向量;
判断训练次数是否小于预设训练次数阈值;
如果小于,则根据各个粒子的当前权重向量、各个粒子的当前速度向量以及所述历史虚拟网络映射数据中所述任一属性信息的属性值,计算该属性信息对应的当前权重参数,并根据公式
更新各个粒子的当前权重向量,根据公式
更新各个粒子的当前速度向量,并返回执行所述判断训练次数是否小于预设训练次数阈值的步骤;
如果不小于,则输出所述任一属性信息对应的当前权重参数;
其中,为第k轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的当前权重向量;为第k-1轮训练后第n个粒子在达到局部优化参数时对应的权重向量;为第k-1轮训练后粒子群在达到全局优化参数时对应的权重向量;MAX为对向量的各分量取最大值,MIN为对向量的各分量取最小值,vmax为当前速度向量的最大值,c1、c2、c3均为常数,r1、r2均为随机变量。
进一步地,所述根据每个底层节点的各项属性信息的属性值以及预先计算的各项属性信息对应的权重参数,计算各底层节点对应的排序权重的步骤,包括:
根据所对应各项属性信息的属性值,计算每个底层节点的特征向量;
对预先计算的各项属性信息对应的权重参数进行拼接,得到第一权重向量;
对所述第一权重向量和每个底层节点的特征向量进行内积,得到该底层节点的排序权重。
进一步地,所述根据每个底层节点的各项属性信息的属性值,计算该底层节点的特征向量的步骤,包括:
通过以下方式,根据每个底层节点的各项属性信息的属性值,计算该底层节点的特征向量:
对任一底层节点的各项属性信息的属性值进行归一化,得到各项属性信息的归一化属性值;
对各项属性信息的归一化属性值进行拼接,得到所述任一底层节点的特征向量。
进一步地,所述根据排序权重对各底层节点进行排序,形成第一队列的步骤,包括:
按照排序权重由大到小的顺序对各底层节点进行排序,形成第一队列;
所述根据所述第一队列、各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求,对各虚拟节点进行映射以及对各虚拟链路进行映射的步骤,包括:
按照所述计算资源需求由大到小的顺序对各虚拟节点进行排序,形成第二队列;
根据所述第一队列,依次对所述第二队列中的虚拟节点进行映射;
当所述第二队列中的虚拟节点均完成映射后,按照所述带宽资源需求由大到小的顺序对各虚拟链路进行排序,形成第三队列;
依次对所述第三队列中的虚拟链路进行映射。
进一步地,所述根据所述第一队列,依次对所述第二队列中的虚拟节点进行映射的步骤,包括:
将所述第二队列中的第一个虚拟节点作为当前虚拟节点,判断所述当前虚拟节点是否已经完成映射;
如果已完成,将所述第二队列中当前虚拟节点的下一个虚拟节点作为当前虚拟节点,返回执行所述判断所述当前虚拟节点是否已经完成映射的步骤;
如果未完成,按照如下方式,根据所述第一队列,对所述当前虚拟节点进行映射:
将所述第一队列中的第一个底层节点作为当前底层节点,判断当前底层节点是否已经与任一虚拟节点建立映射;
如果是,将所述第一队列中当前底层节点的下一个底层节点作为当前底层节点,返回执行所述判断当前底层节点是否已经与任一虚拟节点建立映射的步骤;
如果否,判断所述当前底层节点的计算资源量是否不小于所述第二队列中当前虚拟节点的计算资源需求;
如果不小于,则建立所述第二队列中当前虚拟节点与所述第一队列中当前底层节点的映射;
如果小于,则将所述第一队列中当前底层节点的下一个底层节点作为当前底层节点,返回执行所述判断当前底层节点是否已经与任一虚拟节点建立映射的步骤。
进一步地,所述依次对所述第三队列中的虚拟链路进行映射的步骤,包括:
确定各虚拟节点所映射的底层节点为第一底层节点;
确定包含所有第一底层节点的第一底层网络拓扑,并获取第一底层网络拓扑中各底层链路的带宽资源值;
将所述第三队列中第一个虚拟链路作为当前虚拟链路,判断所述当前虚拟链路是否已经完成映射;
如果已完成,将所述第三队列中当前虚拟链路的下一个虚拟链路作为当前虚拟链路,返回执行所述判断所述当前虚拟链路是否已经完成映射的步骤;
如果未完成,按照如下方式,对所述当前虚拟链路进行映射:
确定所述当前虚拟链路两端的虚拟节点为第一虚拟节点;
确定两个第一虚拟节点对应的两个第一底层节点为第二底层节点;
去除所述第一底层网络拓扑中所有第一底层链路,以形成第二底层网络拓扑;所述第一底层链路为所述第一底层网络拓扑中带宽资源值小于所述第三队列中当前虚拟链路的带宽资源需求的底层链路;
确定所述第二底层网络拓扑中的目标底层链路;所述目标底层链路为以两个第二底层节点为端点的底层链路中最短的底层链路;
建立所述当前虚拟链路与所述目标底层链路的映射。
本发明实施例还提供了一种基于底层节点排序的虚拟网络映射装置,应用于控制器,所述装置包括:
接收模块,用于接收目标虚拟网络请求;所述目标虚拟网络请求包括各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求;
获取模块,用于获取当前底层网络中每个底层节点的各项属性信息的属性值;
第一计算模块,用于根据每个底层节点的各项属性信息的属性值以及预先计算的各项属性信息对应的权重参数,计算各底层节点对应的排序权重;所述权重参数为根据历史虚拟网络映射数据计算得到的;
排序模块,用于根据排序权重对各底层节点进行排序,形成第一队列;
映射模块,用于根据所述第一队列、各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求,对各虚拟节点进行映射以及对各虚拟链路进行映射。
进一步地,所述装置还包括:
第二计算模块,用于计算任一属性信息对应的权重参数;
所述第二计算模块,包括:
确定子模块,用于采用粒子群优化训练算法,将各个粒子的预设的权重向量初值作为各个粒子的当前权重向量,将各个粒子的预设的速度向量初值作为各个粒子的当前速度向量;
判断子模块,用于判断训练次数是否小于预设训练次数阈值;
第一计算子模块,用于当所述判断子模块的判断结果为小于时,则根据各个粒子的当前权重向量、各个粒子的当前速度向量以及所述历史虚拟网络映射数据中所述任一属性信息的属性值,计算该属性信息对应的当前权重参数,并根据公式
更新各个粒子的当前权重向量,根据公式
更新各个粒子的当前速度向量,并返回执行所述判断训练次数是否小于预设训练次数阈值的步骤;
输出子模块,用于当所述判断子模块的判断结果为不小于时,则输出所述任一属性信息对应的当前权重参数;
其中,为第k轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的当前权重向量;为第k-1轮训练后第n个粒子在达到局部优化参数时对应的权重向量;为第k-1轮训练后粒子群在达到全局优化参数时对应的权重向量;MAX为对向量的各分量取最大值,MIN为对向量的各分量取最小值,vmax为当前速度向量的最大值,c1、c2、c3均为常数,r1、r2均为随机变量。
进一步地,所述第一计算模块,包括:
第二计算子模块,用于根据所对应各项属性信息的属性值,计算每个底层节点的特征向量;
拼接子模块,用于对预先计算的各项属性信息对应的权重参数进行拼接,得到第一权重向量;
内积子模块,用于对所述第一权重向量和每个底层节点的特征向量进行内积,得到该底层节点的排序权重。
本发明实施例提供的一种基于底层节点排序的虚拟网络映射方法及装置,由于历史虚拟网络映射数据是网络系统真实存在过的数据,并且这些数据包含了整个网络系统的变化特性,根据历史虚拟网络映射数据计算各底层节点对应的排序权重,并根据排序权重对各底层节点进行排序,能够更好的适应变化的网络系统,根据排序后的底层节点进行虚拟网络映射,能够提高虚拟网络映射的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于底层节点排序的虚拟网络映射方法的流程图;
图2为本发明实施例提供的根据第一队列依次对第二队列中的虚拟节点进行映射的流程图;
图3为本发明实施例提供的依次对第三队列中的虚拟链路进行映射的流程图;
图4为本发明实施例提供的基于底层节点排序的虚拟网络映射装置的结构示意图;
图5为本发明实施例提供的第一映射子模块的结构示意图;
图6为本发明实施例提供的第二映射子模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为达到上述目的,本发明实施例提供了一种基于底层节点排序的虚拟网络映射方法,应用于控制器,图1为本发明实施例提供的基于底层节点排序的虚拟网络映射方法的流程图,所述方法包括步骤S110~S150:
S110,接收目标虚拟网络请求。
具体地,目标虚拟网络请求为终端设备或服务器发送的、由控制器接收到的任意一条虚拟网络请求,该目标虚拟网络请求中包括各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求。
S120,获取当前底层网络中每个底层节点的各项属性信息的属性值。
本实施例中,每个底层节点的各项属性信息包括:每个底层节点的计算资源、带宽资源和(与底层节点连接的底层链路可用带宽的总和)、存储资源、地理位置信息、接收率以及收益消耗比等。
各项属性信息的属性值为各项属性信息的数量。例如,某个底层节点的计算资源的属性值(即计算资源量)为CPU占用量80%;某个底层链路的带宽资源和的属性值(即带宽资源和值)为100比特。
具体地,控制器与底层网络中各个底层节点、各个底层链路通信连接,底层网络中每个底层节点的各项属性信息的属性值均会实时上报给控制器。
S130,根据每个底层节点的各项属性信息的属性值以及预先计算的各项属性信息对应的权重参数,计算各底层节点对应的排序权重;所述权重参数为根据历史虚拟网络映射数据计算得到的。
本实施例中,各项属性信息对应的权重参数为预先计算得到的,为了得到各项属性信息对应的权重参数,本实施例采用现有的粒子群优化训练算法对历史虚拟网络映射数据进行训练。其中,任一属性信息对应的权重参数的计算方式包括:
A1、采用粒子群优化训练算法,将各个粒子的预设的权重向量初值作为各个粒子的当前权重向量,将各个粒子的预设的速度向量初值作为各个粒子的当前速度向量。
具体地,在粒子群优化训练算法中,需要预设多个粒子,并且为每个粒子预设的权重向量初值以及速度向量初值作为迭代初值。将各粒子的权重向量初值作为各个粒子的当前权重向量,将各粒子的速度向量初值作为各个粒子的当前速度向量,进行后续循环训练。
A2、判断训练次数是否小于预设训练次数阈值;如果小于,则执行步骤A3;如果不小于,则执行步骤A4。
本实施例中,预设训练次数阈值用于描述训练的结果是否达到标准。当判断训练次数小于预设训练次数阈值时,说明循环训练的结果未达到标准;当判断训练次数不小于预设训练次数阈值时,说明循环训练的结果已达到标准。预设训练次数阈值越大,最后训练得到的结果的效果越好。预设训练次数阈值可固定设置,例如,预设训练次数阈值可以为100。
A3、根据各个粒子的当前权重向量、各个粒子的当前速度向量以及所述历史虚拟网络映射数据中所述任一属性信息的属性值,计算该属性信息对应的当前权重参数,并根据公式
更新各个粒子的当前权重向量,根据公式
更新各个粒子的当前速度向量,并返回执行所述判断训练次数是否小于预设训练次数阈值的步骤。
其中,为第k轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的当前权重向量;为第k-1轮训练后第n个粒子在达到局部优化参数时对应的权重向量;为第k-1轮训练后粒子群在达到全局优化参数时对应的权重向量;MAX为对向量的各分量取最大值;MIN为对向量的各分量取最小值;vmax为当前速度向量的最大值,即经过k次训练后得到的所有当前速度向量中的最大值;c1、c2、c3均为常数;c1、c2、c3均可自由设定;r1、r2均为随机变量,r1、r2可根据实际情况自由设定。
A4、输出所述任一属性信息对应的当前权重参数。
具体地,当判断训练次数小于预设训练次数阈值时,根据各个粒子的当前权重向量、各个粒子的当前速度向量以及所述历史虚拟网络映射数据中所述任一属性信息的属性值,对底层节点进行排序,然后进行虚拟节点映射和虚拟链路映射,得到映射结果,并计算出各个粒子的局部优化参数以及粒子群的全局优化参数,将粒子群的全局优化参数确定为该属性信息对应的当前权重参数,并根据公式
更新各个粒子的当前权重向量,根据公式
更新各个粒子的当前速度向量,并返回执行步骤A2,直至达到预设训练次数阈值为止。
当判断训练次数不小于预设训练次数阈值时,将所述任一属性信息对应的当前权重参数确定为最后得到的权值参数并输出。
需要说明的是,步骤A3中,根据各个粒子的当前权重向量、各个粒子的当前速度向量以及所述历史虚拟网络映射数据中所述任一属性信息的属性值,对底层节点进行排序的具体过程可以与后面提到的步骤B1~步骤B3相类似。具体地,该过程可以为:根据历史虚拟网络映射数据中所述任一属性信息的属性值,计算每个底层节点的特征向量;根据各个粒子的当前权重向量计算粒子群对应的权重向量(还可以根据各个粒子的当前权重向量、各个粒子的当前速度向量对粒子群对应的权重向量进行更新);对粒子群对应的权重向量和每个底层节点的特征向量进行内积,得到该底层节点的排序权重;根据排序权重对各底层节点进行排序。
进一步地,由于历史虚拟网络映射数据能够很好的反应映射算法的有效性,本实施能够从历史虚拟网络映射数据中获取经验,自动调整各项参数、改善底层节点排序,而无需人工干预,实现了底层网络节点的自学习排序。
进一步地,本实施例中的粒子群优化训练算法还可以针对特定的属性信息进行训练,从而在该属性信息下具有高性能表现,在指定了一个属性信息后,将形成一套为实现该属性信息而高度定制的算法。
进一步地,通过粒子群优化训练算法挖掘出映射结果对应的属性信息与算法参数之间的定量关系,通过两者间的关系,实现从属性信息到算法参数之间的双向交互过程,借助这种交互过程实现了算法框架极强的灵活性,在不脱离算法框架,不制定额外规则的前提下,对任何可能的属性信息进行自适应。
在本发明实施例提供的一种具体实现方式中,步骤S130可包括步骤B1~步骤B3:
B1、根据所对应各项属性信息的属性值,计算每个底层节点的特征向量。
本实施例中,为了根据所对应各项属性信息的属性值,计算每个底层节点的特征向量,可通过步骤C1~步骤C2,根据每个底层节点的各项属性信息的属性值,计算该底层节点的特征向量:
C1、对任一底层节点的各项属性信息的属性值进行归一化,得到各项属性信息的归一化属性值。
具体地,在对某一个属性信息进行归一化时,先设定该属性信息对应的最大阈值,然后将底层节点对应的该属性信息的属性值除以该最大阈值,得到归一化属性值。
举例而言,在对带宽资源和进行归一化时,可先设定带宽资源和对应的最大阈值为100比特,若某一个底层节点的带宽资源和为80比特,则其归一化属性值为0.8。
本实施例中,可将所有底层节点各属性信息的最大的属性值确定为各属性信息对应的最大阈值。
C2、对各项属性信息的归一化属性值进行拼接,得到所述任一底层节点的特征向量。
具体地,将得到的各项属性信息的归一化属性值按照预定的顺序进行拼接,得到所述任一底层节点的特征向量,其中,每个属性信息的归一化属性值最为特征向量的一个分量。本实施例中,任一底层节点的特征向量优选为列向量。
B2、对预先计算的各项属性信息对应的权重参数进行拼接,得到第一权重向量。
具体地,预先计算的各项属性信息对应的权重参数按照步骤C2中所述预定的顺序进行拼接,得到第一权重向量。本实施例中,第一权重向量优选为行向量。
B3、对所述第一权重向量和每个底层节点的特征向量进行内积,得到该底层节点的排序权重。
具体地,由于第一权重向量为行向量,各底层节点的特征向量为列向量,则得到的各底层节点的排序权重均为一个值。
本实施例根据各项属性信息的属性值和预先计算的各项属性信息对应的权重参数得到底层节点的排序权重,该排序权重表征了各项属性信息对底层节点的整体影响,使排序能够更好的适应网络系统。另外,本实施例能够考虑多种属性信息,具有良好的扩展性。
S140,根据排序权重对各底层节点进行排序,形成第一队列。
本实施例中,对各底层节点进行排序的顺序可自由设定。优选地,可按照排序权重由大到小的顺序对各底层节点进行排序,以形成第一队列。
S150,根据所述第一队列、各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求,对各虚拟节点进行映射以及对各虚拟链路进行映射。
本实施例中,对各虚拟节点进行映射以及对各虚拟链路进行映射的具体过程可以为现有的过程;也可以为后续提供的步骤C1~步骤C4。
本发明实施例提供的基于底层节点排序的虚拟网络映射方法,首先,根据历史虚拟网络映射数据计算得到各项属性信息对应的权重参数;然后,当接收目标虚拟网络请求后,获取当前底层网络中每个底层节点的各项属性信息的属性值,并根据各项属性信息对应的权重参数以及每个底层节点的各项属性信息的属性值,计算各底层节点对应的排序权重;最后,根据排序权重对各底层节点进行排序形成第一队列,并根据所述第一队列、各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求,对各虚拟节点进行映射以及对各虚拟链路进行映射。
本发明实施例中,由于历史虚拟网络映射数据是网络系统真实存在过的数据,并且这些数据包含了整个网络系统的变化特性,根据历史虚拟网络映射数据计算各底层节点对应的排序权重,并根据排序权重对各底层节点进行排序,能够更好的适应变化的网络系统,根据排序后的底层节点进行虚拟网络映射,能够提高虚拟网络映射的效果。
在本发明实施例提供的一种具体实现方式中,步骤S150可包括如下步骤C1~步骤C4:
C1、按照所述计算资源需求由大到小的顺序对各虚拟节点进行排序,形成第二队列。
C2、根据所述第一队列,依次对所述第二队列中的虚拟节点进行映射。
图2为本发明实施例提供的根据第一队列依次对第二队列中的虚拟节点进行映射的流程图,该步骤包括步骤S210~步骤S280:
S210,将所述第二队列中的第一个虚拟节点作为当前虚拟节点。
具体地,为了实现对第二队列中的虚拟节点依次进行映射,本实施例采用循环的方式,每次循环对一个虚拟节点进行映射,并将第二队列中第一个虚拟节点确定为当前虚拟节点进行第一次循环,当第一次循环结束后,将第二队列中的第二个虚拟节点确定为当前虚拟节点再次对其进行映射,依此类推,直至循环结束,完成虚拟节点的映射。
S220,判断所述当前虚拟节点是否已经完成映射;如果已完成,则执行步骤S230;如果未完成,执行步骤S240。
S230,将所述第二队列中当前虚拟节点的下一个虚拟节点作为当前虚拟节点,返回执行所述步骤S220。
具体地,判断当前虚拟节点是否已经完成映射,如果已完成映射,将当前虚拟节点的下一个虚拟节点作为当前虚拟节点,执行下一个循环,对其进行映射。如果未完成映射,根据第一队列,对当前虚拟节点进行映射。
进一步地,可按照如下方式,根据第一队列,对当前虚拟节点进行映射:
S240,将所述第一队列中的第一个底层节点作为当前底层节点。
S250,判断当前底层节点是否已经与任一虚拟节点建立映射;如果是,则执行步骤S260;如果否,则执行步骤S270。
S260,将所述第一队列中当前底层节点的下一个底层节点作为当前底层节点,返回执行步骤S250。
具体地,为了实现对当前底层节点进行映射,本实施例采用依次尝试将第一队列中的底层节点对当前底层节点进行映射。因此,本实施例采用循环的方式,每次循环确定一个当前底层节点。首先,将第一队列中的第一个底层节点作为当前底层节点,如果当前底层节点已经与任一虚拟节点建立映射,则将第二个底层节点确定为当前底层节点,继续尝试对当前虚拟节点进行映射,直至当前底层节点未与任一虚拟节点建立映射为止,此时则利用当前底层节点尝试对当前虚拟节点进行映射。
S270,判断所述当前底层节点的计算资源量是否不小于所述第二队列中当前虚拟节点的计算资源需求;如果不小于,则执行步骤S280;如果小于,则执行步骤S290。
S280,则建立所述第二队列中当前虚拟节点与所述第一队列中当前底层节点的映射。
S290,则将所述第一队列中当前底层节点的下一个底层节点作为当前底层节点,返回执行步骤S250。
具体地,当当前底层节点未与任一虚拟节点建立映射时,判断当前底层节点的计算资源量是否不小于第二队列中当前虚拟节点的计算资源需求。如果不小于,则说明当前底层节点的计算资源量能够满足当前虚拟节点的计算资源需求,则建立当前虚拟节点与当前底层节点的映射,如果小于则说明当前底层节点的计算资源量不能满足当前虚拟节点的计算资源需求,将当前底层节点的下一个底层节点作为当前底层节点,继续判断当前底层节点是否已经与任一虚拟节点建立映射。
需要说明的是,当所有虚拟节点中存在至少一个虚拟节点不能实现映射过程,则虚拟节点映射过程失败。
本实施例中,建立包含计算资源量依次减小的底层节点的第一队列,建立包含计算资源需求依次减小的虚拟节点第二队列;然后,利用第一队列中的底层节点依次尝试映射第二队列中的虚拟节点,从而优先对计算资源需求较大的底层节点进行映射,如果计算资源需求较大的底层节点都能够顺利映射完成,则使后续的虚拟节点映射过程更加简单易行;如果计算资源需求较大的底层节点不能顺利映射完成,则说明整个虚拟节点映射过程必然失败,避免了为其他虚拟节点进行映射成功后再次出现映射失败的场景,从而节省了运算流程。
C3、当所述第二队列中的虚拟节点均完成映射后,按照所述带宽资源需求由大到小的顺序对各虚拟链路进行排序,形成第三队列。
需要说明的是,若第二队列中的存在未完成映射的虚拟节点,则无法进行虚拟链路映射过程。
C4、依次对所述第三队列中的虚拟链路进行映射。
图3为本发明实施例提供的依次对第三队列中的虚拟链路进行映射的流程图,该步骤包括步骤S310~步骤S3100:
S310,确定各虚拟节点所映射的底层节点为第一底层节点。
具体地,在所有的虚拟节点均映射完成后,每个虚拟节点映射一个底层节点,将这些底层节点确定为第一底层节点。
S320,确定包含所有第一底层节点的第一底层网络拓扑,并获取第一底层网络拓扑中各底层链路的带宽资源值。
具体地,在确定了所有第一底层节点后,控制器可根据各第一底层节点间的链路关系,生成包含所有第一底层节点的网络拓扑(即第一网络拓扑),并获取第一网络拓扑中所有的底层链路的带宽资源值。需要说明的是,由于第一网络拓扑仅包含第一底层节点,因此第一底层网络拓扑中的任一底层链路两端的节点均为第一底层节点。
S330,将所述第三队列中第一个虚拟链路作为当前虚拟链路。
具体地,为了实现对第三队列中的虚拟链路依次进行映射,本实施例采用循环的方式,每次循环对一个虚拟链路进行映射,并将第三队列中第一个虚拟节点确定为当前虚拟链路进行第一次循环,当第一次循环结束后,将第三队列中的第二个虚拟链路确定为当前虚拟链路再次对其进行映射,依此类推,直至循环结束,完成虚拟链路的映射。
S340,判断所述当前虚拟链路是否已经完成映射;如果已完成,则执行步骤S350;如果未完成,则执行S360。
S350,将所述第三队列中当前虚拟链路的下一个虚拟链路作为当前虚拟链路,返回执行步骤S340;
具体地,判断当前虚拟链路是否已经完成映射,如果已完成映射,将当前虚拟链路的下一个虚拟链路作为当前虚拟链路,执行下一个循环,对其进行映射;如果未完成映射,对当前虚拟链路进行映射。
进一步地,可按照如下方式,对当前虚拟链路进行映射:
S360,确定所述当前虚拟链路两端的虚拟节点为第一虚拟节点。
S370,确定两个第一虚拟节点对应的两个第一底层节点为第二底层节点。
具体地,将当前虚拟链路两端的虚拟节点确定为两个第一虚拟节点,将与这两个第一虚拟节点分别映射的两个第一底层节点确定为两个第二底层节点。
S380,去除所述第一底层网络拓扑中所有第一底层链路,以形成第二底层网络拓扑;所述第一底层链路为所述第一底层网络拓扑中带宽资源值小于所述第三队列中当前虚拟链路的带宽资源需求的底层链路。
具体地,由于第一底层网络拓扑中可能存在带宽资源值小于当前虚拟链路的带宽资源需求的底层链路(即第一底层),这些第一底层链路无法满足当前虚拟链路的带宽资源需求,因此首先需要去除这些第一底层链路,形成第二底层网络拓扑,从而简化了后续虚拟链路映射过程,降低运算量。
S390,确定所述第二底层网络拓扑中的目标底层链路;所述目标底层链路为以两个第二底层节点为端点的底层链路中最短的底层链路。
S3100,建立所述当前虚拟链路与所述目标底层链路的映射。
具体地,在得到第二底层网络拓扑后,查找第二底层网络拓扑中所有以两个第二底层节点为端点的底层链路,并对这些底层链路按照带宽资源值由小到大的顺序进行排序,形成第四队列,将第四队列中第一个底层链路作为目标底层链路,并建立当前虚拟链路与目标底层链路的映射。需要说明的是,在虚拟链路映射的过程中,如果不存在带宽资源值不小于当前虚拟链路的带宽资源需求的底层链路,那么整个虚拟链路映射过程失败。
本实施例中,利用以两个第二底层节点为端点的底层链路中最短的底层链路对当前虚拟链路进行映射,在保证满足虚拟链路映射的前提下,进一步降低了带宽资源的消耗,节省了带宽资源,同时为后续虚拟链路映射预留下充足的带宽资源,使得整个虚拟链路映射过程更容易实现。
相对应于方法实施例,本发明实施例还提供了一种基于底层节点排序的虚拟网络映射装置,应用于控制器。图4为本发明实施例提供的基于底层节点排序的虚拟网络映射装置的结构示意图,所述装置包括:
接收模块410,用于接收目标虚拟网络请求;所述目标虚拟网络请求包括各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求;
获取模块420,用于获取当前底层网络中每个底层节点的各项属性信息的属性值;
第一计算模块430,用于根据每个底层节点的各项属性信息的属性值以及预先计算的各项属性信息对应的权重参数,计算各底层节点对应的排序权重;所述权重参数为根据历史虚拟网络映射数据计算得到的;
排序模块440,用于根据排序权重对各底层节点进行排序,形成第一队列;
映射模块450,用于根据所述第一队列、各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求,对各虚拟节点进行映射以及对各虚拟链路进行映射。
本发明实施例提供的一种基于底层节点排序的虚拟网络映射装置,首先,根据历史虚拟网络映射数据计算得到各项属性信息对应的权重参数;然后,当接收目标虚拟网络请求后,获取当前底层网络中每个底层节点的各项属性信息的属性值,并根据各项属性信息对应的权重参数以及每个底层节点的各项属性信息的属性值,计算各底层节点对应的排序权重;最后,根据排序权重对各底层节点进行排序形成第一队列,并根据所述第一队列、各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求,对各虚拟节点进行映射以及对各虚拟链路进行映射。
本发明实施例中,由于历史虚拟网络映射数据是网络系统真实存在过的数据,并且这些数据包含了整个网络系统的变化特性,根据历史虚拟网络映射数据计算各底层节点对应的排序权重,并根据排序权重对各底层节点进行排序,能够更好的适应变化的网络系统,根据排序后的底层节点进行虚拟网络映射,能够提高虚拟网络映射的效果。
进一步地,所述装置还包括:
第二计算模块,用于计算任一属性信息对应的权重参数;
所述第二计算模块,包括:
确定子模块,用于采用粒子群优化训练算法,将各个粒子的预设的权重向量初值作为各个粒子的当前权重向量,将各个粒子的预设的速度向量初值作为各个粒子的当前速度向量;
判断子模块,用于判断训练次数是否小于预设训练次数阈值;
第一计算子模块,用于当所述判断子模块的判断结果为小于时,则根据各个粒子的当前权重向量、各个粒子的当前速度向量以及所述历史虚拟网络映射数据中所述任一属性信息的属性值,计算该属性信息对应的当前权重参数,并根据公式
更新各个粒子的当前权重向量,根据公式
更新各个粒子的当前速度向量,并返回执行所述判断训练次数是否小于预设训练次数阈值的步骤;
输出子模块,用于当所述判断子模块的判断结果为不小于时,则输出所述任一属性信息对应的当前权重参数;
其中,为第k轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的当前权重向量;为第k-1轮训练后第n个粒子在达到局部优化参数时对应的权重向量;为第k-1轮训练后粒子群在达到全局优化参数时对应的权重向量;MAX为对向量的各分量取最大值,MIN为对向量的各分量取最小值,vmax为当前速度向量的最大值,c1、c2、c3均为常数,r1、r2均为随机变量。
进一步地,所述第一计算模块,包括:
第二计算子模块,用于根据所对应各项属性信息的属性值,计算每个底层节点的特征向量;
拼接子模块,用于对预先计算的各项属性信息对应的权重参数进行拼接,得到第一权重向量;
内积子模块,用于对所述第一权重向量和每个底层节点的特征向量进行内积,得到该底层节点的排序权重。
本实施例根据各项属性信息的属性值和预先计算的各项属性信息对应的权重参数得到底层节点的排序权重,该排序权重表征了各项属性信息对底层节点的整体影响,使排序能够更好的适应网络系统。另外,本实施例能够考虑多种属性信息,具有良好的扩展性。
进一步地,所述第二计算子模块,包括:
归一化单元,用于对任一底层节点的各项属性信息的属性值进行归一化,得到各项属性信息的归一化属性值;
拼接单元,用于对各项属性信息的归一化属性值进行拼接,得到所述任一底层节点的特征向量。
进一步地,所述排序模块,具体用于按照排序权重由大到小的顺序对各底层节点进行排序,形成第一队列;
所述映射模块,包括:
第一排序子模块,用于按照所述计算资源需求由大到小的顺序对各虚拟节点进行排序,形成第二队列;
第一映射子模块,用于根据所述第一队列,依次对所述第二队列中的虚拟节点进行映射;
第二排序子模块,用于当所述第二队列中的虚拟节点均完成映射后,按照所述带宽资源需求由大到小的顺序对各虚拟链路进行排序,形成第三队列;
第二映射子模块,用于依次对所述第三队列中的虚拟链路进行映射。
图5为本发明实施例提供的第一映射子模块的结构示意图,所述第一映射子模块,包括:
第一确定单元510,用于将所述第二队列中的第一个虚拟节点作为当前虚拟节点;
第一判断单元520,用于判断所述当前虚拟节点是否已经完成映射;
第二确定单元530,用于当所述第一判断单元520的判断结果为已完成时,将所述第二队列中当前虚拟节点的下一个虚拟节点作为当前虚拟节点,触发所述第一判断单元520;
第一映射单元540,用于当所述第一判断单元520的判断结果为未完成时,根据所述第一队列,对所述当前虚拟节点进行映射:
所述第一映射单元540,包括:
第一确定子单元541,用于将所述第一队列中的第一个底层节点作为当前底层节点;
第一判断子单元542,用于判断当前底层节点是否已经与任一虚拟节点建立映射;
第二确定子单元543,用于当所述第一判断子单元542的判断结果为是时,将所述第一队列中当前底层节点的下一个底层节点作为当前底层节点,触发所述第一判断子单元542;
第二判断子单元544,用于当所述第一判断子单元542的判断结果为否,判断所述当前底层节点的计算资源量是否不小于所述第二队列中当前虚拟节点的计算资源需求;
第一映射子单元545,用于当所述第二判断子单元544的判断结果为不小于时,则建立所述第二队列中当前虚拟节点与所述第一队列中当前底层节点的映射;
第三确定子单元546,用于当所述第二判断子单元544的判断结果为小于时,则将所述第一队列中当前底层节点的下一个底层节点作为当前底层节点,触发所述第一判断子单元542。
本实施例中,建立包含计算资源量依次减小的底层节点的第一队列,建立包含计算资源需求依次减小的虚拟节点第二队列;然后,利用第一队列中的底层节点依次尝试映射第二队列中的虚拟节点,从而优先对计算资源需求较大的底层节点进行映射,如果计算资源需求较大的底层节点都能够顺利映射完成,则使后续的虚拟节点映射过程更加简单易行;如果计算资源需求较大的底层节点不能顺利映射完成,则说明整个虚拟节点映射过程必然失败,避免了为其他虚拟节点进行映射成功后再次出现映射失败的场景,从而节省了运算流程。
图6为本发明实施例提供的第二映射子模块的结构示意图,所述第二映射子模块,包括:
第三确定单元610,用于确定各虚拟节点所映射的底层节点为第一底层节点;
第四确定单元620,用于确定包含所有第一底层节点的第一底层网络拓扑,并获取第一底层网络拓扑中各底层链路的带宽资源值;
第五确定单元630,用于将所述第三队列中第一个虚拟链路作为当前虚拟链路;
第二判断单元640,用于判断所述当前虚拟链路是否已经完成映射;
第六确定单元650,用于当所述第二判断单元640判断结果为已完成时,将所述第三队列中当前虚拟链路的下一个虚拟链路作为当前虚拟链路,触发所述第二判断单元640;
第二映射单元660,用于当所述第二判断单元640判断结果为未完成时,对所述当前虚拟链路进行映射:
所述第二映射单元660,包括:
第四确定子单元661,用于确定所述当前虚拟链路两端的虚拟节点为第一虚拟节点;
第五确定子单元662,用于确定两个第一虚拟节点对应的两个第一底层节点为第二底层节点;
去除子单元663,用于去除所述第一底层网络拓扑中所有第一底层链路,以形成第二底层网络拓扑;所述第一底层链路为所述第一底层网络拓扑中带宽资源值小于所述第三队列中当前虚拟链路的带宽资源需求的底层链路;
第六确定子单元664,用于确定所述第二底层网络拓扑中的目标底层链路;所述目标底层链路为以两个第二底层节点为端点的底层链路中最短的底层链路;
第二映射子单元665,用于建立所述当前虚拟链路与所述目标底层链路的映射。
本实施例中,利用以两个第二底层节点为端点的底层链路中最短的底层链路对当前虚拟链路进行映射,在保证满足虚拟链路映射的前提下,进一步降低了带宽资源的消耗,节省了带宽资源,同时为后续虚拟链路映射预留下充足的带宽资源,使得整个虚拟链路映射过程更容易实现。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种基于底层节点排序的虚拟网络映射方法,其特征在于,应用于控制器,所述方法包括:
接收目标虚拟网络请求;所述目标虚拟网络请求包括各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求;
获取当前底层网络中每个底层节点的各项属性信息的属性值;
根据每个底层节点的各项属性信息的属性值以及预先计算的各项属性信息对应的权重参数,计算各底层节点对应的排序权重;所述权重参数为根据历史虚拟网络映射数据计算得到的;
根据排序权重对各底层节点进行排序,形成第一队列;
根据所述第一队列、各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求,对各虚拟节点进行映射以及对各虚拟链路进行映射。
2.根据权利要求1所述的方法,其特征在于,任一属性信息对应的权重参数的计算方式包括:
采用粒子群优化训练算法,将各个粒子的预设的权重向量初值作为各个粒子的当前权重向量,将各个粒子的预设的速度向量初值作为各个粒子的当前速度向量;
判断训练次数是否小于预设训练次数阈值;
如果小于,则根据各个粒子的当前权重向量、各个粒子的当前速度向量以及所述历史虚拟网络映射数据中所述任一属性信息的属性值,计算该属性信息对应的当前权重参数,并根据公式
<mrow>
<msubsup>
<mi>w</mi>
<mi>n</mi>
<mi>k</mi>
</msubsup>
<mo>=</mo>
<msubsup>
<mi>w</mi>
<mi>n</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msubsup>
<mo>+</mo>
<msubsup>
<mi>v</mi>
<mi>n</mi>
<mi>k</mi>
</msubsup>
</mrow>
更新各个粒子的当前权重向量,根据公式
<mrow>
<msubsup>
<mi>v</mi>
<mi>n</mi>
<mi>k</mi>
</msubsup>
<mo>=</mo>
<mi>M</mi>
<mi>A</mi>
<mi>X</mi>
<mrow>
<mo>(</mo>
<mi>M</mi>
<mi>I</mi>
<mi>N</mi>
<mo>(</mo>
<mrow>
<msub>
<mi>v</mi>
<mrow>
<mi>m</mi>
<mi>a</mi>
<mi>x</mi>
</mrow>
</msub>
<mo>,</mo>
<msub>
<mi>c</mi>
<mn>1</mn>
</msub>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mrow>
<mo>(</mo>
<mrow>
<msubsup>
<mover>
<mi>w</mi>
<mo>~</mo>
</mover>
<mi>n</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msubsup>
<mo>-</mo>
<msubsup>
<mi>w</mi>
<mi>n</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msubsup>
</mrow>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>c</mi>
<mn>2</mn>
</msub>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mrow>
<mo>(</mo>
<mrow>
<msup>
<mover>
<mi>w</mi>
<mo>^</mo>
</mover>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>-</mo>
<msubsup>
<mi>w</mi>
<mi>n</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msubsup>
</mrow>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>c</mi>
<mn>3</mn>
</msub>
<msubsup>
<mi>v</mi>
<mi>n</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msubsup>
</mrow>
<mo>)</mo>
<mo>,</mo>
<mo>-</mo>
<msub>
<mi>v</mi>
<mrow>
<mi>m</mi>
<mi>a</mi>
<mi>x</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
</mrow>
更新各个粒子的当前速度向量,并返回执行所述判断训练次数是否小于预设训练次数阈值的步骤;
如果不小于,则输出所述任一属性信息对应的当前权重参数;
其中,为第k轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的当前权重向量;为第k-1轮训练后第n个粒子在达到局部优化参数时对应的权重向量;为第k-1轮训练后粒子群在达到全局优化参数时对应的权重向量;MAX为对向量的各分量取最大值,MIN为对向量的各分量取最小值,vmax为当前速度向量的最大值,c1、c2、c3均为常数,r1、r2均为随机变量。
3.根据权利要求1所述的方法,其特征在于,所述根据每个底层节点的各项属性信息的属性值以及预先计算的各项属性信息对应的权重参数,计算各底层节点对应的排序权重的步骤,包括:
根据所对应各项属性信息的属性值,计算每个底层节点的特征向量;
对预先计算的各项属性信息对应的权重参数进行拼接,得到第一权重向量;
对所述第一权重向量和每个底层节点的特征向量进行内积,得到该底层节点的排序权重。
4.根据权利要求3所述的方法,其特征在于,所述根据每个底层节点的各项属性信息的属性值,计算该底层节点的特征向量的步骤,包括:
通过以下方式,根据每个底层节点的各项属性信息的属性值,计算该底层节点的特征向量:
对任一底层节点的各项属性信息的属性值进行归一化,得到各项属性信息的归一化属性值;
对各项属性信息的归一化属性值进行拼接,得到所述任一底层节点的特征向量。
5.根据权利要求1所述的方法,其特征在于,
所述根据排序权重对各底层节点进行排序,形成第一队列的步骤,包括:
按照排序权重由大到小的顺序对各底层节点进行排序,形成第一队列;
所述根据所述第一队列、各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求,对各虚拟节点进行映射以及对各虚拟链路进行映射的步骤,包括:
按照所述计算资源需求由大到小的顺序对各虚拟节点进行排序,形成第二队列;
根据所述第一队列,依次对所述第二队列中的虚拟节点进行映射;
当所述第二队列中的虚拟节点均完成映射后,按照所述带宽资源需求由大到小的顺序对各虚拟链路进行排序,形成第三队列;
依次对所述第三队列中的虚拟链路进行映射。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一队列,依次对所述第二队列中的虚拟节点进行映射的步骤,包括:
将所述第二队列中的第一个虚拟节点作为当前虚拟节点,判断所述当前虚拟节点是否已经完成映射;
如果已完成,将所述第二队列中当前虚拟节点的下一个虚拟节点作为当前虚拟节点,返回执行所述判断所述当前虚拟节点是否已经完成映射的步骤;
如果未完成,按照如下方式,根据所述第一队列,对所述当前虚拟节点进行映射:
将所述第一队列中的第一个底层节点作为当前底层节点,判断当前底层节点是否已经与任一虚拟节点建立映射;
如果是,将所述第一队列中当前底层节点的下一个底层节点作为当前底层节点,返回执行所述判断当前底层节点是否已经与任一虚拟节点建立映射的步骤;
如果否,判断所述当前底层节点的计算资源量是否不小于所述第二队列中当前虚拟节点的计算资源需求;
如果不小于,则建立所述第二队列中当前虚拟节点与所述第一队列中当前底层节点的映射;
如果小于,则将所述第一队列中当前底层节点的下一个底层节点作为当前底层节点,返回执行所述判断当前底层节点是否已经与任一虚拟节点建立映射的步骤。
7.根据权利要求5所述的方法,其特征在于,所述依次对所述第三队列中的虚拟链路进行映射的步骤,包括:
确定各虚拟节点所映射的底层节点为第一底层节点;
确定包含所有第一底层节点的第一底层网络拓扑,并获取第一底层网络拓扑中各底层链路的带宽资源值;
将所述第三队列中第一个虚拟链路作为当前虚拟链路,判断所述当前虚拟链路是否已经完成映射;
如果已完成,将所述第三队列中当前虚拟链路的下一个虚拟链路作为当前虚拟链路,返回执行所述判断所述当前虚拟链路是否已经完成映射的步骤;
如果未完成,按照如下方式,对所述当前虚拟链路进行映射:
确定所述当前虚拟链路两端的虚拟节点为第一虚拟节点;
确定两个第一虚拟节点对应的两个第一底层节点为第二底层节点;
去除所述第一底层网络拓扑中所有第一底层链路,以形成第二底层网络拓扑;所述第一底层链路为所述第一底层网络拓扑中带宽资源值小于所述第三队列中当前虚拟链路的带宽资源需求的底层链路;
确定所述第二底层网络拓扑中的目标底层链路;所述目标底层链路为以两个第二底层节点为端点的底层链路中最短的底层链路;
建立所述当前虚拟链路与所述目标底层链路的映射。
8.一种基于底层节点排序的虚拟网络映射装置,其特征在于,应用于控制器,所述装置包括:
接收模块,用于接收目标虚拟网络请求;所述目标虚拟网络请求包括各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求;
获取模块,用于获取当前底层网络中每个底层节点的各项属性信息的属性值;
第一计算模块,用于根据每个底层节点的各项属性信息的属性值以及预先计算的各项属性信息对应的权重参数,计算各底层节点对应的排序权重;所述权重参数为根据历史虚拟网络映射数据计算得到的;
排序模块,用于根据排序权重对各底层节点进行排序,形成第一队列;
映射模块,用于根据所述第一队列、各虚拟节点的计算资源需求以及各虚拟链路的带宽资源需求,对各虚拟节点进行映射以及对各虚拟链路进行映射。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二计算模块,用于计算任一属性信息对应的权重参数;
所述第二计算模块,包括:
确定子模块,用于采用粒子群优化训练算法,将各个粒子的预设的权重向量初值作为各个粒子的当前权重向量,将各个粒子的预设的速度向量初值作为各个粒子的当前速度向量;
判断子模块,用于判断训练次数是否小于预设训练次数阈值;
第一计算子模块,用于当所述判断子模块的判断结果为小于时,则根据各个粒子的当前权重向量、各个粒子的当前速度向量以及所述历史虚拟网络映射数据中所述任一属性信息的属性值,计算该属性信息对应的当前权重参数,并根据公式
<mrow>
<msubsup>
<mi>w</mi>
<mi>n</mi>
<mi>k</mi>
</msubsup>
<mo>=</mo>
<msubsup>
<mi>w</mi>
<mi>n</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msubsup>
<mo>+</mo>
<msubsup>
<mi>v</mi>
<mi>n</mi>
<mi>k</mi>
</msubsup>
</mrow>
更新各个粒子的当前权重向量,根据公式
<mrow>
<msubsup>
<mi>v</mi>
<mi>n</mi>
<mi>k</mi>
</msubsup>
<mo>=</mo>
<mi>M</mi>
<mi>A</mi>
<mi>X</mi>
<mrow>
<mo>(</mo>
<mi>M</mi>
<mi>I</mi>
<mi>N</mi>
<mo>(</mo>
<mrow>
<msub>
<mi>v</mi>
<mrow>
<mi>m</mi>
<mi>a</mi>
<mi>x</mi>
</mrow>
</msub>
<mo>,</mo>
<msub>
<mi>c</mi>
<mn>1</mn>
</msub>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mrow>
<mo>(</mo>
<mrow>
<msubsup>
<mover>
<mi>w</mi>
<mo>~</mo>
</mover>
<mi>n</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msubsup>
<mo>-</mo>
<msubsup>
<mi>w</mi>
<mi>n</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msubsup>
</mrow>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>c</mi>
<mn>2</mn>
</msub>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mrow>
<mo>(</mo>
<mrow>
<msup>
<mover>
<mi>w</mi>
<mo>^</mo>
</mover>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>-</mo>
<msubsup>
<mi>w</mi>
<mi>n</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msubsup>
</mrow>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>c</mi>
<mn>3</mn>
</msub>
<msubsup>
<mi>v</mi>
<mi>n</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msubsup>
</mrow>
<mo>)</mo>
<mo>,</mo>
<mo>-</mo>
<msub>
<mi>v</mi>
<mrow>
<mi>m</mi>
<mi>a</mi>
<mi>x</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
</mrow>
更新各个粒子的当前速度向量,并返回执行所述判断训练次数是否小于预设训练次数阈值的步骤;
输出子模块,用于当所述判断子模块的判断结果为不小于时,则输出所述任一属性信息对应的当前权重参数;
其中,为第k轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的速度向量;为第k-1轮训练后第n个粒子的当前权重向量;为第k-1轮训练后第n个粒子在达到局部优化参数时对应的权重向量;为第k-1轮训练后粒子群在达到全局优化参数时对应的权重向量;MAX为对向量的各分量取最大值,MIN为对向量的各分量取最小值,vmax为当前速度向量的最大值,c1、c2、c3均为常数,r1、r2均为随机变量。
10.根据权利要求8所述的装置,其特征在于,所述第一计算模块,包括:
第二计算子模块,用于根据所对应各项属性信息的属性值,计算每个底层节点的特征向量;
拼接子模块,用于对预先计算的各项属性信息对应的权重参数进行拼接,得到第一权重向量;
内积子模块,用于对所述第一权重向量和每个底层节点的特征向量进行内积,得到该底层节点的排序权重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710301251.7A CN107135135B (zh) | 2017-05-02 | 2017-05-02 | 一种基于底层节点排序的虚拟网络映射方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710301251.7A CN107135135B (zh) | 2017-05-02 | 2017-05-02 | 一种基于底层节点排序的虚拟网络映射方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107135135A true CN107135135A (zh) | 2017-09-05 |
CN107135135B CN107135135B (zh) | 2019-09-06 |
Family
ID=59716084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710301251.7A Active CN107135135B (zh) | 2017-05-02 | 2017-05-02 | 一种基于底层节点排序的虚拟网络映射方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107135135B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107454019A (zh) * | 2017-09-28 | 2017-12-08 | 北京邮电大学 | 软件定义网络动态带宽分配方法、装置、设备及存储介质 |
CN108108815A (zh) * | 2017-12-13 | 2018-06-01 | 北京邮电大学 | 基于改进遗传算法的虚拟网络映射方法及装置 |
CN108156041A (zh) * | 2018-01-30 | 2018-06-12 | 重庆邮电大学 | 一种基于安全性感知的差异化虚拟光网络映射方法 |
CN108989126A (zh) * | 2018-08-13 | 2018-12-11 | 北京邮电大学 | 一种虚拟网络映射方法 |
CN110750869A (zh) * | 2019-09-23 | 2020-02-04 | 北京控制工程研究所 | 一种姿轨控系统多部件动力学仿真模块的设计方法 |
CN111277447A (zh) * | 2020-05-08 | 2020-06-12 | 北京东方通科技股份有限公司 | 对多通道链路进行权重排序的方法及系统 |
CN111858014A (zh) * | 2019-04-24 | 2020-10-30 | 中国移动通信集团河北有限公司 | 资源分配方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080240127A1 (en) * | 2007-03-30 | 2008-10-02 | Omar Cardona | Method and apparatus for buffer linking in bridged networks |
CN102364899A (zh) * | 2011-11-16 | 2012-02-29 | 北京邮电大学 | 一种基于粒子群优化的虚拟网络映射方法及系统 |
CN102932479A (zh) * | 2012-11-16 | 2013-02-13 | 北京邮电大学 | 一种基于历史数据实现拓扑感知的虚拟网络映射方法 |
CN104821906A (zh) * | 2015-04-08 | 2015-08-05 | 湖州师范学院 | 一种高效节能虚拟网络节点映射模型及算法 |
CN105743763A (zh) * | 2016-04-07 | 2016-07-06 | 北京邮电大学 | 一种基于学习和推理的虚拟网络映射方法 |
-
2017
- 2017-05-02 CN CN201710301251.7A patent/CN107135135B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080240127A1 (en) * | 2007-03-30 | 2008-10-02 | Omar Cardona | Method and apparatus for buffer linking in bridged networks |
CN102364899A (zh) * | 2011-11-16 | 2012-02-29 | 北京邮电大学 | 一种基于粒子群优化的虚拟网络映射方法及系统 |
CN102932479A (zh) * | 2012-11-16 | 2013-02-13 | 北京邮电大学 | 一种基于历史数据实现拓扑感知的虚拟网络映射方法 |
CN104821906A (zh) * | 2015-04-08 | 2015-08-05 | 湖州师范学院 | 一种高效节能虚拟网络节点映射模型及算法 |
CN105743763A (zh) * | 2016-04-07 | 2016-07-06 | 北京邮电大学 | 一种基于学习和推理的虚拟网络映射方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107454019A (zh) * | 2017-09-28 | 2017-12-08 | 北京邮电大学 | 软件定义网络动态带宽分配方法、装置、设备及存储介质 |
CN108108815A (zh) * | 2017-12-13 | 2018-06-01 | 北京邮电大学 | 基于改进遗传算法的虚拟网络映射方法及装置 |
CN108156041A (zh) * | 2018-01-30 | 2018-06-12 | 重庆邮电大学 | 一种基于安全性感知的差异化虚拟光网络映射方法 |
CN108156041B (zh) * | 2018-01-30 | 2021-08-13 | 重庆邮电大学 | 一种基于安全性感知的差异化虚拟光网络映射方法 |
CN108989126A (zh) * | 2018-08-13 | 2018-12-11 | 北京邮电大学 | 一种虚拟网络映射方法 |
CN111858014A (zh) * | 2019-04-24 | 2020-10-30 | 中国移动通信集团河北有限公司 | 资源分配方法及装置 |
CN110750869A (zh) * | 2019-09-23 | 2020-02-04 | 北京控制工程研究所 | 一种姿轨控系统多部件动力学仿真模块的设计方法 |
CN110750869B (zh) * | 2019-09-23 | 2023-07-14 | 北京控制工程研究所 | 一种姿轨控系统多部件动力学仿真模块的设计方法 |
CN111277447A (zh) * | 2020-05-08 | 2020-06-12 | 北京东方通科技股份有限公司 | 对多通道链路进行权重排序的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107135135B (zh) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107135135B (zh) | 一种基于底层节点排序的虚拟网络映射方法及装置 | |
CN107256632B (zh) | 一种基于用户异质时间价值与拥堵费用预算的交通分配方法 | |
CN109818865A (zh) | 一种sdn增强路径装箱装置及方法 | |
CN103281245B (zh) | 确定业务路由路径的方法及装置 | |
CN108965014B (zh) | QoS感知的服务链备份方法及系统 | |
CN104217073B (zh) | 一种网络社团引力导引的可视化布局方法 | |
CN112738820A (zh) | 一种服务功能链的动态部署方法、装置及计算机设备 | |
CN105376156A (zh) | 一种基于多属性决策的电力骨干传输网路由规划方法 | |
CN109150627A (zh) | 基于动态资源需求及拓扑感知的虚拟网络映射的构建方法 | |
CN111191918A (zh) | 一种智能电网通信网的业务路由规划方法及装置 | |
CN106993273A (zh) | 基于距离加权和遗传优化的DV‑Hop定位方法 | |
CN104301305B (zh) | 信息中心网络下兴趣包转发的方法和转发终端 | |
CN109639575A (zh) | 基于链路拥塞系数的路由规划方法 | |
CN106685745B (zh) | 一种网络拓扑构建方法及装置 | |
CN108684046A (zh) | 一种基于随机学习的接入网服务功能链部署方法 | |
CN110446204B (zh) | 一种适用于车联网络车辆结点的信任值计算方法 | |
CN105323166A (zh) | 一种面向云计算的基于网络能效优先的路由方法 | |
CN107046501A (zh) | 用于sdn的路径确定方法、装置、计算机设备及存储介质 | |
CN106411572A (zh) | 一种结合节点信息和网络结构的社区发现方法 | |
CN104506337B (zh) | 基于区域性故障预测的虚拟网络映射方法及装置 | |
CN104618852B (zh) | 基于层次聚类的数据汇聚方法和系统 | |
CN116647498A (zh) | 一种多链路网络路径动态选择方法及系统 | |
CN112446538A (zh) | 一种基于个性化避险的最优路径获取方法 | |
CN111967678A (zh) | 一种快递末端配送路径优化方法 | |
CN106656806A (zh) | 一种电力广域通信网多业务QoS路由选择方法 |
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 |