一种软件定义网络路由选择方法与流程

文档序号:12829004阅读:337来源:国知局
一种软件定义网络路由选择方法与流程

本发明属于通信网络技术领域,特别涉及一种软件定义网络路由选择方法。



背景技术:

软件定义网络(softwaredefinednetworking,sdn)是由美国斯坦福大学提出的以openflow为基础的新型网络创新架构。sdn的典型架构共分三层,上层为应用层,包括各种不同的业务和应用;中间层为控制层,主要负责处理数据转发设备资源的编排,维护网络拓扑和状态信息等;底层为数据层,主要负责基于流表的数据处理、转发和状态收集。sdn具有的主要特性包括控制平面与数据平面分离、集中式网络控制、控制层与数据层设备之间提供开放网络接口、网络可由外部程序编程等使其可实现网络流量的灵活控制,使网络作为管道变得更加智能,从而为核心网及应用的创新提供了良好的平台。

在sdn架构中,各类交换机业务传输及处理能力的异构特性,网络状态的动态变化以及网络拥塞等问题对sdn的路由选择算法提出困难及挑战。目前已有研究针对sdn网络架构,研究路由算法及协议。

文献[batallej,ferrerj,escalonae,etal.ontheimplementationofnfvoveranopenflowinfrastructure:routingfunctionvirtualization[c]//2013ieeesdnforfuturenetworksandservices(sdn4fns),pp.1-6.]中提出采用路由功能虚拟化模块实现虚拟路由协议,以减少控制平面的开销,但未考虑具体的路由选择方法;文献[wangp,lanj,chens.openflowbasedflowsliceloadbalancing[j].communications,china,2014,11(12):72-82]提出了一种基于openflow的流切片负载均衡算法,通过引入差异化服务理论将数据流进行划分,进而针对不同数据流,应用不同切割粒度进行切片,各切片根据链路负载情况进行多路并行传输,从而实现各路的负载均衡;文献[杨琪,一种跨集群负载均衡的方法及装置,cn104243337a,2013]提出了一种跨集群负载均衡的方法,当网络中用户对某集群应用服务的访问流量过大时,通过sdn控制平面将用户对该集群的访问流量负载迁移至其他集群,以实现集群之间的负载均衡。以上算法未能综合考虑影响数据传输qos及交换机负载状态等因素,难以实现基于网络负载优化的数据转发。



技术实现要素:

有鉴于此,本发明的目的在于提供一种软件定义网络路由选择方法,通过建模网络负载为目标函数,在满足链路容量、链路选择及路由跳数等限制条件下,以网络负载最小化为目标,实现基于网络负载优化的数据流路由选择策略,以解决网络中各交换机负载不均衡问题,实现网络负载均衡及网络性能提升。

为达到上述目的,本发明提供如下技术方案:

一种软件定义网络路由选择方法,包括以下步骤,

sdn控制器根据接收的数据转发请求消息获取数据流的状态信息,并调用拓扑结构模块获取网络状态信息及链路容量信息;

确定源交换机至目的交换机之间的候选路由;

路由选择方法建模;

以网络负载函数最小化为准则优化确定数据流最佳路由。

进一步,所述路由选择方法建模包括建模数据流路由选择标识,建模路由选择优化限制条件,建模网络负载函数。

进一步,所述数据流的状态信息包括数据流请求矩阵信息:f=[fk],其中fk表示第k个流的带宽请求量;sk表示第k个流的源节点,dk表示第k个流的目的节点。

进一步,所述网络拓扑信息包括数据传输可达邻接矩阵c=[cij],1≤i,j≤n,n为网络中交换机总数,其中cij表示两节点的连接状态,若节点i,j为直连节点则cij=1,否则cij=0。

进一步,所述链路信息包括链路信息矩阵:b=[bij],1≤i,j≤n;其中bij表示交换机i与j之间链路的容量大小,以eij表示交换机i与j之间链路,e表示网络中交换机之间链接的集合,eij∈e。

进一步,所述确定源交换机至目的交换机之间的候选路由通过基于逻辑代数化算法实现,具体包括以下步骤:

(1)建立网络交换机节点关联矩阵并确定元素初始值,假设网络存在z个节点,其中节点1为源节点,节点可达邻接矩阵为c=[cij],若节点i与节点j之间存在直接连接链路,则ci,j=xi,j,xi,j表示节点i与节点j之间的链路;若节点之间存在多条直接连接链路时,若i=j,ci,i=1;

(2)关联矩阵行间整合与删除运算:调用公式c′i,j=ci,q·cq,j+ci,j对矩阵的第q行进行整合与删除,其中,c′i,j为整合后矩阵中的元素,i,j≠q;

(3)依次整合与删除关联矩阵中第2行到第z行,直到矩阵中仅余第1行为止,该行中每一个逻辑表达形式均表示源节点和对应目的节点的连接关系,其中每一个逻辑乘积项即表示一条源节点和对应目的节点间的候选路由,逻辑乘积项的集合即为源节点与目的节点间的全部候选路由,若eij所在路由为第k个流的候选路由,则记否则

进一步,所述建模数据流路由选择标识具体为:令为第k个数据流从源节点sk至第i个中继交换机的二元链路选择变量,若第k个流选择第i个中继交换机,则否则为第k个数据流从第j个中继交换机至目的节点dk的二元链路选择变量,若第k个流选择第j个中继交换机至目的节点dk,则否则为第k个数据流对eij的路由选择标识,若第k个流经过eij,则否则,

进一步,所述建模路由选择优化限制条件具体包括:链路容量限制条件,链路选择限制条件以及路由跳数限制条件;

其中,链路容量限制条件表示为:其中βij表示链路eij的使用比例,为第k个数据流对eij的路由选择标识;fk表示第k个流的带宽请求量;bij表示交换机i与j之间链路的容量大小;

链路选择限制条件为:其中为第k个数据流从源节点sk至第i个中继交换机的二元链路选择变量,为第k个数据流从第j个中继交换机至目的节点dk的二元链路选择变量,为第k个数据流对eij的路由选择标识;

路由跳数限制条件表示为:hk≤h(k,max),hk为第k个数据流的传输路由跳数,即:h(k,max)为第k个数据流传输路由跳数最大值。

进一步,所述建模网络负载函数为,为第k个数据流对eij的路由选择标识,fk表示第k个流的带宽请求量,bij表示交换机i与j之间链路的容量大小。

进一步,所述以网络负载函数最小化为准则优化确定数据流最佳路由,需满足数据流链路以及流量约束条件,通过以下函数实现,

其中,为第k个数据流对eij的路由选择标识,其中为第k个数据流从源节点sk至第i个中继交换机的二元链路选择变量,为第k个数据流从第j个中继交换机至目的节点dk的二元链路选择变量。

本发明的有益效果在于:本发明提供的一种软件定义网络路由选择方法,可以在满足数据流链路以及流量约束条件下,以最小化网络负载为准则优化确定数据流最佳路由,有效提高网络性能。

附图说明

为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:

图1为路由转发模型示意图;

图2为本发明所述路由选择方法的实施流程图。

具体实施方式

下面将结合附图,对本发明的优选实施例进行详细的描述。

图1所示为本发明路由转发模型示意图。用户发送数据流至核心网源交换机,源交换机接收数据流并检查是否存在匹配流表项,若存在,则实施流表对应动作;源交换机将数据流转发请求发送至sdn控制器;sdn控制器根据接收的数据转发请求消息获取数据流的状态信息,并调用拓扑结构模块获取网络状态信息及链路容量信息;

基于逻辑代数化算法确定源交换机至目的交换机之间的候选路由;建模数据流路由选择标识;建模路由选择优化限制条件;建模网络负载函数γ;在满足限制条件下,以网络负载函数最小化为准则优化确定数据流最佳路由;sdn控制器将路由选择策略指令下发至源交换机和链路中继交换机;源交换机及中继交换机根据控制器的路由指令更新流表,执行路由转发策略。

图2所示为本发明提出基于网络负载优化的软件定义网络的路由选择机制的建模流程图,具体包括:

1)用户发送数据流至核心网源交换机,源交换机将数据流转发请求发送至sdn控制器。

2)sdn控制器根据接收的数据转发请求消息获取数据流的状态信息,并调用拓扑结构模块获取网络状态信息及链路容量信息。

数据流的状态信息包括数据流请求矩阵信息:f=[fk],其中fk表示第k个流的带宽请求量。sk表示第k个流的源节点,dk表示第k个流的目的节点。

网络拓扑信息包括数据传输可达邻接矩阵c=[cij],1≤i,j≤n,n为网络中交换机总数,其中cij表示两节点的连接状态,若节点i,j为直连节点则cij=1,否则cij=0。

链路信息包括链路信息矩阵:b=[bij],1≤i,j≤n;其中bij表示交换机i与j之间链路的容量大小,以eij表示交换机i与j之间链路,e表示网络中交换机之间链接的集合,eij∈e。

3)基于逻辑代数化算法确定网络中源交换机至目的交换机之间候选路由。

(1)建立网络交换机节点关联矩阵并确定元素初始值,假设网络存在z个节点,其中节点1为源节点,节点可达邻接矩阵为c=[cij],若节点i与节点j之间存在直接连接链路,则ci,j=xi,j,xi,j表示节点i与节点j之间的链路;若节点之间存在多条直接连接链路时,若i=j,ci,i=1;

(2)关联矩阵行间整合与删除运算:调用公式c′i,j=ci,q·cq,j+ci,j对矩阵的第q行进行整合与删除,其中,c′i,j为整合后矩阵中的元素,i,j≠q;

(3)依次整合与删除关联矩阵中第2行到第z行,直到矩阵中仅余第1行为止,此时,该行中每一个逻辑表达形式均表示源节点和对应目的节点的连接关系,其中每一个逻辑乘积项即表示一条源节点和对应目的节点间的候选路由,逻辑乘积项的集合即为源节点与目的节点间的全部候选路由,若eij所在路由为第k个流的候选路由,则记否则

4)建模数据流路由选择标识,令为第k个数据流从源节点sk至第i个中继交换机的二元链路选择变量,若第k个流选择第i个中继交换机,则否则为第k个数据流从第j个中继交换机至目的节点dk的二元链路选择变量,若第k个流选择第j个中继交换机至目的节点dk,则否则为第k个数据流对eij的路由选择标识,若第k个流经过eij,则否则,

5)建模路由选择优化限制条件:链路容量限制条件,链路选择限制条件以及路由跳数限制条件。

其中,链路容量限制条件表示为:其中βij表示链路eij的使用比例,为第k个数据流对eij的路由选择标识;fk表示第k个流的带宽请求量;bij表示交换机i与j之间链路的容量大小;

链路选择限制条件为:其中为第k个数据流从源节点sk至第i个中继交换机的二元链路选择变量,为第k个数据流从第j个中继交换机至目的节点dk的二元链路选择变量,为第k个数据流对eij的路由选择标识。

路由跳数限制条件表示为:hk≤h(k,max),hk为第k个数据流的传输路由跳数,即:h(k,max)为第k个数据流传输路由跳数最大值。

6)建模网络负载函数为第k个数据流对eij的路由选择标识,fk表示第k个流的带宽请求量,bij表示交换机i与j之间链路的容量大小。

7)以网络负载函数最小化为准则优化确定数据流最佳路由,即:

其中,为第k个数据流对eij的路由选择标识,其中为第k个数据流从源节点sk至第i个中继交换机的二元链路选择变量,为第k个数据流从第j个中继交换机至目的节点dk的二元链路选择变量。

8)sdn控制器将路由选择策略指令下发至源交换机和链路中继交换机;源交换机及中继交换机根据控制器的路由指令更新流表,执行路由转发策略。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其做出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

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