一种基于虚拟网映射的服务路径构造方法与流程

文档序号:11180735阅读:708来源:国知局
一种基于虚拟网映射的服务路径构造方法与流程

本发明属于网络通信技术领域,尤其涉及一种基于虚拟网映射的服务路径构造方法。



背景技术:

计算机网络通常由大量的路由器、交换机和功能各异的网络中间件组成。为了有效管理网络,管理员根据当前网络所承载的业务(如:视频、语言、web等)来制定各种策略,由于缺少可用工具,管理员需要将这些高级策略手动地转化为可被网络设备识别的低级配置命令,这项工作富有挑战性且极易出错。

对网络从业和研究人员而言,另一个几乎不能被克服的困难就是互联网的“僵化”问题。互联网的庞大部署规模,使得其成为社会中的关键基础设施,部署规模的不断扩张,随之而来的是互联网自身的演进和变革越来越困难,几十年前为解决基础互联问题而设计的互联网面对当前日新月异的各种显得越来越力不从心。

上述背景下,以ietfforces(forwardingandcontrolseperation,forces)为代表的可编程网络作为一种促进网络演化的手段被提出。而软件定义网络(softwaredefinednetwork,sdn)是可编程网络的新形式,提供了一种新型的网络架构。sdn通过分离网络中的转发平面和控制平面,旨在简化网络管理、支持网络创新和演进,有望从根本上解决互联网的“僵化”问题。

根据服务部署的基本概念,sdn控制器收到服务链请求(以下简称为“服务请求”)后,首先确定其所需的服务组件和组合方式,而后构建虚拟网并在虚拟网中为服务请求分配合适的路径进行服务部署。虚拟网是底层物理网在sdn控制器中的映射,具体的映射关系由转移矩阵确定。

虚拟网针对特定类型的服务而被构建,它并不是底层物理网的简单投影,底层物理网由具备服务提供能力的服务节点(sn)和提供路由传输的普通节点(ri)组成,而虚拟网只包含那些具有服务提供能力的节点sn,虚拟网中节点之间的链路不与底层物理网一一对应而只是一种逻辑上的连通。

虚拟网因服务请求而构建,多个相似的服务请求共用一个虚拟网。针对服务请求,为其提供服务路径是虚拟网的根本目的。服务请求的到来无法预测,虚拟网总是尽力满足它们的要求,理论上,虚拟网的拓扑越接近真实的物理网络,其满足服务请求的能力也越强。然而,实际的情况是,虚拟网的构建过程中,sdn控制器为减少物理节点和链路的查询次数,在满足已有服务请求的前提下,总是希望所构建的虚拟网越简单越好。因此,对于服务路径发现而言,一方面,如何在已有虚拟网的基础上,通过合理的路径查找算法,找到更多的服务路径以满足服务请求,另一方面,在路径查找算法无法找到更多路径的情况下,以最小的代价调整虚拟网,增加虚拟网中的可用路径数量,进一步满足更多的服务请求,是两个必须面对、且需要解决的问题。



技术实现要素:

本发明的目的是克服现有技术的不足,提出一种基于虚拟网映射的服务路径构造方法。

本发明解决其技术问题所采用的技术方案包含如下步骤:

步骤(1)服务链(记作sc)由节点(记作vsn)和连线组成且不包含环路;

每一个节点是一个服务组件,每一个服务组件代表虚拟网中服务节点(记作sn)对数据包的一个处理单元,vsn能力(记作vcap)代表sn为该处理单元运行分配的资源数量,sn能力是sn中当前可用的资源数量;每一个sn对应一个或多个vsn,vsn和sn之间存在映射关系(记作m);

所述连线是两个vsn之间的带宽要求(记作b)。

步骤(2)选取一种可行的m(记作mk),计算所有sn的能力度量(记作fc(mk)),具体包括如下步骤:

2-1选取虚拟网上的一个sn(记作sni);

2-2计算当前sni上所有vsn的vcap之和(记作sumvcap(i));

2-3计算sumvcap(i)与sni能力的比值a(记作a(i));

2-4判断虚拟网上是否还存在未执行过a计算的sn,如果存在则进入步骤2-1;如果不存在则进入步骤2-5;

2-5比较所有的a,fc(mk)为a最大值;

步骤(3)针对步骤(2)所述的mk,计算sn之间的带宽度量(记作fb(mk)),具体包括如下步骤:

3-1选取sc上的一段连线,该连线的起点为vsnj、终点为vsnj+1,获取连线上的b值(记作bj);

3-2根据mk,在虚拟网查找vsnj所对应的sn(记作snj)和vsnj+1所对应的sn(记作snj+1),获取snj和snj+1之间的链路带宽(记作bwj),如果snj和snj+1是同一个节点,那么snj+1等于无穷大;否则bwj等于snj和snj+1之间的实际链路带宽;

3-3计算bj与bwj的比值b(记作b(j));

3-4判断sc上是否还存在未执行过b计算的连线,如果存在则进入步骤3-1;如果不存在则进入步骤3-5;

3-5比较所有的b,fb(mk)为b最大值;

步骤(4)针对步骤(2)和步骤(3)所述的mk,获得虚拟网映射到物理网过程中所包含的普通节点数量(记作h(mk)),所述普通节点是物理网中不包含vsn的物理节点;

步骤(5)将fb(mk)与h(mk)相乘,所得结果与fc(mk)相加,最终结果记作f(mk);

步骤(6)判读是否还存在其他的m,如果存在进入步骤(2);否则进入步骤(7);

步骤(7)比较所有的f(mk),选定使得f(mk)值最小的mk为最终m。

本发明有益效果如下:本发明提出了一种基于虚拟网映射的服务路径构造方法,该方法本质是一个基于“f(.)最小”的路径查找算法,该算法以“最小f(.)最短”作为服务部署中的路径查找依据,在已知的虚拟网中运行该算法,相较于传统“最宽最短”的路径选择方法,能确保每一条所找到的路径“f(.)最小”且整体的路径数量最多。

附图说明

图1服务路径、虚拟网和物理网;

图2具有不同跳数的两条服务路径;

图3“最小f()”和“最短最宽”的比较;

图4映射重要性的说明。

具体实施方式

下面结合附图和实施例对本发明作进一步说明。

本发明提出的一种基于虚拟网映射的服务路径构造方法,包括如下步骤:

步骤(1)服务链(记作sc)由节点(记作vsn)和连线组成且不包含环路;

每一个节点是一个服务组件,每一个服务组件代表虚拟网中服务节点(记作sn)对数据包的一个处理单元,vsn能力(记作vcap)代表sn为该处理单元运行分配的资源数量,sn能力是sn中当前可用的资源数量;每一个sn对应一个或多个vsn,vsn和sn之间存在映射关系(记作m);

所述连线是两个vsn之间的带宽要求(记作b)。

步骤(2)选取一种可行的m(记作mk),计算所有sn的能力度量(记作fc(mk)),具体包括如下步骤:

2-1选取虚拟网上的一个sn(记作sni);

2-2计算当前sni上所有vsn的vcap之和(记作sumvcap(i));

2-3计算sumvcap(i)与sni能力的比值a(记作a(i));

2-4判断虚拟网上是否还存在未执行过a计算的sn,如果存在则进入步骤2-1;如果不存在则进入步骤2-5;

2-5比较所有的a,fc(mk)为a最大值;

步骤(3)针对步骤(2)所述的mk,计算sn之间的带宽度量(记作fb(mk)),具体包括如下步骤:

3-1选取sc上的一段连线,该连线的起点为vsnj、终点为vsnj+1,获取连线上的b值(记作bj);

3-2根据mk,在虚拟网查找vsnj所对应的sn(记作snj)和vsnj+1所对应的sn(记作snj+1),获取snj和snj+1之间的链路带宽(记作bwj),如果snj和snj+1是同一个节点,那么snj+1等于无穷大;否则bwj等于snj和snj+1之间的实际链路带宽;

3-3计算bj与bwj的比值b(记作b(j));

3-4判断sc上是否还存在未执行过b计算的连线,如果存在则进入步骤3-1;如果不存在则进入步骤3-5;

3-5比较所有的b,fb(mk)为b最大值;

步骤(4)针对步骤(2)和步骤(3)所述的mk,获得虚拟网映射到物理网过程中所包含的普通节点数量(记作h(mk)),所述普通节点是物理网中不包含vsn的物理节点;

步骤(5)将fb(mk)与h(mk)相乘,所得结果与fc(mk)相加,最终结果记作f(mk);

步骤(6)判读是否还存在其他的m,如果存在进入步骤(2);否则进入步骤(7);

步骤(7)比较所有的f(mk),选定使得f(mk)值最小的mk为最终m。

实施例

为了便于本领域一般技术人员理解和实现本发明,现结合附图进一步说明本发明的技术方案,给出一种本发明的具体实施方式。

通常,所述服务链以服务请求的形式出现,因此在本实施例后续叙述中,服务请求等同于服务链。

1、资源安全函数f(.)定义

图1中,ps、pa和pd分别是虚拟网中的3个服务节点sn,其中ps和pd是源终端和目的终端在虚拟网中的接入点,将从ps到pd的服务路径表示成p,p由sn组成,用pi(1≤i≤|p|,|p|是路径p中sn的数量)表示路径p上的sn,其中p1=ps,p|p|=pd。

k表示服务请求所包含的服务组件数量,每个服务组件用虚拟服务节点vsn来表示,那么k个vsn就构成一个虚拟的服务路径。vsn必须存在于sn之上,vsn与sn之间的对应关系用映射m来表示。

用vpk(1≤k≤k)表示一个vsn,k值的大小代表了它们在服务路径中的出现次序。为了方便起见,将源和目的终端用vp0和vpk+1来表示,但是vp0和vpk+1并不是真正的sn。vpi和vpj(1≤i≤j≤k)可以被映射到不同的sn,px和py(1≤x≤y≤|p|),也可以被映射到同一个sn。

c(vpk)代表vpk(1≤k≤k)所需的包处理能力,b(vpk,vpk+1)为vpk和vpk+1(1≤k≤k)之间的链路带宽。

路径发现算法需要完成两项任务:1)在虚拟网中查找非环路径p;2)沿着路径p和m将vpk映射到sn。算法的目标就是要找到一组p和m,满足f(p,m)的最小化。f是资源安全函数,定义如下:

f(p,m)=max(fc(p,m),fb(p,m)*h(p))

1)fc(p,m)是sn能力的资源安全函数,对于p上的每个pi,我们首先计算α(pi),其中α(pi)为服务路径p所请求的能力和pi可用能力的比值,有:

fc反映了p和m的安全程度:fc(p,m)值越大,服务请求失败的可能性越高,因为无法提供足够的sn能力。

2)类似,fb(p,m)是一个关于sn之间带宽资源的安全函数。对于路径p上的每条链路(pi,pi+1)而言,假设带宽请求为b(vpj(i),vpj(i)+1),其中j(i)由m决定,那么:

需要注意的是,如果有两个以上的vsn被映射到同一个sn,那么这些vsn之间的带宽将被fb忽略,因为通常认为一个sn内的带宽无穷大。函数fb反映了p和m的安全程度:fb(p,m)的值越大,服务链失败的可能性越高,说明虚拟网无法提供足够的vsn间带宽。

3)h(p)是底层物理网络中路径p所穿过的普通节点(ri)数量。为了说明h(p)在函数f()中的作用,我们以图2为例进行说明。有两个服务路径p=(ps→pa→pd)和p′=(ps→pb→pd),假设它们具有相同的fb()和fc(),优先选择p,因为前者在底层物理网中包含较少的ri,即h(p)<h(p′)。具体解释如下:底层物理网中构成路径p所需的实际路径为ps→r1→r2→pa→r2→r4→pd,ri的数量为4;路径p′所需的实际路径为ps→r1→r2→r3→pb→r3→r2→r4→pd,ri的数量为6,显然路径p优于p′。

2、“最小f(.)最短”的路径评价方法

服务路径发现过程不同于网络层的qos路由,这是因为,服务链中的不同区段需要不同的带宽。图3中的两个服务链都包含了相同的ps和pd,其中ps和pd的能力提供为0,说明ps和pd只提供传输带宽而不提供服务能力。

根据qos路由的“最宽最短”原则为请求1分配路径,首先比较路径(ps→pa→pd)和(ps→pb→pd)的带宽,由于路径带宽取决于带宽最小的链路,因此路径(ps→pa→pd)的带宽为min{b(ps,pa),b(pa,pd)}=10,同理路径(ps→pb→pd)的带宽为4。两者比较,带宽较宽者优先,故为请求1选择路径(ps→pa→pd)。而后,请求2到达时,虚拟网再也无法找一个路径满足其要求,因为仅有的路径(ps→pb→pd),其上链路(pb,pd)无法满足请求2中vp1到vp2的带宽请求,因此请求2将被拒绝。

另一方面,如果遵循“最小f(.)”的原则并设定两条路径的fc(·)和h(·)相等,那么根据资源安全函数f(.)的定义,f(.)只取决于fb(·),即服务路径上所有中的最大者。

对于请求1而言,路径(ps→pa→pd)的路径(ps→pb→pd)的因而根据“最小f(.)”原则,为请求1优先选择路径(ps→pb→pd)。

而后,请求2到达时,剩余的路径(ps→pa→pd)显然也可以满足其要求。

3、vsn→sn映射的重要性

服务路径查找和qos路由的第二不同点在于前者包含了vsn→sn映射。图4中两个服务链都包含了相同的ps和pd。以下说明不同映射m情形下,f(.)的计算过程。图4中可能的m有:

对请求1而言:

1)若m为m(vp1)=m(vp2)=ps,即vp1和vp2被映射到同一个节点ps,b(vp1,vp2)的带宽请求被忽略,f(.)将只取决于fc,有:

2)若m1(vp1)=m1(vp2)=pd,同理可得:

3)若m(vp1)=ps,m(vp2)=pd,有:

此种映射情形下,b(vp1,vp2)的带宽请求不能被忽略,则:

(2)、(3)和(6)相比取其小,最终请求1采用的m为:m1(vp1)=m1(vp2)=ps。同理可得请求2的m为:m2(vp1)=m2(vp2)=pd。

综上分析,容易看出,如果请求1的映射如果不是m1,那么请求2将被拒绝。因此,vsn→sn映射是服务路径发现中的不可分割的一个组成部分。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1