一种基于学习和推理的虚拟网络映射方法与流程

文档序号:13675140阅读:179来源:国知局
技术领域本发明涉及一种实现虚拟网络映射的方法,属于计算机网络技术领域,特别是属于网络虚拟化技术领域。

背景技术:
网络虚拟化是指将一个共用的物理的基础设施网络从逻辑上划分为多个相互隔离的、异质、具有各自特定拓扑结构的虚拟网络。虚拟网络通常由多个虚拟节点以及多条虚拟链路组成逻辑拓扑,每个虚拟节点和每条虚拟链路都有各自不同的需求,如虚拟节点对CPU计算能力的需求和所处地理位置的要求(虚拟节点需要映射在处于一定地理位置范围之内的底层物理节点上,以满足一定的拓扑结构或者提供一定范围的服务),虚拟链路对带宽能力的需求。服务提供商通过租用基础设施提供商提供的底层物理网络上的虚拟资源切片,充分利用底层物理网络基础设施的访问控制权,能够在无需进行相关物理网络硬件投入的条件下,快速部署自定义的网络协议或架构(即虚拟网络),向终端用户提供多样化的服务。在上层虚拟网络向底层物理网络的映射过程中,由于需要同时满足节点和链路的资源需求,导致虚拟网络映射问题是一个NP困难问题。如何有效且高效的实现虚拟网络映射是网络虚拟化技术发展的关键挑战。目前相应的虚拟网络映射解决方案大多基于启发式算法而设计,然而目前的启发式虚拟网络映射方案存在如下问题:(1)普遍使用贪婪匹配策略为每个待映射节点选择当前排序最高的物理节点进行映射,而忽略了先前已经映射好的虚拟节点与当前待映射虚拟节点的关系和影响,未考虑虚拟网络的拓扑,因此极易导致更高的带宽资源消耗、增加网络资源的碎片化程度,并最终导致网络映射性能的降低;(2)节点排序算法对于虚拟网络映射的性能,特别是采用贪婪匹配策略的虚拟网络映射的性能具有重要影响,而目前节点排序算法中普遍采用的资源评价指标是将节点自身的CPU计算能力乘以其相邻链路带宽之和作为一个节点资源能力的衡量标准。这种资源评价指标并不全面准确,有可能在节点映射中选择CPU能力强但链路带宽资源不足的物理节点,进而导致后续链路映射的失败。因此,在进行虚拟网络映射的过程中,如何更好的对底层物理网络节点的资源能力进行评价,如何参考已经映射完毕的虚拟节点及其拓扑结构,实现节点映射的优化选择是目前计算机网络工程领域一个亟待解决的技术难题。

技术实现要素:
有鉴于此,本发明的目的是发明一种实现虚拟网络映射的方法,能够从统计学的角度利用先前虚拟网络请求在底层物理网络上成功映射的历史数据,实现对底层物理网络资源能力的科学评价,进而结合已完成映射虚拟节点与待映射虚拟节点的拓扑关系,运用学习和推理技术实现节点映射和链路映射的优化选择。为了达到上述目的,本发明提出了基于学习和推理的虚拟网络映射方法,所述方法包括下列操作步骤:(1)根据虚拟网络请求在底层物理网络上成功映射的历史数据集合,统计生成底层物理网络节点之间的依赖关系矩阵M,具体过程包括如下操作子步骤:(101)对底层物理网络的所有物理节点进行编号,编号从1开始直到n,n是一个自然数,其大小等于该底层物理网络的物理节点总数;(102)从虚拟网络请求在底层物理网络上得以成功映射的历史数据集合中,取出每一条映射记录,都构造一个n行n列的节点映射矩阵Ik,其中每个元素初始值均为零值,下标k表示第k条映射记录;在该映射记录中,如果编号为i的底层物理节点被该映射记录中的一个虚拟节点成功映射过,则让所述的节点映射矩阵Ik的第i行第i列的元素aii取值更新为等于该虚拟节点的CPU计算资源需求值,这里i是大于等于1、小于等于n的自然数;把前面得到的所有的节点映射矩阵进行矩阵求和,得到节点映射总矩阵I,即其中Q表示所述的虚拟网络请求在底层物理网络上得以成功映射的历史数据集合的大小;(103)从虚拟网络请求在底层物理网络上得以成功映射的历史数据集合中,取出每一条映射记录,都构造一个n行n列的链路映射矩阵Rk,其中每个元素初始值均为零值,下标k表示第k条映射记录;在该映射记录中,如果编号为i的底层物理节点和编号为j的底层物理节点之间的一条物理路径被该映射记录中的一条虚拟链路成功映射过,则让所述的链路映射矩阵Rk的第i行第j列的元素bij取值为物理节点i的节点度数值除以该条物理路径的跳数值,让所述的链路映射矩阵Rk的第j行第i列的元素bji取值为节点j的节点度数值除以该条物理路径的跳数值;其中i和j都是大于等于1、小于等于n的自然数,i和j不能相等;把前面得到的所有的链路映射矩阵进行矩阵求和,得到链路映射总矩阵R,即其中Q表示所述的虚拟网络请求在底层物理网络上得以成功映射的历史数据集合的大小;(104)将所述的节点映射总矩阵I和链路映射总矩阵R进行归一化处理,得到底层物理网络节点之间的依赖关系矩阵M;归一化处理的具体方式是:依赖关系矩阵M的第i行第j列的元素Mij取值为式中Iij表示节点映射总矩阵I的第i行第j列元素,Rij表示链路映射总矩阵R第i行第j列元素,i和j都是大于等于1、小于等于n的自然数;这样当i等于j时,元素Mii是底层物理网络中编号为i的物理节点的节点重要程度值,而当i不等于j时,元素Mij是底层物理网络中编号为i的物理节点到编号为j的物理节点的链路紧密程度值;(2)对于当前等待进行映射的虚拟网络请求,根据该虚拟网络中虚拟节点对CPU计算资源的需求大小,从大到小对该虚拟网络的所有虚拟节点进行排序,此顺序即为虚拟节点映射的先后顺序;(3)根据前述所生成的依赖关系矩阵M和所述的虚拟节点映射的先后顺序,根据当前待映射虚拟节点与已完成映射的虚拟节点的拓扑关系,采用贝叶斯推理判决选择当前待映射虚拟节点对应的最佳底层物理节点,进行虚拟节点到底层物理节点的节点映射;(4)节点映射全部成功完成之后,按照设定的链路映射算法实现虚拟网络上虚拟节点之间的虚拟链路到底层物理网络上物理路径之间的链路映射。所述步骤3的具体内容是包括如下操作子步骤:(301)按照所述的虚拟节点映射的先后顺序,取出当前还未进行映射的排在最前面的虚拟节点;(302)如果该虚拟节点没有父节点,则找出当前能够满足该虚拟节点的CPU计算资源要求的所有候选底层物理节点,然后从中选出节点重要程度值最高的那个底层物理节点进行节点映射,即从依赖关系矩阵M中选出候选底层物理节点所对应的Mii值最高的那个物理节点,将该虚拟节点映射到此物理节点上,其中下标i表示所述的候选底层物理节点的编号;转步骤(304);(303)如果该虚拟节点有m个父节点,则首先确定与该虚拟节点所有父节点有对应映射关系的m个底层物理节点,并找出当前能够满足该虚拟节点的CPU计算资源要求的所有候选底层物理节点,然后从所述的候选底层物理节点中选出那个使到其与该虚拟节点的m个父节点所对应的底层物理节点的链路紧密程度值的联乘积最大的物理节点进行节点映射,即从所述的候选底层物理节点中选出满足下式的那个底层物理节点W,把该虚拟节点映射到此底层物理节点W上:W=argmaxjΠi=1mMjPi]]>上式中,pi表示所述虚拟节点的父节点所对应映射的底层物理网络节点的编号,i取值从1到m;j表示所述的候选底层物理节点;m是一个大于等于1的自然数;所述的虚拟节点的父节点是指在虚拟网络中与该虚拟节点邻接并且先于该虚拟节点已经成功映射的虚拟节点;(304)重复以上步骤,直到所有虚拟节点完成映射,此时节点映射阶段完成。所述步骤4中所述的设定的链路映射方法是指k最短路径k-shortestpath方法。本发明的有益效果在于:充分利用虚拟网络成功映射的历史数据,实现了对底层物理网络资源能力的科学评价,结合全面考虑已映射节点与待映射节点之间的拓扑关系,本发明能够实现节点映射和链路映射的优化选择,减少不必要的带宽资源开销,减轻网络资源的碎片化程度,最终明显提高包括长期平均收益、长期接受率和长期收益开销比在内的各项虚拟网络映射性能。附图说明图1是本发明提出的一种基于学习和推理的虚拟网络映射方法的流程图。图2是本发明的实施例中底层物理网络的示意图。图3是本发明的实施例中一个成功映射的虚拟网络的示意图。图4是本发明的实施例中虚拟网络与底层物理网络映射对照示意图。图5是本发明的实施例中一个待映射的虚拟网络示意图。图6是本发明的实施例中待映射虚拟网络的节点映射过程示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。参见图1,介绍本发明提出的一种基于学习和推理的虚拟网络映射方法,所述方法包括下列操作步骤:(1)根据虚拟网络请求在底层物理网络上成功映射的历史数据集合,统计生成底层物理网络节点之间的依赖关系矩阵M,具体过程包括如下操作子步骤:(101)对底层物理网络的所有物理节点进行编号,编号从1开始直到n,n是一个自然数,其大小等于该底层物理网络的物理节点总数;参见图2,图2所示为一个底层物理网络,共包括6个物理节点(图中圆圈表示物理节点,圆圈内的数字代表物理节点对应的编号)以及8条物理链路(图中实线所示)。每个物理节点旁边的数字表示该物理节点所拥有的CPU计算资源,图2中物理节点1拥有20个单位的CPU计算资源,物理节点2拥有15个单位的CPU计算资源,物理节点3拥有20个单位的CPU计算资源,物理节点4拥有8个单位的CPU计算资源,物理节点5拥有10个单位的CPU计算资源,而物理节点6拥有30个单位的CPU计算资源。节点之间物理链路旁括号中的数字表示该条物理链路所拥有的带宽资源,这里编号1的物理节点与编号2的物理节点之间的物理链路拥有20个单位的带宽资源,编号1的物理节点与编号5的物理节点之间的物理链路拥有20个单位的带宽资源,编号2的物理节点与编号3的物理节点之间的物理链路拥有10个单位的带宽资源,编号2的物理节点与编号5的物理节点之间的物理链路拥有10个单位的带宽资源,编号3的物理节点与编号4的物理节点之间的物理链路拥有20个单位的带宽资源,编号3的物理节点与编号6的物理节点之间的物理链路拥有15个单位的带宽资源,编号4的物理节点与编号6的物理节点之间的物理链路拥有20个单位的带宽资源,编号5的物理节点与编号6的物理节点之间的物理链路拥有10个单位的带宽资源。(102)从虚拟网络请求在底层物理网络上得以成功映射的历史数据集合中,取出每一条映射记录,都构造一个n行n列的节点映射矩阵Ik,其中每个元素初始值均为零值,下标k表示第k条映射记录;在该映射记录中,如果编号为i的底层物理节点被该映射记录中的一个虚拟节点成功映射过,则让所述的节点映射矩阵Ik的第i行第i列的元素aii取值更新为等于该虚拟节点的CPU计算资源需求值,这里i是大于等于1、小于等于n的自然数;参见图3,图3是一个成功映射的虚拟网络的示意图,该虚拟网络包括六边形表示的3个虚拟节点a、b、c,节点旁的数字表示该虚拟节点的CPU计算资源需求大小,即虚拟节点a需要10个单位的CPU计算资源,虚拟节点b需要7个单位的CPU计算资源,而虚拟节点c需要9个单位的CPU计算资源。虚拟节点之间的虚拟链路(图3中以实线表示)旁括号中的数字表示该条虚拟链路的带宽资源需求大小,这里虚拟节点a、b、c两两之间虚拟链路都需要8个单位的带宽资源。按照虚拟节点对CPU计算资源的需求大小,从大到小对a、b、c三个虚拟节点进行排序,排序结果是:a、c、b。假设图3所示的虚拟网络构成了第一条历史映射记录,该虚拟网络映射到图2所示的底层物理网络,具体映射情况如图4所示,即虚拟节点a映射到物理节点6,虚拟节点c映射到物理节点3,虚拟节点b映射到物理节点1,图4中虚拟链路以虚线表示,于是第一条历史映射记录对应的节点映射矩阵计算结果如下:I1=7000000000000090000000000000000000010]]>把前面得到的所有的节点映射矩阵进行矩阵求和,得到节点映射总矩阵I,即其中Q表示所述的虚拟网络请求在底层物理网络上得以成功映射的历史数据集合的大小;(103)从虚拟网络请求在底层物理网络上得以成功映射的历史数据集合中,取出每一条映射记录,都构造一个n行n列的链路映射矩阵Rk,其中每个元素初始值均为零值,下标k表示第k条映射记录;在该映射记录中,如果编号为i的底层物理节点和编号为j的底层物理节点之间的一条物理路径被该映射记录中的一条虚拟链路成功映射过,则让所述的链路映射矩阵Rk的第i行第j列的元素bij取值为物理节点i的节点度数值除以该条物理路径的跳数值,让所述的链路映射矩阵Rk的第j行第i列的元素bji取值为节点j的节点度数值除以该条物理路径的跳数值;其中i和j都是大于等于1、小于等于n的自然数,i和j不能相等;根据上面图3所示虚拟网络所构成的第一条历史映射记录,并根据图4所示的该虚拟网络映射到图2所示的底层物理网络的具体映射情况,即虚拟链路a-b映射到物理路径6-5-1,虚拟链路b-c映射到物理路径1-2-3,虚拟链路c-a映射到物理路径3-6,于是第一条历史映射记录对应的链路映射矩阵计算结果如下:R1=002200220000003200003100000000000032031000]]>把前面得到的所有的链路映射矩阵进行矩阵求和,得到链路映射总矩阵R,即其中Q表示所述的虚拟网络请求在底层物理网络上得以成功映射的历史数据集合的大小;(104)将所述的节点映射总矩阵I和链路映射总矩阵R进行归一化处理,得到底层物理网络节点之间的依赖关系矩阵M;归一化处理的具体方式是:依赖关系矩阵M的第i行第j列的元素Mij取值为式中Iij表示节点映射总矩阵I的第i行第j列元素,Rij表示链路映射总矩阵R第i行第j列元素,i和j都是大于等于1、小于等于n的自然数;这样当i等于j时,元素Mii是底层物理网络中编号为i的物理节点的节点重要程度值,而当i不等于j时,元素Mij是底层物理网络中编号为i的物理节点到编号为j的物理节点的链路紧密程度值;(2)对于当前等待进行映射的虚拟网络请求,根据该虚拟网络中虚拟节点对CPU计算资源的需求大小,从大到小对该虚拟网络的所有虚拟节点进行排序,此顺序即为虚拟节点映射的先后顺序;(3)根据前述所生成的依赖关系矩阵M和所述的虚拟节点映射的先后顺序,根据当前待映射虚拟节点与已完成映射的虚拟节点的拓扑关系,采用贝叶斯推理判决选择当前待映射虚拟节点对应的最佳底层物理节点,进行虚拟节点到底层物理节点的节点映射;(4)节点映射全部成功完成之后,按照设定的链路映射算法实现虚拟网络上虚拟节点之间的虚拟链路到底层物理网络上物理路径之间的链路映射。所述步骤3的具体内容是包括如下操作子步骤:(301)按照所述的虚拟节点映射的先后顺序,取出当前还未进行映射的排在最前面的虚拟节点;(302)如果该虚拟节点没有父节点,则找出当前能够满足该虚拟节点的CPU计算资源要求的所有候选底层物理节点,然后从中选出节点重要程度值最高的那个底层物理节点进行节点映射,即从依赖关系矩阵M中选出候选底层物理节点所对应的Mii值最高的那个物理节点,将该虚拟节点映射到此物理节点上,其中下标i表示所述的候选底层物理节点的编号;转步骤(304);(303)如果该虚拟节点有m个父节点,则首先确定与该虚拟节点所有父节点有对应映射关系的m个底层物理节点,并找出当前能够满足该虚拟节点的CPU计算资源要求的所有候选底层物理节点,然后从所述的候选底层物理节点中选出那个使到其与该虚拟节点的m个父节点所对应的底层物理节点的链路紧密程度值的联乘积最大的物理节点进行节点映射,即从所述的候选底层物理节点中选出满足下式的那个底层物理节点W,把该虚拟节点映射到此底层物理节点W上:W=argmaxjΠi=1mMjPi]]>上式中,pi表示所述虚拟节点的父节点所对应映射的底层物理网络节点的编号,i取值从1到m;j表示所述的候选底层物理节点;m是一个大于等于1的自然数;所述的虚拟节点的父节点是指在虚拟网络中与该虚拟节点邻接并且先于该虚拟节点已经成功映射的虚拟节点;参见图5,图5所示是一个待映射的虚拟网络,该虚拟网络包括六边形表示的4个虚拟节点a、b、c和d,节点旁的数字表示该虚拟节点的CPU计算资源需求大小,即虚拟节点a需要6个单位的CPU计算资源,虚拟节点b需要8个单位的CPU计算资源,虚拟节点c需要10个单位的CPU计算资源,而虚拟节点d需要5个单位的CPU计算资源。图5中虚拟节点之间的虚拟链路省略未标出。参见图6,图6表示了图5所示的待映射虚拟网络的节点映射过程,具体如下:第一步如图6(a)所示虚拟节点c有最高的CPU计算资源需求,排序最高首先进行映射,此时其没有父节点,因此首先找出当前能够满足该虚拟节点的CPU计算资源要求的所有候选底层物理节点,然后从中选出其在依赖关系矩阵M中对应的节点重要程度值最高的那个物理节点(假设该物理节点的编号为x),将虚拟节点c映射到该物理节点上;第二步如图6(b)所示虚拟节点b有次高的CPU计算资源需求,排第二位进行映射,此时其也没有父节点,因此首先找出当前能够满足该虚拟节点的CPU计算资源要求的所有候选底层物理节点,然后从中选出其在依赖关系矩阵M中对应的重要程度值最高的那个物理节点(假设该物理节点的编号为y),将虚拟节点b映射到该物理节点上;第三步如图6(c)所示虚拟节点a紧接着进行映射,其父节点是虚拟节点c和b,因此虚拟节点a映射的底层物理节点是一个当前能够满足其CPU计算资源要求,并且满足的物理节点,即假设该物理节点的编号为z;第四步如图6(d)所示虚拟节点d最后进行映射,其父节点是虚拟节点a,因此虚拟节点d映射的底层物理节点是一个当前能够满足其CPU计算资源要求,并且满足的物理节点。(304)重复以上步骤,直到所有虚拟节点完成映射,此时节点映射阶段完成。所述步骤4中所述的设定的链路映射方法是指k最短路径k-shortestpath方法。发明人对本发明所提出的方法进行了大量仿真实验。在仿真实验中,我们使用通用的拓扑生成器GT-ITM软件构建一个具有100个节点以及大约500条链路的物理网络和所有虚拟网络请求。每两个物理节点之间都是以50%的概率由链路相连。在物理网络中,节点的CPU计算资源以及链路的带宽资源数值都服从[50,100]的均匀分布。每个虚拟网络映射请求的到达率服从每100时间单位到达5个虚拟网络映射请求的泊松分布。各个虚拟网络包含[5,20]均匀分布个的虚拟节点,且每两个虚拟节点之间的虚拟链路连接概率同样是50%。虚拟网络中节点的CPU计算资源以及链路的带宽资源数值都服从[1,50]的均匀分布。每个虚拟网络请求的持续时间符合平均为500时间单位的指数分布。在每次仿真实验中,我们让底层物理网络接受大约2500个虚拟网络映射请求(约为50000时间单位),并以十次仿真结果的算术平均值作为最后的仿真实验结果。实验结果证明本发明的方法是有效的,能明显提高包括长期平均收益、长期接受率和长期收益开销比在内的各项虚拟网络映射性能。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1