java dijkstra算法 指定源宿_一种路径计算的方法和装置与流程

db88c573558f58f1d3056aa04bac41c6.gif

本发明涉及网络通信技术,尤其涉及一种路径计算的方法和装置。

背景技术:

随着软件定义网络(Software Defined Network,SDN)、网络功能虚拟化(Network Function Virtualization,NFV)等新技术的出现,集中控制的应用越来越广。

集中控制要求集中控制器对全网资源有很强的调度处理能力,特别是当网络发生故障时,需要集中控制器给出快速的响应,尽量多地恢复受损的业务。现有技术中,当网络发生故障时,集中控制器仍沿用分布式的约束最短路径优先(Constrained Shorest Path Tree,CSPF)路径计算方法,为每个受故障影响的业务单独算路。在网络利用率较高、网络资源比较紧张的情况下,这种CSPF路径计算方法容易造成资源竞争,导致算路失败,算路成功率低。

技术实现要素:

本发明的实施例提供了一种路径计算的方法和装置,解决现有路径计算不能有效利用全网资源、算路成功率低的问题。

本发明的实施例采用如下技术方案:

本发明第一方面提供了一种路径计算的方法,包括:

检测到网络发生故障后,确定所有受故障影响的业务;

获取每个所述受故障影响的业务的源宿节点之间的最大流在所述网络中每条链路上分摊的流量;

获取所述每条链路的代价值,其中,任一链路的代价值为所述任一链路的流量和除以所述任一链路的剩余带宽的结果的向上取整值,所述任一链路的流量和为所有所述受故障影响的业务的源宿节点之间的最大流在所述任一链路上分摊的流量之和;

根据所述每条链路的代价值为所述受故障影响的业务计算满足带宽需求的最短路径。

在第一种可能的实现方式中,所述检测到网络发生故障之前,所述方法还包括:

根据所述网络中链路的剩余带宽计算所述网络中每个业务的源宿节点之间的最大流,确定所述每个业务的源宿节点之间的最大流在所述每条链路上分摊的流量。

结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述确定所述每个业务的源宿节点之间的最大流在所述每条链路上分摊的流量,具体包括:

如果任一业务的源宿节点之间承载最大流的链路不唯一,将所述任一业务的源宿节点之间的最大流分配在承载最大流的多条链路上;计算所述任一业务的源宿节点之间的最大流在所述每条链路上分摊的流量。

结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述将所述任一业务的源宿节点之间的最大流分配在承载最大流的多条链路上,具体包括:

将所述任一业务的源宿节点之间的最大流分配在承载最大流的多条链路中剩余带宽最少的链路上。

结合第一方面的第一种可能的实现方式、第二种可能的实现方式或第三种可能的实现方式,在第四种可能的实现方式中,所述检测到网络发生故障之前,所述方法还包括:

如果所述网络中链路的剩余带宽发生变化,重新计算所述每个业务的源宿节点之间的最大流。

本发明第二方面提供了一种路径计算的装置,包括:

业务确定单元,用于检测到网络发生故障后,确定所有受故障影响的业务;

获取单元,用于获取所述业务确定单元确定的每个所述受故障影响的业务的源宿节点之间的最大流在所述网络中每条链路上分摊的流量;获取所述每条链路的代价值,其中,任一链路的代价值为所述任一链路的流量和除以所述任一链路的剩余带宽的结果的向上取整值;所述任一链路的流量和为所有所述受故障影响的业务的源宿节点之间的最大流在所述任一链路上分摊的流量之和;

路径计算单元,根据所述获取单元获取的所述每条链路的代价值为所述受故障影响的业务计算满足带宽需求的最短路径。

在第一种可能的实现方式中,所述装置还包括:

最大流计算单元,用于所述业务确定单元检测到网络发生故障之前,根据所述网络中链路的剩余带宽计算所述网络中每个业务的源宿节点之间的最大流;

流量确定单元,用于确定所述最大流计算单元计算得到的所述每个业务的源宿节点之间的最大流在所述每条链路上分摊的流量。

结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述流量确定单元具体用于,如果任一业务的源宿节点之间承载最大流的链路不唯一,将所述任一业务的源宿节点之间的最大流分配在承载最大流的多条链路上;计算所述任一业务的源宿节点之间的最大流在所述每条链路上分摊的流量。

结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述流量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值