一种OSPF与SDN混合网络的路由配置方法与流程

文档序号:12865855阅读:764来源:国知局
一种OSPF与SDN混合网络的路由配置方法与流程

本发明涉及互联网技术领域,特别涉及一种ospf与sdn混合网络的路由配置方法。



背景技术:

随着互联网应用的快速发展,互联网服务提供商isp(internetserviceprovider)网络的流量呈爆炸式增长,网络拥塞频繁出现,造成用户体验不佳。因此出现了流量工程te(trafficengineering),te实际上是一套工具和方法,能够通过改变网络的路由配置调整网络中流量的路径,防止网络拥塞,提高网络的性能。

流量矩阵tm(trafficmatrix)是流量工程te的重要输入参数,tm是网络中流量的具体描述。tm由od流(origin-destination),即源节点到目的节点的流量组成。tm反映了一个网络中所有od对之间的流量需求,以及流量在各个od对间的分布情况。

在传统网络中应用te技术,进行路由优化,是根据单个tm和网络拓扑信息,集中式离线优化当前网络的权重设置,从而优化网络的链路利用率,提高网络的性能。然而在实际的应用,存在网络的流量状况在一定周期内以一定规律动态变化的网络,其流量状况需要用多个tm进行描述。在这类网络中,假若使用现有的路由优化方法,需针对每个tm进行权重优化,也即需要频繁进行权重的设置和改变。这种改变与路由协议收敛相违背,会引发网络信息的洪泛和路由环路,造成网络性能下降甚至故障。

因此,如何针对网络流量的变化,对网络路由进行配置和优化,提高网络的性能成为了一个亟待解决的技术问题。



技术实现要素:

本发明所要解决的技术问题之一是如何针对网络流量的变化,对网络路由进行配置和优化。

为了解决上述技术问题,本发明的实施例首先提出一种ospf与sdn混合网络的路由配置方法,包括:

获取关于所述网络的多个历史流量矩阵;

根据所述多个历史流量矩阵,确定所述网络中sdn节点的部署位置;

根据所述多个历史流量矩阵,获取所述网络的最优权重配置;

根据所述最优权重配置与所述多个历史流量矩阵,获取多组基于所述sdn节点的分流比;

基于所述最优权重配置与所述分流比对所述网络进行实时配置。

优选地,所述根据所述多个历史流量矩阵,确定所述网络中sdn节点的部署位置,包括:

基于所述网络的拓扑结构,随机产生多个包含所述网络中所有节点的多个全排列序列;

分别计算每个序列的代价函数值,并基于所述代价函数值对所述序列进行分类;

采用遗传算法针对分类后的所述序列进行计算,以获取具有最小代价函数值的序列;

根据所述具有最小代价函数值的序列的顺序,依次选取个数满足设定的部署率的多个节点,并将其部署为sdn节点。

优选地,所述设定的部署率为40%。

优选地,所述根据所述多个历史流量矩阵,获取所述网络的最优权重配置,包括:

步骤1、获取所述网络中,在未部署sdn节点时的初始权重配置,并将所述初始权重配置设定为第一权重配置;

步骤2、基于所述第一权重配置,获取所述网络的第二权重配置及与所述第二权重配置对应的最大网络链路利用率;

步骤3、以所述第二权重配置作为新的第一权重配置,并保存所述新的第一权重配置;

步骤4、重复执行步骤2与步骤3,以获取关于所述网络的多组权重配置,以及与所述多组权重配置分别对应的最大网络链路利用率;

步骤5、将多组权重配置中与所述最大网络链路利用率的最小值相对应的权重配置确定为所述网络的最优权重配置。

优选地,所述基于所述第一权重配置,获取所述网络的第二权重配置及与所述第二权重配置对应的最大网络链路利用率,包括:

步骤11、从所述网络中任取一对有序节点,分别作为源节点与目的节点;

步骤12、对所述源节点与其相邻节点所形成的链路权重进行重新配置,以得到关于该源节点的,在所述第一权重配置下的一个邻域权重配置;

步骤13、基于所述邻域权重配置,计算对应于该邻域权重配置的最大链路利用率;

步骤14、以所述邻域权重配置作为新的第一权重配置,并保存所述新的第一权重配置;

步骤15、重复执行步骤11、步骤12、步骤13与步骤14,以获取与所述网络中任意一对有序节点分别对应的所述邻域权重配置及相应的最大链路利用率;

步骤16、将所述最大链路利用率的值最小者确定为最大网络链路利用率,并将对应于该最大网络链路利用率的所述邻域权重配置确定为所述网络的第二权重配置。

优选地,所述基于所述邻域权重配置,计算对应于该邻域权重配置的最大链路利用率,包括:

基于所述多个历史流量矩阵获取所述网络的期望流量矩阵;

基于所述邻域权重配置,分别以所述网络中的各个节点为目的节点,获取对应于各个目的节点的dag图;

基于所述期望流量矩阵、流量守恒、各链路上的容量限制与对应于所述网络中的各个节点的所述dag图,确定所述网络中各条链路中的流量,并根据所述各条链路中的流量计算所述最大链路利用率。

优选地,所述分别以所述网络中的各个节点为目的节点,获取对应于各个目的节点的dag图,包括:

步骤21、以所述网络中的任一节点为目的节点,获取其他各节点至该目的节点的最短路径树;

步骤22、在每条所述最短路径树上,依次加入已经被部署为sdn节点的邻边,且保证加入的所述邻边不会构成回路,从而得到对应于该目的节点的dag图;

步骤23、重复执行步骤21与步骤22,以获取对应于所述网络中的每个节点的dag图。

优选地,所述根据所述最优权重配置与所述多个历史流量矩阵,获取多组基于所述sdn节点的分流比,包括:

基于所述最优权重配置,分别以所述网络中的各个节点为目的节点,获取对应于各个目的节点的dag图;

基于所述多个历史流量矩阵、流量守恒、各链路上的容量限制与对应于所述网络中的各个节点的所述dag图,分别确定与每个所述历史流量矩阵相对应的sdn节点处的分流比。

优选地,所述基于所述最优权重配置与所述分流比对所述网络进行实时配置,包括:

以所述最优权重配置对所述网络进行初始化,并根据所述多个历史流量矩阵的周期性,以与每个所述历史流量矩阵相对应的sdn节点处的分流比实时配置sdn节点。

优选地,所述获取关于所述网络的多个历史流量矩阵,具体包括,

在所述网络的一个流量变化周期内,对所述网络中的流量以固定时间间隔测量取样,获得流量矩阵的样本;

对所述流量矩阵的样本进行聚类分析,以得到多个历史流量矩阵。

本发明通过离线ospf权重优化和在线sdn分流比优化相结合的方法,可实现对多流量矩阵描述的混合网络的优化配置,对网络最大链路利用率的优化能够提高13%~42%,且获得的网络最大链路利用率与理论最优解差距在10%的差距之内。

本发明的其他优点、目标,和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本申请的技术方案或现有技术的进一步理解,并且构成说明书的一部分。其中,表达本申请实施例的附图与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。

图1是根据本发明一实施例的路由配置方法的流程示意图;

图2是根据本发明一实施例的部署混合网络中sdn节点的流程示意图;

图3是根据本发明一实施例的获取网络的最优权重配置的流程示意图;

图4是根据本发明一实施例的获取第二权重配置及对应的最大网络链路利用率的流程示意图;

图5是根据本发明一实施例的计算邻域权重配置的流程示意图;

图6是根据本发明一实施例的计算最大链路利用率的流程示意图;

图7是根据本发明一实施例的获取sdn节点分流比的流程示意图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本发明的保护范围之内。

软件定义网络sdn(softwaredefinednetworking)是一种新型网络架构,sdn控制器能够动态灵活地调整网络中的流量路由,摆脱了传统网络的权重修改和路由收敛的限制,较适用于动态网络流量场景。其面临的主要问题是,由于经济和技术上的原因,完全部署sdn架构的网络短期内不太可能实现。而在网络中部分部署sdn节点,搭建混合sdn网络是一种较实际的网络架构。

本发明实例网络中所有的路由器节点均支持ospf(openshortestpathfirst)协议,且部分节点同时部署了sdn协议比如openflow,可以通过sdn控制器集中式下发流表项到sdn交换机节点去控制这些sdn节点出链路上的流量(也即sdn节点分流比)。

下面结合图1详细说明本发明实施例所提供的基于ospf与sdn混合网络的路由配置方法。附图的流程图中示出的步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

针对网络优化需要获得网络的基本架构情况,基本网络架构包含网络中的节点数以及节点连接方式。在本实施例中,采用无向图g来表示网络的基本架构情况,其中g=(v,a)(v是节点集,a是边集)。

本发明针对动态流量场景,首先需获得网络的流量描述,流量矩阵是一种网络的流量描述。本发明是在网络的一个流量变化周期内,对网络中的流量以固定时间间隔测量取样,获得流量矩阵的样本集。再对流量矩阵的样本进行聚类分析,以得到多个历史流量矩阵。如图1中步骤s110所示。

在一个具体的实施例中,将网络的流量变化周期定义为一天,以5分钟为间隔,测量得到288个流量矩阵的样本。然后使用k-means算法分析这些流量矩阵的样本,聚类得到多个聚类中心矩阵di及相应的聚类系数ri,di即为网络的历史流量矩阵。

进而根据di及ri,可得到期望流量矩阵dexp,如表达式(1)所示:

本发明的路由配置方法是应用于混合sdn网络的,网络优化的效果与网络中的sdn节点的部署相关。为了达到最优的网络链路利用率调节结果,需要按照一定的部署规则确定混合网络中sdn节点的个数和位置,如图1所示。

步骤s120、根据多个历史流量矩阵,确定网络中sdn节点的部署位置,以部署混合网络。具体的,如图2所示。

步骤s210、基于网络的拓扑结构,根据已知的无向图g=(v,a),设节点集v中包括n个节点,随机产生包含网络中所有节点的多个全排列序列,共产生个全排列序列。

步骤s220、分别计算每个序列的代价函数值,并基于代价函数值对m个序列进行分类。以一个序列为例,在该序列中按顺序选择第一个节点作为sdn节点,然后使用网络流量的链路容量限制,流量守恒限制和根据期望流量矩阵dexp所确定的流量需求等限制条件计算出sdn节点的分流比,并得到当前网络的最大链路利用率。重复该过程,逐步按顺序累加部署sdn节点,共计算出n个网络最大链路利用率。将这n个网络最大链路利用率求和,记为这个序列的代价函数值。

重复上述过程,得到每个序列的代价函数值。根据每一个序列的代价函数值从小到大对这些序列进行排序。并将这些序列按照代价函数值从小到大分类,前10%的序列放入第一类(top),中间的80%的序列放入第二类(middle),最后10%的序列放入第三类(low)。

步骤s230、对序列分类之后,采用遗传算法针对分类后的序列进行计算,以获取具有最小代价函数值的序列,并将该具有最小代价函数值的序列确定为最优部署序列。遗传算法的具体计算过程为:

根据遗传算法,top类、middle类、low类组成的所有序列称为一个种群,从top类和middle类中分别选择一个父本序列和母本序列,将父本序列的前一半元素按照顺序放入子代个体。在母本序列中选择相对应的后一半元素,按其在母本中顺序放入子代个体,组成子代个体。一共选择跟middle类中相同数量的子代个体序列。

每一个子代序列随机选择子代序列上的两个位置进行元素互换,这样产生变异后的新的子代个体序列。

将top类的序列和产生的子代序列保留,以及随机交叉变异产生子代个体序列的10%子代序列组成新一代的种群(同样为m个序列)。

重复上述过程,进行多次迭代,在最终产生的种群中找到代价函数值最小的序列作为最优部署序列。

步骤s240、基于最优部署序列部署sdn节点。根据最优部署序列的节点顺序部署sdn节点,直到节点数达到部署率要求,也即根据具有最小代价函数值的序列的顺序,依次选取个数满足设定的部署率的多个节点,将这些节点部署为sdn节点。

sdn节点部署率变化在0~100%范围内。但由于sdn技术的固有特性,导致sdn的完全部署比较困难。为了降低网络的构建难度,需要尽量的降低sdn的部署率。在一个具体的实施例中,使sdn的部署率为40%,这时可以获得一个接近最优的网络状态。即如果最优部署序列中有100个节点,将前40个节点部署为sdn节点。

接下来需对得到的混和网络进行权重优化配置和sdn节点分流比配置,需要获得配置所需的ospf最优权重配置和sdn分流比。

继续参考图1中步骤s130、根据多个历史流量矩阵,获取网络的最优权重配置。

获取最优权重配置是基于网络链路利用率评价和迭代计算的算法来实现的,下面结合图3-图6进行说明。

图3所示为获取离线优化权重配置的整体迭代流程,如图3所示,包括以下步骤:

步骤s310、获取第一权重配置。本实施例中,第一权重配置为在未部署sdn节点时的初始权重配置,也可以随机的采用任意方法生成的权重配置作为第一权重配置。

步骤s320、基于第一权重配置,获取网络的第二权重配置及对应的最大网络链路利用率。步骤s330,更新第一权重配置,以第二权重配置作为新的第一权重配置,并保存新的第一权重配置。

具体的,基于第一权重配置,获取网络的第二权重配置及对应的最大链路利用率的步骤还具体包括,如图4所示:

步骤s410、从网络中任取一对有序节点,分别作为源节点与目的节点。

具体的,已知网络的无向图为g=(v,a),设顶点集v中共有n个节点。首先从n个节点中任选2节点作为一对有序节点,共可得到对有序节点,这些对有序节点构一个集合p。从集合p中取出一对有序节点(s,t),以前一个节点s作为源节点,以后一个节点t作为目的节点。

步骤s420、根据第一权重配置,重新设置s节点的相邻边的权重,即将源节点s与其相邻节点所形成的链路权重进行重新配置,以得到关于s节点的关于第一权重配置的一个领域权重配置。

具体的,如图5所示,包括以下具体步骤:

步骤s510、基于当前权重(第一权重配置),根据网络的无向图g=(v,a),搜索节点s的相邻节点xi(i=1,2....),分别计算xi(i=1,2....)节点到达节点t的最短路径的权重和ω(pi)。

步骤s520、对s和t之间的最短路径的权重和ω*进行设定,如表达式(2)所示:

ω*={1+max[ω(pi)]|1≤i≤p}(2)

这样就在s和t之间出现权重和为ω*的p条最短路径,使得s和t之间的流量能够多条路径均匀分配。

步骤s530、在当前权重配置中,对从s出发的链路的权重ω进行重新设置,新权重ω**如表达式(3)所示:

ω**=ω*-ω(pi),i=1,2,......p(3)

完成了对节点s的相邻边的权重设置,得到权重配置为当前权重的一个邻域权重配置。

接下来,如图4所示,在步骤s430中、基于得到的邻域权重配置,计算得出相应的最大链路利用率。

具体的,根据获取到的邻域权重配置和期望流量矩阵dexp,基于sdn规则,计算出各链路上的流量,从而得到网络的最大网络链路利用率。如图6所示,包括以下具体步骤:

步骤s610,遍历网络,基于得到的邻域权重配置,使用迪杰斯特拉算法构造从一节点a1出发到其他各个节点的最短路径树。

步骤s620,将从节点a1出发到其他各个节点的最短路径树转置得到以节点a1为目的节点的最短路径树。然后在获取到的最短路径树上,依次加入各个sdn节点的邻边,并且使用拓扑排序检查看是否会构成回路。如果加入某条边不会构成回路,那么就将该边加入;否则移除该边。这样最终得到了一个针对节点a1的基于混合网络拓扑的最大有向无环图(directedacyclicgraph,简称dag),也就是流量可以流经的路径。

重复s610-s620,遍历网络中的每个节点,最终得到针对网络中每个节点ai,i=1……n,的多个dag图。

之后基于期望流量矩阵dexp、流量守恒、各链路上的容量限制与对应于网络中的各个节点的dag图,确定网络中各条链路中的流量,并根据各条链路中的流量计算最大链路利用率,具体为:

步骤s630、模拟路由,根据期望流量矩阵dexp和dag图进行流量分配,进而计算每条链路上的流量。

以一个节点a1和其对应的dag图为例,首先对dag图中节点进行拓扑排序,按照拓扑排序结果依次取出网络中的节点。如果该节点是常规节点,将该节点到a1的流量根据该节点在dag图中的出链路的个数均匀分配到邻边上,并将对应的流量传递累积到最短路径的下一跳。如果该节点是sdn节点,用未知数表示分配到所有该节点在dag图中邻边上的流量,并根据sdn节点流量守恒的列出关于未知量的等式,同时将对应的流量累加到邻节点上。依次传递下去,就可以将拓扑排序中其他节点到目的节点a1的流量全部分配完毕。并得到以a1为目的节点的dag图中所有边上的流量和关于sdn节点的等式。

重复该过程,对得到的所有的dag图进行流量分配,得到一系列关于sdn节点的等式。

步骤s640、再将流量分配后的所有dag图的链路流量累加,根据每条链路的流量不能超过容量的原则,可得到关于sdn节点的不等式。

步骤s650、根据s630中得到关于sdn节点的等式,以及s640中得到关于sdn节点的不等式,使用线性规划求解工具(cplex)求解,可得到每条链路上的流量,进而可计算得到,与上述邻域权重配置相对应的的最大链路利用率。

继续参考图4以及步骤s410,如果以集合p1表示剩余节点对的集合,在得到对应于一对有序节点对的邻域权重配置以及相应的最大链路利用率之后,判断集合p1是否为空,若不为空,则以该邻域权重配置作为新的第一权重配置,并保存新的第一权重配置,以集合p1作为新的集合p,在新的集合p基础上,再选取一对有序节点,重复执行步骤s420-步骤s430,直到p1为空,结束循环迭代的过程。

将上述过程中得到领域权重配置和对应的最大链路利用率作为一个对象元素,放入集合d。循环迭代结束后,集合d中共得到与有序节点对的数量相对应的个对象元素。

步骤s440、评价集合d中的最大链路利用率,将值最小的最大链路利用率对应的邻域权重确定为第二权重配置,该值最小的最大链路利用率为最大网络链路利用率。

在得到一组第二权重配置与对应的最大网络链路利用率,及执行步骤s330之后,继续执行步骤s340,如图3所示。

步骤s340、对是否达到迭代次数进行判定。当计算次数未达到设定的迭代次数时,循环执行s320与s330。当计算次数达到设定的迭代次数时,停止迭代,得到多组第二权重配置和对应的最大网络链路利用率,并执行步骤s350。

步骤s350、评价得到的多组数据,将具有最小值的最大网络链路利用率所对应的权重配置确定为网络的最优权重配置。

上述迭代次数可以根据实际需要进行设定,例如本实施例中设定为5000次。最终产生与迭代次数相同的5000组第二权重配置,以及与第二权重配置分别一一对应的最大网络链路利用率。

以上,通过获取不同权重配置下的最大网络链路利用率,然后通过对比获取到的不同的最大网络链路利用率来优选权重配置。接下来,再根据多个历史流量矩阵和最优权重配置,获取多组sdn节点的分流比,如图1中步骤s140所示,其具体执行步骤结合图7详细说明。

需要说明的是,本发明应用场景中网络流量具有周期性变化规律,网络的在线流量描述可为获取的多个历史流量矩阵di,每一个di对应于一个针对该流量矩阵的分流比。下面以一个di为例,对分流比获取过程进行说明,具体过程如图7所示。

步骤s710、根据最优权重配置,使用迪杰斯特拉算法构造从任一节点a1出发到其他各个节点的最短路径树。

步骤s720、获取该任一节点的基于混合网络拓扑的dag图。

重复s710-s720,遍历网络中节点,最终得到针对每一个节点ai,i=1……n,的多个dag图。

上述步骤s710-步骤s720的具体执行过程可以参考步骤s610-步骤s620,此处不再赘述。

步骤s730、根据流量矩阵di,模拟路由,进行流量分配,得到一系列关于sdn节点的等式。

步骤s740、链路流量累加,根据每条链路的流量不能超过容量的原则,可得到关于sdn节点的不等式。

步骤s750、使用线性规划求解工具(cplex)求解,可得到每条链路上的流量,进而得到sdn节点的分流比,该分流比为针对该di的sdn节点分流比。

上述步骤s730-步骤s750的具体执行过程可以参考步骤s630-步骤s650,此处不再赘述。

重复上述s730-s750步骤,得到针对每个di的sdn节点分流比。

以上,针对最优权重配置设置的网络,再根据网络的在线流量描述去进一步计算sdn分流比,获取针对在线流量矩阵的分流比,以适应网络的动态变化。

最后,基于上述获得的最优权重配置与分流比对网络进行实时配置,如图1中步骤s150所示。具体的,以最优权重配置对网络进行初始化,将最优权重配置下发配置到混合网络中的ospf节点。网络运行中根据流量的实时变化,以与每个历史流量矩阵相对应的sdn节点处的分流比实时配置sdn节点。

本发明对于ospf节点进行权重优化,对于sdn节点进行分流比优化,将离线ospf权重优化和在线sdn分流比优化相结合。基于迭代计算和网络链路利用率评估,得到优化的ospf权重设置,再根据网络的流量描述,得到针对流量描述的sdn分流比。根据获得的权重设置和分流比实时配置网络。

本发明在多个真实的网络拓扑和其相应的流量数据上进行了实验。实验结果表明采用本发明离线ospf权重优化和在线sdn分流比优化相结合的方法,对于网络最大链路利用率的优化能够提高13%~42%,而且获得的网络最大链路利用率与理论最优解差距在10%的差距之内。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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