一种基于部分部署的分段路由网络的流量工程方法及装置与流程

文档序号:16588385发布日期:2019-01-14 18:52阅读:204来源:国知局
一种基于部分部署的分段路由网络的流量工程方法及装置与流程
本申请涉及但不限于流量工程
技术领域
,尤指一种基于部分部署的分段路由(sr,segmentrouting)网络的流量工程方法及装置。
背景技术
:随着互联网飞速发展,互联网出现了网络流量爆炸式增长等问题。另外,音视频业务的不断发展也对互联网提出了服务质量的要求。受限于路由算法和调度策略,网络流量极易在链路上分配不均,从而导致网络拥塞和网络服务质量下降。如何充分利用有限的网络资源,通过对网络流量的合理调度和分配,避免网络拥塞,同时满足流量可靠传输和服务质量等方面的要求,是一个亟待解决的问题。流量工程(te,trafficengineering)是一种优化网络流量分配的技术,可以对网络流量优化调度,从而实现网络流量负载均衡,减少拥塞,提高网络资源的利用率。在传统网络协议(ip,internetprotocol)网络中,路由器通常运行ospf(openshortestpathfirst,开放式最短路径优先)或is-is(intermediatesystemtointermediatesystem,中间系统到中间系统)等分布式内部网关协议。这类路由协议,根据每条链路的权重计算出任意两个节点之间的最短路,数据包沿着源点到目的点的最短路进行路由。网络管理员通过对链路权重的合理配置优化流量路径,实现流量工程目标。然而,由于ip网络的路由方式过于简单,ip网络并不能为流量工程提供最佳的解决方案。软件定义网络(softwaredefinenetwork,sdn)的出现为流量工程提供了更加灵活的方式。sdn的架构分为数据平面层、控制平面层和应用层三层,实现了控制和转发的分离。数据平面层只具有数据包的转发功能,控制平面层为一个sdn集中控制器,应用层是一些sdn业务应用。sdn集中控制器通过南向接口与数据平面层建立连接,sdn业务应用调用sdn集中控制器提供的北向接口实现相关功能。sdn的流量工程应用位于应用层,通过sdn集中控制器下发流表到数据平面层的交换机,实现对数据平面层转发行为和流量路径的控制。然而,在网络规模较大的情况下,交换机的流表数目极易超过流表容量限制,可扩展性较差。分段路由(sr,segmentrouting)是一种最新出现的源路由机制,它仅需要对现有igp(interiorgatewayprotocol,内部网关协议)进行简单的扩展便可应用在ip/mpls(multiprotocollabelswitching,多协议标签交换)或ipv6(internetprotocolversion6,互联网协议第6版)网络中。在sr网络中,每条流的状态仅存储在sr域的入口节点中,中间节点不需要存储流的状态信息,因此具有极高的可扩展性。考虑到sr的简单、易部署、可扩展等优点,基于sr的流量工程算法已经成为流量工程研究中的热点问题。然而,从纯ip网络直接迁移到全sr网络是困难甚至不可行的。技术实现要素:本申请实施例提供了一种基于部分部署的sr网络的流量工程方法及装置,可以最小化sr网络的最大链路利用率。一方面,本申请实施例提供一种基于部分部署的分段路由网络的流量工程方法,包括:获取分段路由网络的网络拓扑以及流量矩阵;通过多次迭代运算,确定所述分段路由网络的最小化的最大链路利用率;其中,每次迭代运算中分别进行以下处理:根据所述网络拓扑、之前搜索到的最优的网络链路权重矩阵以及预设的重置比例,确定本次搜索得到的网络链路权重矩阵;根据所述网络拓扑、所述流量矩阵、本次搜索得到的网络链路权重矩阵以及分段路由节点的部署率,确定本次选择的分段路由节点集合;根据所述网络拓扑、所述流量矩阵、本次搜索得到的网络链路权重矩阵以及本次选择的分段路由节点集合,确定本次运算中所述分段路由网络的最小化的最大链路利用率、所述流量矩阵中每条流的可用路径以及在所述可用路径上的最佳分流比;当迭代次数等于预设次数,则将多次迭代运算中得到的最大链路利用率的最小值确定为所述分段路由网络的最小化的最大链路利用率;当所述迭代次数小于所述预设次数,则执行下一次迭代运算。另一方面,本申请实施例提供一种基于部分部署的分段路由网络的流量工程装置,包括:获取模块,适于获取分段路由网络的网络拓扑以及流量矩阵;处理模块,适于通过多次迭代运算,确定所述分段路由网络的最小化的最大链路利用率;其中,所述处理模块包括:网络链路权重矩阵搜索单元,适于在每次迭代运算中进行以下处理:根据所述网络拓扑、之前搜索到的最优的网络链路权重矩阵以及预设的重置比例,确定本次搜索得到的网络链路权重矩阵;分段路由节点集合选择单元,适于在每次迭代运算中进行以下处理:根据所述网络拓扑、所述流量矩阵、本次搜索得到的网络链路权重矩阵以及分段路由节点的部署率,确定本次选择的分段路由节点集合;线性规划优化单元,适于在每次迭代运算中进行以下处理:根据所述网络拓扑、所述流量矩阵、本次搜索得到的网络链路权重矩阵以及本次选择的分段路由节点集合,确定本次运算中所述分段路由网络的最小化的最大链路利用率、所述流量矩阵中每条流的可用路径以及在所述可用路径上的最佳分流比;迭代判断单元,适于当迭代次数等于预设次数,则将多次迭代运算中得到的最大链路利用率的最小值确定为所述分段路由网络的最小化的最大链路利用率;当所述迭代次数小于所述预设次数,则通知所述网络链路权重矩阵搜索单元、所述分段路由节点集合选择单元以及所述线性规划优化单元执行下一次迭代运算。再一方面,本申请实施例提供一种终端,包括:存储器和处理器,所述存储器存储有基于部分部署的分段路由网络的流量工程程序,所述流量工程程序被所述处理器执行时实现上述基于部分部署的分段路由网络的流量工程方法的步骤。再一方面,本申请实施例提供一种计算机可读介质,存储有基于部分部署的分段路由网络的流量工程程序,所述流量工程程序被处理器执行时实现上述基于部分部署的分段路由网络的流量工程方法的步骤。在本申请实施例中,在部分部署的sr网络中,综合优化网络链路权重矩阵、部署的sr节点集合、流量矩阵中每条流的可用路径以及在可用路径上的最佳分流比,从而最小化sr网络的最大链路利用率。本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。图1为sr路由过程的一个示例图;图2为本申请实施例提供的基于部分部署的sr网络的流量工程方法的流程图;图3为散点式部署的部分部署的sr网络的示例图;图4为节点的最大链路利用率的计算示例图;图5为本实施例中的线性规划优化算法的阶段示意图;图6为本实施例中的子路径的计算示例图;图7为本实施例中的可用路径的示例图;图8为采用本实施例提供的流量工程方法的应用示例效果图;图9为本实施例提供的基于部分部署的sr网络的流量工程装置的示意图;图10为本实施例提供的终端的示意图。具体实施方式下面将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。在sr网络中,段代表的是拓扑或基于服务的一种指令,有前缀段、节点段、邻接段等类别。在本申请实施例仅涉及节点段。sr域的入口节点会把端到端的逻辑路径分成段,然后通过一系列需要经过的中间节点表示这条路径。图1为sr路由过程的一个例子的示意图。其中,入口路由器把段标签栈(例如mpls标签栈)封装到包头中,从而表明数据包需流经的完整路径。这里每个段标签代表的是一个中间节点,栈顶标签是有效的、并用来指示数据包的转发路径。如图1所示,数据包从s点出发,根据igp协议沿最短路路由到达m1点。到达m1点后,栈顶标签m1被弹出,数据包路由到达下一个标签m2。最终所有标签被弹出,然后数据包到达出口路由器d。由于从纯ip网络直接迁移到全sr网络是困难甚至不可行的,因此,采用软迁移的办法,即只将ip网络中的部分路由器升级为支持sr的路由器,会大大提高操作的可行性和简便性。本申请实施例提供一种基于部分部署的sr网络的流量工程方法及装置,通过在部分部署的sr网络中,综合优化网络链路权重矩阵、sr节点集合以及流量路径,达到最小化sr网络的最大链路利用率。图2为本申请实施例提供的基于部分部署的sr网络的流程工程方法的流程图。本实施例提供的流量工程方法可以由独立于sr网络的终端(比如,台式电脑或笔记型电脑)执行。然而,本申请对此并不限定。如图2所示,本实施例提供的基于部分部署的sr网络的流量工程方法,包括以下步骤:步骤201、获取分段路由(sr)网络的网络拓扑以及流量矩阵;然后,通过多次迭代运算,确定sr网络的最小化的最大链路利用率;其中,每次迭代运算中分别进行以下处理:步骤202、根据网络拓扑、之前搜索到的最优的网络链路权重矩阵以及预设的重置比例,确定本次搜索得到的网络链路权重矩阵;步骤203、根据网络拓扑、流量矩阵、本次搜索得到的网络链路权重矩阵以及sr节点的部署率,确定本次选择的sr节点集合;步骤204、根据网络拓扑、流量矩阵、本次搜索得到的网络链路权重矩阵以及本次选择的sr节点集合,确定本次运算中该sr网络的最小化的最大链路利用率、流量矩阵中每条流的可用路径以及在可用路径上的最佳分流比;步骤205、当迭代次数等于预设次数,则将多次迭代运算中得到的最大链路利用率的最小值确定为该sr网络的最小化的最大链路利用率;当迭代次数小于预设次数,则执行下一次迭代运算,即返回步骤202。本实施例中,sr网络的网络拓扑可以包括sr网络中的节点集合v以及有向链路集合e。sr网络中的流量矩阵表示在一段时间内网络所必须处理的流量需求的集合;流量矩阵中共有l条流,所述流指唯一的源点与目的点对之间的聚合流量。任一链路的利用率等于经过该链路的流量与该链路的容量之比。sr网络的最大链路利用率为网络中所有链路的利用率中的最大值。需要说明的是,在首次迭代运算中,可以基于初始化的网络链路权重矩阵搜索新的网络链路权重矩阵。预设的重置比例可以为一个0至1之间的实数;sr节点的部署率也可以为一个0至1之间的实数;关于重置比例和sr节点的部署率可以通过实验确定较佳的取值。然而,本申请对此并不限定。在一示例性实施方式中,步骤202可以包括:通过弗洛伊德函数,计算出在之前搜索到的最优的网络链路权重矩阵下sr网络中任意两节点间的最短路;根据计算得到的最短路以及流量矩阵,计算每条链路的利用率;将sr网络中所有链路按照利用率从大到小的顺序进行排序;根据重置比例,将排序后的链路分成三个集合;分别调整三个集合中的链路的权重,确定本次搜索得到的网络链路权重矩阵。示例性地,将sr网络中的所有链路按照利用率从大到小的顺序排序之后,可以将利用率最大的|e|*percentage条链路,确定为第一集合;将利用率最小的|e|*percentage条链路,确定为第二集合;将其余链路确定为第三集合;其中,e为有向链路集合,percentage为重置比例。然后,分别对三个集合中的链路的权重进行调整。在一示例性实施方式中,分别调整三个集合中的链路的权重,可以包括:将第一集合中的链路的权重分别升高[0,x]间的一个随机整数值;将第二集合中的链路的权重分别降低[0,x]间的一个随机整数值;将第三集合中待重置权重的链路的权重按照均等概率随机升高[0,x]间的一个随机整数值,或者,降低[0,x]间的一个随机整数值;其中,x为正整数;第一集合中的链路的利用率大于第三集合中的链路的利用率,第三集合中的链路的利用率大于第二集合中的链路的利用率。在一示例性实施方式中,步骤203可以包括:通过弗洛伊德函数,计算出在本次搜索得到的网络链路权重矩阵下sr网络中任意两节点间的最短路;根据计算得到的最短路以及流量矩阵,计算每条链路的利用率;针对每个节点,计算以该节点为起点的链路的利用率的最大值,作为该节点的最大链路利用率;将该sr网络中的节点按照各自的最大链路利用率从大到小的顺序进行排序;按照节点的最大链路利用率从大到小的顺序,选择目标数目的节点加入sr节点集合,其中,目标数据大于或等于待部署sr节点总数,待部署sr节点总数根据sr网络的节点总数与sr节点的部署率确定。在本示例性实施方式中,根据节点的最大链路利用率来选择sr节点。其中,节点的最大链路利用率指以该节点为起点的链路中,链路的利用率的最大值。在一示例性实施方式中,步骤204可以包括:根据网络拓扑、流量矩阵、本次搜索得到的网络链路权重矩阵以及本次选择的sr节点集合,计算出流量矩阵中每条流的可用路径;构造线性规划问题,其中,目标为最小化sr网络的最大链路利用率,变量为每条流在可用路径上的分流比;求解线性规划问题,得到每条流在可用路径上的最佳分流比以及sr网络的最小化的最大链路利用率。在一示例性实施方式中,线性规划问题的限制条件可以包括:经过任一链路的所有流量小于或等于该链路的容量与该链路的最大链路利用率的乘积;任一条流在所有的可用路径上的流量之和大于或等于该条流的流量需求大小;任一条流在任一可用路径上的流量大于或等于0。在一示例性实施方式中,在步骤205之后,本实施例的流量工程方法还可以包括:采用得到该sr网络的最小化的最大链路利用率所对应的sr节点集合、流量矩阵中每条流的可用路径以及在可用路径上的最佳分流比,优化该sr网络。在本实施例中,在通过本实施例的流量工程方法得到sr网络的最小化的最大链路利用率之后,可以将得到该最大链路利用率所对应的每条流的可用路径以及在可用路径上的最佳分流比提供给sr网络中的交换机,由交换机存储相关的流量路径,以供后续的流量传输使用;而且,可以根据得到该最大链路利用率所对应的sr节点集合,在sr网络部署sr节点,从而提高网络资源利用率。下面以散点式部署的部分部署的sr网络为例对本实施例提供的流量工程方法进行说明。图3为散点式部署的部分部署的sr网络的示例图。在散点式部署的部分部署的sr网络中,只有部分节点支持sr协议,且支持sr协议的节点在网络中散点状分布,即支持sr协议的节点不一定构成原网络拓扑的联通子图。如图3所示,图中虚线框起来的节点为sr节点,即节点r2、r4、r6为sr节点,其余节点为普通节点。流量从节点r1出发,首先根据ospf协议走最短路进行路由;在到达节点r1和r7间最短路上的第一个sr节点(即节点r2)后,流量转为使用节点段的sr路由;流量依次经过sr节点r2、r4、r6,在段内根据igp协议路由且经过了传统节点r3、r5;在到达路径上的最后一个sr节点r6后,流量根据ospf协议路由到达目的节点r7。在本实施例中,整个网络可抽象为一个有向图g=(v,e),其中,v是节点集合,e是有向链路集合。网络中全部节点支持ospf协议,部分节点支持sr协议,支持sr协议的节点集合可以记为srn(即sr节点集合),且对c(e)代表链路e的容量,c(e)>0;ω(e)代表链路e的权重,ω(e)∈[1,216-1]且为整数。网络中的流量矩阵是已知的,其中,流量矩阵代表在一段时间内网络所必须处理的流量需求的集合。流量矩阵中共有l条流,这里的流指唯一的源点-目的点对之间的聚合流量。对任意流i,s(i)代表流i的源节点,t(i)代表流i的目的节点,d(i)代表流i的流量需求。对f(e)代表经过链路e的流量,则链路e的利用率util(e)=f(e)/c(e)。网络的最大链路利用率本实施例中的流量工程方法的优化目标为最小化网络的最大链路利用率。在本示例中,部分部署的sr网络的流量工程问题的形式化描述如下:minθ式(1)其中,w代表网络链路权重矩阵,指在网络链路权重矩阵为w时,流i在链路e上的流量,in(v)是终点为点v的链路集合,out(v)是起点为点v的链路集合。式(1)到式(5)是部分部署的sr网络的流量工程问题的线性规划形式描述。其中,θ为优化目标,w和为未知量,其余量为已知量(即可以根据网络拓扑和流量矩阵确定)。式(1)是流量工程问题的优化目标,最小化网络的最大链路利用率。式(2)是链路容量限制;其中,对于网络中的每条链路,所有流量需求i在链路e上的总流量应当不大于链路e的容量c(e)与最大链路利用率θ的乘积。式(3)是每个节点的流约束。其中,若节点v为流i的起点,则流入该节点的流量和流出该节点的流量的差值应为流量需求大小的相反数;若节点v为流i的终点,则流入该节点的流量和流出该节点的流量的差值应等于流量需求大小;其余情况流入点v的流量和流出点v的流量差值应为0。式(4)是非负性约束;其中,任何流量需求在任何路径上的流量大小,都应当是一个非负数。式(5)是链路权重限制,任何链路的权重都应在[1,216-1]的范围内且为整数。本实施例中,基于部分部署的sr网络的流量工程方法可以通过wa-srte(weightadjustment-segmentroutingtrafficengineering)算法实现,其中,wa-srte算法的伪代码如下:由上可知,算法wa-srte的输入为网络拓扑g和流量矩阵tm,输出为最小化的最大链路利用率θ。其中,在初始化过程中,初始化网络链路权重矩阵为w,然后将当前的网络链路权重矩阵和最优的网络链路权重矩阵都设为w;然后,使用弗洛伊德函数(即floyd()),计算出在初始的网络链路权重矩阵下网络中任意两点间的最短路(即route);然后,根据计算得到的最短路和已知的流量矩阵,得到当前的最大链路利用率,并将最优的最大链路利用率初始化为当前的最大链路利用率。此后,将不断迭代运算直至达到预设次数;其中,预设次数可以由用户预先设定,然而,本申请对此并不限定。在每次迭代中,先调用权重搜索算法search_for_weight,搜索得到新的网络链路权重矩阵;然后,根据当前的网络环境,调用sr节点选择算法choose_sr_nodes选择出sr节点集合(即srn),此时网络链路权重矩阵和sr节点的部署位置都已经确定;然后,调用线性规划优化算法optimize_for_sr得到在当前部署条件下的网络的最大链路利用率;若当前的最大链路利用率优于最优的最大链路利用率,则更新最大链路利用率和网络链路权重矩阵的最优值。最后得到最终的最大链路利用率的最优解θ。下面分别对链路权重搜索算法search_for_weight、sr节点选择算法choose_sr_nodes以及线性规划优化算法optimize_for_sr进行进一步说明。本实施例中,链路权重搜索算法search_for_weight的伪代码如下:由上可知,链路权重搜索算法search_for_weight的输入为网络拓扑g、当前最优的网络链路权重矩阵best_w和重置比例percentage,输出为当前搜索得到的新的网络链路权重矩阵curr_w。本示例中,percentage可以是一个0到1之间的实数,实验表明percentage的值设为0.1较为合适。其中,在初始化过程中,初始化新的网络链路权重矩阵curr_w,将它的值赋为当前的最优的网络链路权重矩阵best_w;然后,使用弗洛伊德函数,计算出在当前的网络链路权重矩阵下网络任意两点间的最短路(即route);然后,根据计算得到的最短路和已知的流量矩阵,得到当前每条链路的利用率;然后,对网络中的所有链路,按照链路的利用率从大到小的顺序对链路进行排序,并把所有链路分成以下三个集合:链路利用率最大的|e|*percentage条链路,分为第一集合e_max;链路利用率最小的|e|*percentage条链路,分为第二集合e_min;其余|e|*(1–2*percentage)条链路,分为第三集合e_mid。此后对三个集合中的链路的权重分别进行调整。其中,将第一集合e_max中的链路的权重,分别升高[0,x]间的一个随机整数值;将第二集合e_min中的链路的权重,分别降低[0,x]间的一个随机整数值;其中,在算法实现过程中,实验表明x的值设为2较为合适。对于第三集合e_mid中的链路,通过判断[0,1]间的随机实数值是否小于percentage的方式,控制第三集合中的链路权重的重置概率约为percentage,并将第三集合中需要重置权重的链路的权重按均等概率随机升高或降低[0,x]间的一个随机整数值。通过上述操作,可以得到新的网络链路权重矩阵curr_w。本示例中,在得到新的网络链路权重矩阵之后,设置有剪枝操作,即假如得到的新的网络链路权重矩阵curr_w的哈希值未在哈希表中出现过,则返回curr_w,否则返回空(null)。需要说明的是,若剪枝操作返回为null,则需要按照上述方式重新搜索新的网络链路权重矩阵,直至得到能够返回的curr_w。本实施例中,根据节点的最大链路利用率来选择sr节点。其中,任一节点的最大链路利用率指以该节点为起点的链路中,链路利用率的最大值。任一节点的最大链路利用率的计算式如下所示:图4为节点的最大链路利用率的计算示例图。图中链路容量均为10。网络中有三条流d1、d2、d3,d1的路径为a-d-f-e,d2的路径为a-d-f-h,d3的路径为a-d-g。三条流的流量需求均为6。则链路a-d的负载为18,链路d-f的负载为12,链路f-e、f-h、d-g的负载均为6。如图4所示,假设此时要计算节点d的最大链路利用率,以节点d为起点的链路有d-f、d-g两条,这两条链路的利用率分别为1.2和0.6,则节点d的最大链路利用率maxu(d)=max{util(d–f),util(d–g)}=1.2。本实施例中,sr节点选择算法choose_sr_nodes的伪代码如下:由上可知,sr节点选择算法choose_sr_nodes的输入为网络拓扑g、当前搜索到的网络链路权重矩阵curr_w、流量矩阵tm和sr节点的部署率sr_percentage,其中,sr_percentage可以是一个0到1之间的实数,实验表明sr_percentage可以设为0.3;输出为sr节点集合srn。其中,在初始化过程中,将srn初始化为空集,并将集合中节点的数目sr_num赋值为0。然后,枚举网络中的每一个节点,将任一节点的中介中心性初始化为0;然后,调用弗洛伊德函数,根据当前搜到的网络链路权重矩阵,计算得到网络任意两个节点间的最短路(即route);然后,调用get_util函数,计算得到网络中每条链路的利用率。枚举网络中的每个节点,计算以该节点为起点的链路利用率的最大值,就得到了网络中所有节点的最大链路利用率;然后,将网络中的节点按照最大链路利用率从大到小排序,并优先选择最大链路利用率大的节点部署为sr节点;分别枚举集合v中的每一个节点,将它加入到srn中,直到srn中的节点数目大于或等于待部署的sr节点总数;最终返回最后的srn。其中,待部署的sr节点总数等于sr节点的部署率与网络中节点总数的乘积。图5为本实施例中的线性规划优化算法的阶段示意图。本实施例中,线性规划优化算法主要分为三个阶段,如图5所示,第一个阶段是预处理阶段,此阶段会预先计算出每条流所有的可用路径;第二个阶段是线性规划问题的构造阶段,此阶段会构造对应的sr-te线性规划问题;第三个阶段是求解阶段,其中可以使用求解软件cplex对问题进行求解。下面对这三个阶段分别进行说明。本实施例中,预处理阶段的主要工作是计算出每条流量需求所有的可用路径。其中,流量从源节点首先根据ospf协议走最短路进行路由,在到达源点-目的节点最短路上的一个sr点后,可能会使用sr路由,流量到达路径上的最后一个sr点后,会从sr路由转为ospf路由到达目的节点。如表1所示,一条流量所有可用的子路径可以分为以下三类:第一类是流的源节点到源节点-目的节点最短路上sr点之间的最短路,这类子路径对应的是路由方式的第一阶段;流量从这类子路径出发,路由方式为传统ip路由,在经过这类子路径后,流量就到达了第一个sr节点,路由方式从传统ip路由转为sr路由;第二类是网络中任意两个sr节点之间的最短路;其中,流量在到达第一个sr节点之后,就会通过这类子路径实现“绕路”,从而达到网络流量工程的目标,在这类子路径上,流量的路由方式是使用节点段的sr路由;第三类是网络中任意sr节点(或源节点)到目的节点的最短路;其中,流量从路径上的最后一个sr节点离开后,路由方式转为传统ip路由,通过这类子路径到达目的节点。此处源节点到目的节点的最短路也可为一条可用子路径,使用此子路径则说明流量在整个过程中没有使用sr节点进行路由,直接使用了ospf协议路由从源节点走最短路到达了目的节点。表1、一条流量的可用子路径图6为本实施例中的子路径的一个计算示例图。图6中共有a到h八个节点,其中,sr节点为节点b、d、g,其余节点为普通节点。节点之间的链路用直线表示,线上的数字代表链路权重。流量需求为a到h,a到h的最短路为a–b–c–d–e–h,此路径上的sr节点为b和d,则流量所有的可用子路径如表2所示。表2、子路径计算结果在得到了一个流量需求所有可用的子路径以后,就可以把目的节点、源节点相同的两条子路径依次连接起来,得到它的所有可用路径。考虑到目前的商用路由器,一般会对一条路径使用的节点段数目进行限制,在构成可用路径时,也可以限制一条可用路径使用的节点段(即第二类子路径)的数目不超过k。表3是可用路径的计算结果。其中,在计算过程中,限制了一条路径使用的节点段数目最大为2。第二列为可用路径所对应的子路径序列,其中加粗的子路径为sr中的节点段。第三列为子路径序列所对应的图6中节点a到节点h的实际路径。图7为本实施例中的可用路径的示例图。图7中标出了四条可用路径(p1采用点双划线表示,p2采用点表示,p3采用点划线表示,p4采用虚线表示),其中,p4为按照ospf路由得到的最短路,p1、p2、p3都是加入了sr路由后,得到的“绕路”路径。表3、可用路径的计算结果图7中a到h所有路径子路径序列实际路径a–b–d–g–h(a,b)(b,d)(d,g)(g,h)a–b–c–d–g–ha–b–g–d–h(a,b)(b,g)(g,d)(g,h)a–b–f–g–d–e–ha–b–g–h(a,b)(b,g)(g,h)a–b–f–g–ha–h(a,h)a–b–c–d–e–hsr有以下特性:可以为一个流量需求定义多个段列表(即多条路径),源节点会按照一个预先配置好的分流比,将流量在定义的多条路径上分流传输。本实施例利用sr的这个特性,将流量在预先计算好的多条路径上进行分流,从而达到缓解网络拥塞的目标。例如在图7所示的例子中,假设流量需求为1,每条链路的容量也为1,若流量不进行分流,只在路径p4上路由,那么链路a–b、b–c、c–d、d–e、e–h的利用率都为100%;若流量在四条链路上均匀分流,则p1、p2、p3、p4分别承担0.25的流量,网络中所有链路的利用率都为50%,网络的最大链路利用率下降了一半,拥塞程度大大缓解。通过上述预处理过程,已经得到了每条流所有的可用路径。本实施例针对流量在这些路径上,按照怎样的比例分流才能得到最低的最大链路利用率的问题,构造了如式(6)到式(9)所示的线性规划问题。minθ式(6)其中,网络拓扑g=(v,e),v为网络的节点集合,e为网络的有向链路集合;θ为网络的最大链路利用率;c(e)为链路e的容量;l为流量需求的数目;di为第i条流的流量需求大小;pi为第i条流的可用路径集合;p为一条可用路径;fi(p)为第i条流在可用路径p上的流量大小;sp为构成可用路径p的子路径集合;s为一条子路径;is,e∈{0,1},is,e=0说明子路径s包含链路e,is,e=1说明子路径s不包含链路e。式(6)是线性规划问题的优化目标,即最小化网络的最大链路利用率。式(7)是链路容量限制;其中,对于网络中的每条链路,枚举所有流量需求i,枚举该流量需求的所有可用路径p,并枚举该可用路径的所有子路径s,若该子路径包含链路e,则在求和值上加上流量需求i在路径p上的流量。通过这样的操作,就得到了在链路e上的所有流量,这个求和值应当不大于链路e的容量c(e)与最大链路利用率θ的乘积。式(8)是链路的流量需求限制。对于每条流i,枚举它的所有路径p,流量需求i在它所有可用路径上的流量之和,应当不小于流量需求大小di。式(9)是非负性约束,任何流量需求在任何路径上的流量大小,都应当是一个非负数。在上述问题中,θ为优化目标,fi(p)为变量,其余量都为已知量(可以通过数据获取或在预处理阶段计算得到)。该问题的优化目标是线性的,所有约束条件也为线性,所以该问题是一个线性规划问题,且所有变量连续取值。此问题在多项式时间内是可解的。本实施例中,针对上述线性规划问题,可以采用比如内点法、单纯形法、拉格朗日松弛法、原始对偶法等等方式进行求解。示例性地,可以直接使用数学优化问题求解器cplex及其c++编程接口进行求解。在一应用示例中,分别获取以下三个网络拓扑:abilene(americaresearchandeducationnetwork,美国科研教育网)、cernet(chinaeducationandresearchnetwork,中国教育和科研网)、geant(europeresearchandeducationnetwork,欧洲科研教育网)。其中,网络拓扑的链路容量已知,链路权重初始化为1。三个网络拓扑的信息可以参见表4。表4、网络拓扑的信息拓扑#节点#链路abilene1230cernet1432geant2374在本应用示例中,分别选取了三个网络拓扑在24小时的流量矩阵的数据,对每个网络拓扑得到了288或96个流量矩阵。为更直观的体现算法效果,本示例将流量矩阵的数值进行了标准化,将它们的数值等比例放大或缩小,达到优化前网络的最大链路利用率在100%。其中,流量矩阵的信息可以参见表5。表5、流量矩阵的信息拓扑测量间隔(分钟)#流量矩阵abilene5288cernet5288geant1596图8为本应用示例的效果图。其中,图8(a)为在abilene上的效果图;图8(b)为在cernet上的效果图;图8(c)为在geant上的效果图。在本应用示例中,网络链路权重矩阵的搜索迭代次数设置为1000次,段数目限制k为1。图8中的横轴为sr节点的部署率,纵轴为在当前部署率下288(或96)个流量矩阵的最大链路利用率的平均值。从图8可以看到仅部署30%的sr节点就可以取得和全sr网络十分接近的流量工程优化效果。在三个网络拓扑上,最大链路利用率分别从100%下降到80%、55%和40%左右。图9为本申请实施例提供的基于部分部署的sr网络的流量工程装置的示意图。如图9所示,本实施例提供的流量工程装置包括:获取模块901和处理模块902;其中,处理模块902包括:网络链路权重矩阵搜索单元9021、sr节点集合选择单元9022、线性规划优化单元9023以及迭代判断单元9024。其中,获取模块901,适于获取sr网络的网络拓扑以及流量矩阵;处理模块902,适于通过多次迭代运算,确定该sr网络的最小化的最大链路利用率。其中,网络链路权重矩阵搜索单元9021,适于在每次迭代运算中进行以下处理:根据网络拓扑、之前搜索到的最优的网络链路权重矩阵以及预设的重置比例,确定本次搜索得到的网络链路权重矩阵;sr节点集合选择单元9022,适于在每次迭代运算中进行以下处理:根据网络拓扑、流量矩阵、本次搜索得到的网络链路权重矩阵以及分段路由节点的部署率,确定本次选择的分段路由节点集合;线性规划优化单元9023,适于在每次迭代运算中进行以下处理:根据网络拓扑、流量矩阵、本次搜索得到的网络链路权重矩阵以及本次选择的分段路由节点集合,确定本次运算中sr网络的最小化的最大链路利用率、流量矩阵中每条流的可用路径以及在可用路径上的最佳分流比;迭代判断单元9024,适于当迭代次数等于预设次数,则将多次迭代运算中得到的最大链路利用率的最小值确定为该sr网络的最小化的最大链路利用率;当迭代次数小于预设次数,则通知网络链路权重矩阵搜索单元9021、sr节点集合选择单元9022以及线性规划优化单元9023执行下一次迭代运算。在一示例性实施方式中,网络链路权重矩阵搜索单元9021,适于通过以下方式根据网络拓扑、之前搜索到的最优的网络链路权重矩阵以及预设的重置比例,确定本次搜索得到的网络链路权重矩阵:通过弗洛伊德函数,计算出在之前搜索到的最优的网络链路权重矩阵下sr网络中任意两节点间的最短路;根据计算得到的最短路以及所述流量矩阵,计算每条链路的利用率;将sr网络中的链路按照利用率从大到小的顺序进行排序;根据重置比例,将排序后的链路分成三个集合;分别调整三个集合中的链路的权重,确定本次搜索得到的网络链路权重矩阵。在一示例性实施方式中,sr节点集合选择单元9022,适于通过以下方式根据网络拓扑、流量矩阵、本次搜索得到的网络链路权重矩阵以及分段路由节点的部署率,确定本次选择的sr节点集合:通过弗洛伊德函数,计算出在本次搜索得到的网络链路权重矩阵下sr网络中任意两节点间的最短路;根据计算得到的最短路以及流量矩阵,计算每条链路的利用率;针对每个节点,计算以该节点为起点的链路的利用率的最大值,作为该节点的最大链路利用率;将sr网络中的节点按照各自的最大链路利用率从大到小的顺序进行排序;按照节点的最大链路利用率从大到小的顺序,选择目标数目的节点加入sr节点集合,其中,目标数据大于或等于待部署sr节点总数,待部署sr节点总数根据sr网络的节点总数与sr节点的部署率确定。在一示例性实施方式中,线性规划优化单元9023,适于通过以下方式根据网络拓扑、流量矩阵、本次搜索得到的网络链路权重矩阵以及本次选择的分段路由节点集合,确定本次运算中sr网络的最小化的最大链路利用率、流量矩阵中每条流的可用路径以及在可用路径上的最佳分流比:根据网络拓扑、流量矩阵、本次搜索得到的网络链路权重矩阵以及本次选择的分段路由节点集合,计算出流量矩阵中每条流的可用路径;构造线性规划问题,其中,目标为最小化sr网络的最大链路利用率,变量为每条流在可用路径上的分流比;求解线性规划问题,得到每条流在可用路径上的最佳分流比以及sr网络的最小化的最大链路利用率。关于本实施例提供的流量工程装置的相关说明可以参照上述方法实施例的描述,故于此不再赘述。图10为本申请实施例提供的终端的示意图。如图10所示,本申请实施例提供一种终端1000,包括:存储器1001和处理器1002,存储器1001适于存储基于部分部署的sr网络的流量工程程序,该流量工程程序被处理器1002执行时实现上述实施例提供的基于部分部署的sr网络的流量工程方法的步骤,比如图2所示的步骤。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的示意图,并不构成对本申请方案所应用于其上的终端1000的限定,终端1000可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,处理器1002可以包括但不限于微处理器(mcu,microcontrollerunit)或可编程逻辑器件(fpga,fieldprogrammablegatearray)等的处理装置。存储器1001可用于存储应用软件的软件程序以及模块,如本实施例中的流量工程方法对应的程序指令或模块,处理器1002通过运行存储在存储器1001内的软件程序以及模块,从而执行各种功能应用以及数据处理,比如实现本实施例提供的流量工程方法。存储器1001可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些示例中,存储器1001可包括相对于处理器1002远程设置的存储器,这些远程存储器可以通过网络连接至终端1000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。此外,本申请实施例还提供一种计算机可读介质,存储有基于部分部署的sr网络的流量工程程序,该流量工程程序被处理器执行时实现上述实施例提供的流量工程方法的步骤,比如,图2所示的步骤。本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。以上显示和描述了本申请的基本原理和主要特征和本申请的优点。本申请不受上述实施例的限制,上述实施例和说明书中描述的只是说明本申请的原理,在不脱离本申请精神和范围的前提下,本申请还会有各种变化和改进,这些变化和改进都落入要求保护的本申请范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1