CN108965141B - 一种多路径路由树的计算方法及装置 - Google Patents
一种多路径路由树的计算方法及装置 Download PDFInfo
- Publication number
- CN108965141B CN108965141B CN201811089953.4A CN201811089953A CN108965141B CN 108965141 B CN108965141 B CN 108965141B CN 201811089953 A CN201811089953 A CN 201811089953A CN 108965141 B CN108965141 B CN 108965141B
- Authority
- CN
- China
- Prior art keywords
- routing tree
- node
- pruning
- path
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种多路径路由树的计算方法及装置,包括:从预存的链路状态数据库获取目标设备所在的通信网络的网络拓扑图;以网络拓扑图为依据通过广度优先遍历算法构建初始路由树;通过预设的剪枝规则对初始路由树进行剪枝处理得到剪枝路由树,并以网络拓扑图为依据在剪枝路由树的基础上构建下一级路由树得到二次路由树;判断在构建下一路由树得到二次路由树的过程中是否有新增节点加入;如果没有,将初次剪枝路由树确定为期望的多路径路由树并存储多路径路由树。实施该多路径路由树的计算方法及装置,能够计算出到达目的节点的多条路径,进而有效避免因网络局部节点或通信网络使用高峰导致网络拥塞、报文丢包率增加等问题,进而提升通信服务质量。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种多路径路由树的计算方法及装置。
背景技术
现有的网络路由的路径计算方法常采用单播路由协议进行路由路径的计算。具体地,按照预先约定的规则(如最小跳步树、最低代价等)计算从源节点到达目的节点的一条最短路径。然而,在实践中发现,采用单播路由协议只能计算出从源节点到达目的节点的一条最短路径,在通信网络使用高峰期容易出现网络拥塞、报文丢包率增加等问题,同时当该最短路径上发生网络局部节点故障时,进而会导致从源节点到达目的节点的通信中断。
发明内容
鉴于上述问题,本发明提供了一种多路径路由树的计算方法及装置,能够计算出到达目的节点的多条路径,进而有效避免因网络局部节点或通信网络使用高峰导致网络拥塞、报文丢包率增加等问题,进而提升通信服务质量。
为了实现上述目的,本发明采用如下的技术方案:
本发明第一方面公开了一种多路径路由树的计算方法,包括:
从预存的链路状态数据库获取目标设备所在的通信网络的网络拓扑图,所述网络拓扑图包括一个源节点和多个目的节点,所述源节点为所述目标设备在所述通信网络中的网络节点,所述目的节点为所述通信网络中不同于所述源节点的其它网络节点;
以所述网络拓扑图为依据,通过广度优先遍历算法构建初始路由树,其中所述初始路由树的根节点为所述源节点;
通过预设的剪枝规则对所述初始路由树进行剪枝处理得到剪枝路由树,并以所述网络拓扑图为依据在所述剪枝路由树的基础上构建下一级路由树,得到二次路由树,所述二次路由树的深度大于所述剪枝路由树的深度;
判断在构建下一路由树得到所述二次路由树的过程中时是否有新增节点加入;
如果在构建下一路由树得到所述二次路由树的过程中时没有所述新增节点加入,将所述剪枝路由树确定为期望的多路径路由树并存储所述多路径路由树,所述多路径路由树包括从所述源节点到每个所述目的节点的至少一条路由路径。
作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
如果在构建下一路由树得到所述二次路由树的过程中时有所述新增节点加入,将所述初始路由树的信息更新为所述二次路由树的信息并执行所述的通过预设的剪枝规则对所述初始路由树进行剪枝处理得到剪枝路由树,并以所述网络拓扑图为依据在所述剪枝路由树的基础上构建下一级路由树,得到二次路由树的步骤。
作为一种可选的实施方式,在本发明第一方面中,所述剪枝规则包括第一剪枝规则和第二剪枝规则;
所述通过预设的剪枝规则对所述初始路由树进行剪枝处理得到所述剪枝路由树,包括:
遍历所述初始路由树的所有叶节点,通过预设的所述第一剪枝规则对所述初始路由树中多次出现的节点进行删除处理,得到初次剪枝路由树;
遍历所述初次剪枝路由树的所有叶节点,通过预设的所述第二剪枝规则对所述初次剪枝路由树进行环路去除处理,得到剪枝路由树。
作为一种可选的实施方式,在本发明第一方面中,所述第一剪枝规则包括:
将所述初始路由树中的一个叶节点作为第一目标叶节点,并将从所述路由树的根节点到所述第一目标叶节点的一条路径作为第一处理路径;
判断是否存在从所述路由树的根节点到所述第一目标叶节点且包含有与所述第一处理路径的中间节点重复的节点的第二处理路径;
如果存在所述第二处理路径,在所述初始路由树中将所述第一处理路径和所述第二处理路径中路径开销值最大的路径进行删除处理。
作为一种可选的实施方式,在本发明第一方面中,所述第二剪枝规则包括:
将所述初次剪枝路由树中的一个叶节点作为第二目标叶节点,并将从所述路由树的根节点到所述第二目标叶节点的一条路径作为第三处理路径;
判断是否存在从所述路由树的根节点到所述第二目标叶节点的第四处理路径;
如果存在所述第四处理路径,判断所述第二目标叶节点是否满足第一预设条件和/或第二预设条件;
如果满足所述第一预设条件和所述第二预设条件中的至少一个,在所述初次剪枝路由树中对所述第三处理路径和所述第四处理路径中路径开销值最大的路径进行删除处理;
所述第一预设条件为:cost(P1)+firstcost(P2)<cost(P2)-firstcost(P2);
所述第二预设条件为:cost(P2)-firstcost(P2)>cost(P1);
其中,P1表示从所述初次剪枝路由树的根节点到所述第二目标叶节点的第三处理路径;P2表示从所述初次剪枝路由树的根节点到所述第二目标叶节点的第四处理路径,cost(P1)表示所述第三处理路径的路径开销值,cost(P2)表示所述第四处理路径的路径开销值,firstcost(P2)表示在所述第三处理路径上从所述初次剪枝路由树的根节点到下一跳节点的路径开销值。
本发明第二方面公开一种多路径路由树的计算装置,包括:
获取模块,用于从预存的链路状态数据库获取目标设备所在的通信网络的网络拓扑图,所述网络拓扑图包括一个源节点和多个目的节点,所述源节点为所述目标设备在所述通信网络中的网络节点,所述目的节点为所述通信网络中不同于所述源节点的其它网络节点;
构建模块,用于以所述网络拓扑图为依据,通过广度优先遍历算法构建初始路由树,其中所述初始路由树的根节点为所述源节点;
剪枝处理模块,用于通过预设的剪枝规则对所述初始路由树进行剪枝处理得到剪枝路由树;
所述构建模块,还用于以所述网络拓扑图为依据在所述剪枝路由树的基础上构建下一级路由树,得到二次路由树,所述二次路由树的深度大于所述剪枝路由树的深度;
判断模块,用于判断在构建下一路由树得到所述二次路由树的过程中时是否有新增节点加入;
存储模块,用于在判断出构建下一路由树得到所述二次路由树的过程中时没有所述新增节点加入时,将所述剪枝路由树确定为期望的所述多路径路由树并存储所述多路径路由树,所述多路径路由树包括从所述源节点到每个所述目的节点的至少一条路由路径。
作为一种可选的实施方式,在本发明第二方面中,所述判断模块,还用于在判断出在构建下一路由树得到所述二次路由树的过程中时有所述新增节点加入时,将所述初始路由树的信息更新为所述二次路由树的信息,并触发所述剪枝处理模块执行所述的通过预设的剪枝规则对所述初始路由树进行剪枝处理得到剪枝路由树。
作为一种可选的实施方式,在本发明第二方面中,所述剪枝规则包括第一剪枝规则和第二剪枝规则;
所述剪枝处理模块包括:
第一子模块,用于遍历所述初始路由树的所有叶节点,通过预设的所述第一剪枝规则对所述初始路由树中多次出现的节点进行删除处理,得到初次剪枝路由树;
第二子模块,用于遍历所述初次剪枝路由树的所有叶节点,通过预设的所述第二剪枝规则对所述初次剪枝路由树进行环路去除处理,得到剪枝路由树。
本发明第三方面公开一种计算机设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述计算机设备执行第一方面公开的部分或者全部所述的多路径路由树的计算方法。
本发明第四方面公开一种计算机可读存储介质,其存储有第三方面所述的计算机设备中所使用的所述计算机程序。
根据本发明提供的多路径路由树的计算方法及装置,以通信网络中的一个网络设备所在的网络节点为源节点,以该通信网络中除源节点之外的其它一个网络节点为目的节点,在计算源节点到每个目的节点的多路径路由树时,先从预存的链路状态数据库获取该通信网络的网络拓扑图,然后通过广度优先遍历算法构建初始路由树;进一步地,通过预设的剪枝规则对初始路由树进行剪枝处理得到剪枝路由树,再在该剪枝路由树的基础上构建下一级路由树,得到二次路由树,并判断在构建下一路由树得到二次路由树的过程中是否有新增节点加入;如果没有,将初次剪枝路由树确定为期望的多路径路由树并存储多路径路由树。其中,所得到的多路径路由树包括从源节点到每个目的节点的至少一条路由路径,能够有效避免因网络局部节点或通信网络使用高峰导致网络拥塞、报文丢包率增加等问题,进而提升通信服务质量。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明范围的限定。
图1是本发明实施例一提供的一种多路径路由树的计算方法的流程示意图;
图2是本发明实施例二提供的一种多路径路由树的计算方法的流程示意图;
图3是本发明实施例三提供的一种多路径路由树的计算装置的结构示意图;
图4是本发明实施例一提供的一种网络拓扑图的结构示意图;
图5是本发明实施例二提供的根据图4所示的网络拓扑图构建出的初始路由树的示意图;
图6是本发明实施例二提供的在图5所示的初始路由树的基础上构建出的二次路由树的示意图;
图7是本发明实施例二提供的对图6所示的二次路由树进行剪枝处理得到的剪枝路由树的示意图;
图8是本发明实施例二提供的在图7所示的剪枝路由树的基础上构建出的二次路由树的示意图;
图9是本发明实施例二提供的对图8所示的二次路由树进行剪枝处理得到的新的剪枝路由树的示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有技术中的问题,本发明提供了一种多路径路由树的计算方法及装置;以通信网络中的一个网络设备所在的网络节点为源节点,以该通信网络中除源节点之外的其它一个网络节点为目的节点,在计算源节点到每个目的节点的多路径路由树时,先从预存的链路状态数据库获取该通信网络的网络拓扑图,然后通过广度优先遍历算法构建初始路由树;进一步地,通过预设的剪枝规则对初始路由树进行剪枝处理得到剪枝路由树,再在该剪枝路由树的基础上构建下一级路由树,得到二次路由树,并判断在构建下一路由树得到二次路由树的过程中是否有新增节点加入;如果没有,将初次剪枝路由树确定为期望的多路径路由树并存储多路径路由树。其中,所得到的多路径路由树包括从源节点到每个目的节点的至少一条路由路径,能够有效避免因网络局部节点或通信网络使用高峰导致网络拥塞、报文丢包率增加等问题,进而提升通信服务质量。并且,该技术可以采用相关的软件或硬件实现,下面通过实施例进行描述。
实施例1
请参阅图1,图1是本发明实施例提供的一种多路径路由树的计算方法的流程示意图。其中,如图1所示,该多路径路由树的计算方法可以包括以下步骤:
S101、从预存的链路状态数据库获取目标设备所在的通信网络的网络拓扑图。
本实施例中,链路状态数据库可以为LSD链路状态数据库,是用于用于交换路由信息的数据库。
本实施例中,网络拓扑图包括一个源节点和多个目的节点,源节点为目标设备在通信网络中的网络节点,目的节点为通信网络中不同于源节点的其它网络节点。
本实施例中,网络拓扑图又称为网络拓扑结构,是一种用传输媒体互连各种设备的物理布局,能够展示网络设备之间的相互连接布局。它的结构主要有星型结构、环型结构、总线结构、分布式结构、树型结构、网状结构、蜂窝状结构等,对此本实施例不作限定。
本实施例中,请参阅图4,图4是本发明实施例一提供的一种网络拓扑图的结构示意图。如图4所示目标设备所在的通信网络X的网络拓扑图。其中,A为目标设备在通信网络X中的网络节点标识,B、C、D、E、F为通信网络X其他通信设备的网络节点标识。则该网络拓扑包括一个源节点A和多个目的节点B、C、D、E、F。
本实施例中,图4所示的网络拓扑图还可以包括各个节点与节点之间的路径开销值,对此本实施例不作限定。
S102、以网络拓扑图为依据,通过广度优先遍历算法构建初始路由树。
本实施例中,树即为树状图,是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。树的每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树,没有子节点的节点为树的叶节点。
本实施例中,定义一棵树的根结点的层次为1,其他节点的层次是其父结点层次加1,因此,一棵树中所有结点的层次的最大值为这棵树的深度。
本实施例中,初始路由树的根节点为源节点,该初始路由树的深度为1。
本实施例中,广度优先遍历算法一种遍历策略,采用广度优先遍历算法对图4所示的网络拓扑图进行遍历的步骤为:
步骤1,先访问图4所示的网络拓扑图中的源节点A;
步骤2,从源节点A出发,访问源节点A的各个未曾访问的邻节点B、邻节点C、邻节点D、邻节点E;然后依次从邻节点B、邻节点C、邻节点D、邻节点E出发访问各自未被访问的邻节点;
步骤3,重复上述步骤2,直到图4所示的网络拓扑图中的所有节点都被访问为止。
S103、通过预设的剪枝规则对初始路由树进行剪枝处理得到剪枝路由树,并以网络拓扑图为依据在剪枝路由树的基础上构建下一级路由树,得到二级路由树,其中,该二次路由树的深度大于剪枝路由树的深度。
本实施例中,通过预设的剪枝规则对初始路由树进行剪枝处理,能够去除初始路由树中的环路路径和相交路径,因此,所得到的剪枝路由树不包括环路路径和相交路径。
S104、判断在构建下一路由树得到二次路由树的过程中是否有新增节点加入,如果是,执行步骤S105和步骤S103~步骤S104;如果否,执行步骤S106。
作为一种可选的实施方式,当判断在构建下一路由树得到二次路由树的过程中有新增节点加入时,还可以包括以下步骤:
S105、将初始路由树的信息更新为二次路由树的信息,并执行步骤S103~步骤S104。
S106、将初次剪枝路由树确定为期望的多路径路由树并存储多路径路由树,该多路径路由树包括从源节点到每个目的节点的至少一条路由路径。
在图1所描述的多路径路由树的计算方法中,以通信网络中的一个网络设备所在的网络节点为源节点,以该通信网络中除源节点之外的其它一个网络节点为目的节点,则该通信网络包括一个源节点和多个目的节点。在计算源节点到每个目的节点的多路径路由树时,先从预存的链路状态数据库获取该通信网络的网络拓扑图,然后以该网络拓扑图为依据、以该源节点为根节点通过广度优先遍历算法构建初始路由树;进一步地,通过预设的剪枝规则对初始路由树进行剪枝处理得到剪枝路由树,再以网络拓扑图为依据在该剪枝路由树的基础上构建下一级路由树,得到二次路由树,并判断在构建下一路由树得到二次路由树的过程中是否有新增节点加入;如果没有,将初次剪枝路由树确定为期望的多路径路由树并存储多路径路由树。可见,实施图1所描述的多路径路由树的计算方法,所得到的多路径路由树包括源节点到每个目的节点的至少一条路径,能够有效避免因网络局部节点或通信网络使用高峰导致网络拥塞、报文丢包率增加等问题,进而提升通信服务质量。
实施例2
请参阅图2,图2是本发明实施例提供的一种多路径路由树的计算方法的流程示意图。其中,如图2所示,该多路径路由树的计算方法可以包括以下步骤:
S201、从预存的链路状态数据库获取目标设备所在的通信网络的网络拓扑图。
本实施例中,网络拓扑图包括一个源节点和多个目的节点,源节点为目标设备在通信网络中的网络节点,目的节点为通信网络中不同于源节点的其它网络节点。
S202、以网络拓扑图为依据,通过广度优先遍历算法构建初始路由树。
本实施例中,初始路由树的根节点为源节点。
S203、遍历初始路由树的所有叶节点,通过预设的第一剪枝规则对初始路由树中多次出现的节点进行删除处理,得到初次剪枝路由树。
S204、遍历初次剪枝路由树的所有叶节点,通过预设的第二剪枝规则对初次剪枝路由树进行环路去除处理,得到剪枝路由树。
本实施例中,剪枝规则包括第一剪枝规则和第二剪枝规则。
本实施例中,实施上述步骤S203~步骤S204能够通过预设的剪枝规则对初始路由树进行剪枝处理得到剪枝路由树。
本实施例中,图4所示的网络拓扑图还包括各个节点与节点之间的路径开销值。其中,路径AB的路径开销值为1,路径AC的路径开销值为1,路径AD的路径开销值为3,路径AE的路径开销值为2,路径BD的路径开销值为4,路径DE的路径开销值为3,路径EF的路径开销值为1,路径CF的路径开销值为1等,对此本实施例不做限定。
本实施例中,第一剪枝规则包括:
将初始路由树中的一个叶节点作为第一目标叶节点,并将从路由树的根节点到第一目标叶节点的一条路径作为第一处理路径;
判断是否存在从路由树的根节点到第一目标叶节点且包含有与第一处理路径的中间节点重复的节点的第二处理路径;
如果存在第二处理路径,在初始路由树中将第一处理路径和第二处理路径中路径开销值最大的路径进行删除处理。
本实施例中,第二剪枝规则包括:
将初次剪枝路由树中的一个叶节点作为第二目标叶节点,并将从路由树的根节点到第二目标叶节点的一条路径作为第三处理路径;
判断是否存在从路由树的根节点到第二目标叶节点的第四处理路径;
如果存在第四处理路径,判断第二目标叶节点是否满足第一预设条件和/或第二预设条件;
如果满足第一预设条件和第二预设条件中的至少一个,在初次剪枝路由树中对第三处理路径和第四处理路径中路径开销值最大的路径进行删除处理。
本实施例中,上述第一预设条件和第二预设条件分别为:
第一预设条件为:cost(P1)+firstcost(P2)<cost(P2)-firstcost(P2);
第二预设条件为:cost(P2)-firstcost(P2)>cost(P1);
其中,P1表示从初次剪枝路由树的根节点到第二目标叶节点的第三处理路径;P2表示从初次剪枝路由树的根节点到第二目标叶节点的第四处理路径,cost(P1)表示第三处理路径的路径开销值,cost(P2)表示第四处理路径的路径开销值,firstcost(P2)表示在第三处理路径上从初次剪枝路由树的根节点到下一跳节点的路径开销值。
本实施例中,只要第三处理路径和第四处理路径满足第一预设条件和第二预设条件中的其中任意一个、或者第一预设条件和第二预设条件中两个均满足,则在初次剪枝路由树中将第三处理路径和第四处理路径中路径开销值最大的路径进行删除处理。
S205、以网络拓扑图为依据在剪枝路由树的基础上构建下一级路由树,得到二次路由树,其中,二次路由树的深度大于剪枝路由树的深度。
S206、判断在构建下一路由树得到二次路由树的过程中是否有新增节点加入,如果是,执行步骤S207和步骤S203~步骤S206;如果否,则执行步骤S208。
本实施例中,所构建的二次路由树的深度大于多路径路由树的深度。
S207、将初始路由树的信息更新为二次路由树的信息,并执行步骤S203~步骤S206。
S208、将初次剪枝路由树确定为期望的多路径路由树并存储多路径路由树,多路径路由树包括从源节点到每个目的节点的至少一条路由路径。
举例来说,当从预存的链路状态数据库获取目标设备所在的通信网络的网络拓扑图为图4所示的网络拓扑图时,以目标设备在通信网络X中的网络节点A为源节点。则计算多路径路由树的具体步骤为:
第一步:执行步骤202采用广度优先遍历算法从源节点A出发,访问源节点A的各个未曾访问的邻节点B、邻节点C、邻节点D、邻节点E之后,构建出的初始路由树如图5所示,其中,图5所示的初始路由树的深度为1,源节点A为该初始路由树的根节点;
第二步:执行步骤S203~步骤S204对图5所示的初始路由树进行剪枝处理。由于图5所示的初始路由树中无多次出现的节点和冗余环路,因此执行步骤S203~步骤S204对图5所示的初始路由树不进行剪枝处理,所得到的剪枝路由树依旧如图5所示;
第三步:以图5所示的剪枝路由树为基础,采用广度优先遍历算法依次从邻节点B、邻节点C、邻节点D、邻节点E出发访问各自未被访问的邻节点,构建下一级路由树,所得到的二次路由树如图6所示,其中,图6所示的二次路由树的深度为2;
第四步:以图6所示的二次路由树为初始路由树,执行步骤S203~步骤S204对图6所示的二次路由树进行剪枝处理。其中,在对图6所示的二次路由树进行剪枝处理的过程中,剪去路径ABD的叶节点D,剪去路径ADE的叶节点E,剪去路径ADB的叶节点B,剪去路径AED的叶节点D,所得到的剪枝路由树如图7所示;
第五步:以图7所示的剪枝路由树为基础采用广度优先遍历算法继续构建下一级路由树,得到深度为3的二次路由树,该深度为3的新的二次路由树如图8所示;
第六步:以图8所示的新的二次路由树为初始路由树,执行步骤S203~步骤S204对图8所示的新的二次路由树进行剪枝处理。其中,在对图8所示的二次路由树进行剪枝处理的过程中,剪去路径ACFE的叶节点E以及剪去路径AEFC的叶节点C,所得到的新的剪枝路由树如图9所示;
第七步:以图9所示的新的剪枝路由树为基础,继续构建下一级路由树,由于在构建下一级路由树的过程中没有新节点加入,此时将图9所示的新的剪枝路由树确定为期望的多路径路由树,并存储图9所示的多路径路由树。
本实施例中,图9所示的多路径路由树包括从源节点A到每个目的节点B、C、D、E、F的至少一条路由路径。其中,源节点A到目的节点B的路径为AB,源节点A到目的节点C的路径为AC,源节点A到目的节点D的路径为AD,源节点A到目的节点E的路径为AE,源节点A到目的节点F的路径为ACF和AEF。当路径ACF的中间节点C发生故障或者网络拥堵时,可以通过路径AEF保障AF之间的通信顺畅,组网限制更小。当路径ACF和路径AEF均畅通的情况下,还可以对路径ACF和路径AEF进行合理的分配负载,实现负载均衡;另一方面,还可以在进行节点A至节点F之间的通信时,根据各路径的路径开销、权重、链路空闲状态等因素分配数据流比例,还可以根据不同的服务质量要求提供不同的路由路径,进而使得网络路径使用更合理、更充分。
可见,实施图2所描述的多路径路由树的计算方法,所得到的多路径路由树包括源节点到每个目的节点的至少一条路径,能够有效避免因网络局部节点或通信网络使用高峰导致网络拥塞、报文丢包率增加等问题,进而提升通信服务质量。
实施例3
请参阅图3,图3是本发明实施例提供的一种多路径路由树的计算装置的结构示意图。其中,如图3所示,该多路径路由树的计算装置包括:
获取模块301,用于从预存的链路状态数据库获取目标设备所在的通信网络的网络拓扑图,网络拓扑图包括一个源节点和多个目的节点,源节点为目标设备在通信网络中的网络节点,目的节点为通信网络中不同于源节点的其它网络节点。
本实施例中,网络拓扑图还可以包括各个节点与节点之间的路径开销值,对此本实施例不作限定。
构建模块302,用于以网络拓扑图为依据,通过广度优先遍历算法构建初始路由树,其中初始路由树的根节点为源节点。
剪枝处理模块303,用于通过预设的剪枝规则对初始路由树进行剪枝处理得到剪枝路由树。
构建模块302,还用于以网络拓扑图为依据在剪枝路由树的基础上构建下一级路由树,得到二次路由树,二次路由树的深度大于剪枝路由树的深度。
判断模块304,用于判断在构建下一路由树得到二次路由树的过程中时是否有新增节点加入。
存储模块305,用于在判断模块304判断出构建下一路由树得到二次路由树的过程中时没有新增节点加入时,将初次剪枝路由树确定为期望的多路径路由树并存储多路径路由树,多路径路由树包括从源节点到每个目的节点的至少一条路由路径。
作为一种可选的实施方式,判断模块304,还用于在判断出在构建下一路由树得到二次路由树的过程中时有新增节点加入时将初始路由树的信息更新为二次路由树的信息,并触发剪枝处理模块303执行的通过预设的剪枝规则对初始路由树进行剪枝处理得到剪枝路由树。
作为一种可选的实施方式,剪枝处理模块303包括:
第一子模块3031,用于遍历初始路由树的所有叶节点,通过预设的第一剪枝规则对初始路由树中多次出现的节点进行删除处理,得到初次剪枝路由树。
第二子模块3032,用于遍历初次剪枝路由树的所有叶节点,通过预设的第二剪枝规则对初次剪枝路由树进行环路去除处理,得到剪枝路由树。
在上述实施例方式中,剪枝规则包括第一剪枝规则和第二剪枝规则。
在上述实施例方式中,第一剪枝规则包括:
将初始路由树中的一个叶节点作为第一目标叶节点,并将从路由树的根节点到第一目标叶节点的一条路径作为第一处理路径;
判断是否存在从路由树的根节点到第一目标叶节点且包含有与第一处理路径的中间节点重复的节点的第二处理路径;
如果存在第二处理路径,在初始路由树中将第一处理路径和第二处理路径中路径开销值最大的路径进行删除处理。
在上述实施例方式中,第二剪枝规则包括:
将初次剪枝路由树中的一个叶节点作为第二目标叶节点,并将从路由树的根节点到第二目标叶节点的一条路径作为第三处理路径;
判断是否存在从路由树的根节点到第二目标叶节点的第四处理路径;
如果存在第四处理路径,判断第二目标叶节点是否满足第一预设条件和/或第二预设条件;
如果满足第一预设条件和第二预设条件中的至少一个,在初次剪枝路由树中对第三处理路径和第四处理路径中路径开销值最大的路径进行删除处理。
在上述实施例方式中,上述第一预设条件和第二预设条件分别为:
第一预设条件为:cost(P1)+firstcost(P2)<cost(P2)-firstcost(P2);
第二预设条件为:cost(P2)-firstcost(P2)>cost(P1);
其中,P1表示从初次剪枝路由树的根节点到第二目标叶节点的第三处理路径;P2表示从初次剪枝路由树的根节点到第二目标叶节点的第四处理路径,cost(P1)表示第三处理路径的路径开销值,cost(P2)表示第四处理路径的路径开销值,firstcost(P2)表示在第三处理路径上从初次剪枝路由树的根节点到下一跳节点的路径开销值。
可见,实施图3所描述的多路径路由树的计算装置,所得到的多路径路由树包括源节点到每个目的节点的至少一条路径,能够有效避免因网络局部节点或通信网络使用高峰导致网络拥塞、报文丢包率增加等问题,进而提升通信服务质量。
此外,本发明还提供了一种计算机设备。该计算机设备包括存储器和处理器,存储器可用于存储计算机程序,处理器通过运行计算机程序,从而使该计算机设备执行上述方法或者上述多路径路由树的计算装置中的各个模块的功能。
存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本实施例还提供了一种计算机存储介质,用于储存上述计算机设备中使用的计算机程序。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种多路径路由树的计算方法,其特征在于,包括:
从预存的链路状态数据库获取目标设备所在的通信网络的网络拓扑图,所述网络拓扑图包括一个源节点和多个目的节点,所述源节点为所述目标设备在所述通信网络中的网络节点,所述目的节点为所述通信网络中不同于所述源节点的其它网络节点;
以所述网络拓扑图为依据,通过广度优先遍历算法构建初始路由树,其中所述初始路由树的根节点为所述源节点;
通过预设的剪枝规则对所述初始路由树进行剪枝处理得到剪枝路由树,并以所述网络拓扑图为依据在所述剪枝路由树的基础上构建下一级路由树,得到二次路由树,所述二次路由树的深度大于所述剪枝路由树的深度;
判断在构建下一路由树得到所述二次路由树的过程中时是否有新增节点加入;
如果在构建下一路由树得到所述二次路由树的过程中时有所述新增节点加入,将所述初始路由树的信息更新为所述二次路由树的信息并执行所述的通过预设的剪枝规则对所述初始路由树进行剪枝处理得到剪枝路由树,并以所述网络拓扑图为依据在所述剪枝路由树的基础上构建下一级路由树,得到二次路由树的步骤;
如果在构建下一路由树得到所述二次路由树的过程中时没有所述新增节点加入,将所述剪枝路由树确定为期望的多路径路由树并存储所述多路径路由树,所述多路径路由树包括从所述源节点到每个所述目的节点的至少一条路由路径。
2.根据权利要求1所述的多路径路由树的计算方法,其特征在于,所述剪枝规则包括第一剪枝规则和第二剪枝规则;
所述通过预设的剪枝规则对所述初始路由树进行剪枝处理得到所述剪枝路由树,包括:
遍历所述初始路由树的所有叶节点,通过预设的所述第一剪枝规则对所述初始路由树中多次出现的节点进行删除处理,得到初次剪枝路由树;
遍历所述初次剪枝路由树的所有叶节点,通过预设的所述第二剪枝规则对所述初次剪枝路由树进行环路去除处理,得到剪枝路由树。
3.根据权利要求2所述的多路径路由树的计算方法,其特征在于,所述第一剪枝规则包括:
将所述初始路由树中的一个叶节点作为第一目标叶节点,并将从所述路由树的根节点到所述第一目标叶节点的一条路径作为第一处理路径;
判断是否存在从所述路由树的根节点到所述第一目标叶节点且包含有与所述第一处理路径的中间节点重复的节点的第二处理路径;
如果存在所述第二处理路径,在所述初始路由树中将所述第一处理路径和所述第二处理路径中路径开销值最大的路径进行删除处理。
4.根据权利要求2所述的多路径路由树的计算方法,其特征在于,所述第二剪枝规则包括:
将所述初次剪枝路由树中的一个叶节点作为第二目标叶节点,并将从所述路由树的根节点到所述第二目标叶节点的一条路径作为第三处理路径;
判断是否存在从所述路由树的根节点到所述第二目标叶节点的第四处理路径;
如果存在所述第四处理路径,判断所述第二目标叶节点是否满足第一预设条件和/或第二预设条件;
如果满足所述第一预设条件和所述第二预设条件中的至少一个,在所述初次剪枝路由树中对所述第三处理路径和所述第四处理路径中路径开销值最大的路径进行删除处理;
所述第一预设条件为:cost(P1)+firstcost(P2)<cost(P2)-firstcost(P2);
所述第二预设条件为:cost(P2)-firstcost(P2)>cost(P1);
其中,P1表示从所述初次剪枝路由树的根节点到所述第二目标叶节点的第三处理路径;P2表示从所述初次剪枝路由树的根节点到所述第二目标叶节点的第四处理路径,cost(P1)表示所述第三处理路径的路径开销值,cost(P2)表示所述第四处理路径的路径开销值,firstcost(P2)表示在所述第三处理路径上从所述初次剪枝路由树的根节点到下一跳节点的路径开销值。
5.一种多路径路由树的计算装置,其特征在于,包括:
获取模块,用于从预存的链路状态数据库获取目标设备所在的通信网络的网络拓扑图,所述网络拓扑图包括一个源节点和多个目的节点,所述源节点为所述目标设备在所述通信网络中的网络节点,所述目的节点为所述通信网络中不同于所述源节点的其它网络节点;
构建模块,用于以所述网络拓扑图为依据,通过广度优先遍历算法构建初始路由树,其中所述初始路由树的根节点为所述源节点;
剪枝处理模块,用于通过预设的剪枝规则对所述初始路由树进行剪枝处理得到剪枝路由树;
所述构建模块,还用于以所述网络拓扑图为依据在所述剪枝路由树的基础上构建下一级路由树,得到二次路由树,所述二次路由树的深度大于所述剪枝路由树的深度;
判断模块,用于判断在构建下一路由树得到所述二次路由树的过程中时是否有新增节点加入;还用于在判断出在构建下一路由树得到所述二次路由树的过程中时有所述新增节点加入时,将所述初始路由树的信息更新为所述二次路由树的信息,并触发所述剪枝处理模块执行所述的通过预设的剪枝规则对所述初始路由树进行剪枝处理得到剪枝路由树;
存储模块,用于在判断出构建下一路由树得到所述二次路由树的过程中时没有所述新增节点加入时,将所述剪枝路由树确定为期望的所述多路径路由树并存储所述多路径路由树,所述多路径路由树包括从所述源节点到每个所述目的节点的至少一条路由路径。
6.根据权利要求5所述的多路径路由树的计算装置,其特征在于,所述剪枝规则包括第一剪枝规则和第二剪枝规则;
所述剪枝处理模块包括:
第一子模块,用于遍历所述初始路由树的所有叶节点,通过预设的所述第一剪枝规则对所述初始路由树中多次出现的节点进行删除处理,得到初次剪枝路由树;
第二子模块,用于遍历所述初次剪枝路由树的所有叶节点,通过预设的所述第二剪枝规则对所述初次剪枝路由树进行环路去除处理,得到剪枝路由树。
7.一种计算机设备,其特征在于,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述计算机设备执行权利要求1至4中任一项所述的多路径路由树的计算方法。
8.一种计算机可读存储介质,其特征在于,其存储有权利要求7所述的计算机设备中所使用的所述计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811089953.4A CN108965141B (zh) | 2018-09-18 | 2018-09-18 | 一种多路径路由树的计算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811089953.4A CN108965141B (zh) | 2018-09-18 | 2018-09-18 | 一种多路径路由树的计算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108965141A CN108965141A (zh) | 2018-12-07 |
CN108965141B true CN108965141B (zh) | 2021-03-30 |
Family
ID=64471204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811089953.4A Active CN108965141B (zh) | 2018-09-18 | 2018-09-18 | 一种多路径路由树的计算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108965141B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086709B (zh) * | 2019-03-22 | 2021-09-03 | 同济大学 | 针对超大规模片上网络容忍众故障的确定性路径路由方法 |
CN112039703B (zh) * | 2020-08-28 | 2022-04-22 | 迈普通信技术股份有限公司 | 路径确定方法、装置、设备及可读存储介质 |
CN113515672A (zh) * | 2020-12-31 | 2021-10-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
CN113328950B (zh) * | 2021-05-25 | 2022-06-17 | 桂林电子科技大学 | 一种基于树状结构的sdn路由系统构建方法 |
CN113794600B (zh) * | 2021-09-30 | 2023-10-13 | 中通服创立信息科技有限责任公司 | 一种用于搜索传输电路路由的方法及装置 |
CN114172895A (zh) * | 2021-12-07 | 2022-03-11 | 中国建设银行股份有限公司 | 一种路由方法、装置、计算机设备及存储介质 |
CN115145252B (zh) * | 2022-09-06 | 2023-01-03 | 长江三峡能事达电气股份有限公司 | 基于故障树的水轮机调速器故障诊断方法、系统及介质 |
CN115442301A (zh) * | 2022-09-09 | 2022-12-06 | 珍爱信息技术(海南)有限公司 | 路由配置树生成方法、基于路由配置树的路由方法、装置和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420379A (zh) * | 2008-11-14 | 2009-04-29 | 北京航空航天大学 | 一种移动ad hoc网络低开销多路径路由方法 |
CN101483934A (zh) * | 2008-12-19 | 2009-07-15 | 北京邮电大学 | 具有拓扑感知能力的分段自适应多路径路由机制 |
CN102316029A (zh) * | 2011-09-01 | 2012-01-11 | 福建星网锐捷网络有限公司 | 一种快速重路由方法及路由设备 |
CN103581164A (zh) * | 2012-07-20 | 2014-02-12 | 西门子公司 | 用于在可冗余操作的工业通信网络中进行消息传输的方法和用于可冗余操作的工业通信网络的通信设备 |
CN105282041A (zh) * | 2014-07-18 | 2016-01-27 | 中兴通讯股份有限公司 | 基于isis的洪泛方法及装置 |
CN105897575A (zh) * | 2016-06-03 | 2016-08-24 | 中国电子科技集团公司第三十研究所 | 一种sdn下基于多约束路径计算策略的路径计算方法 |
CN108270677A (zh) * | 2016-12-30 | 2018-07-10 | 中国移动通信集团浙江有限公司 | 一种快速路由收敛方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030943A (zh) * | 2007-04-03 | 2007-09-05 | 华为技术有限公司 | 一种发送报文的方法和路由器 |
CN103036787B (zh) * | 2011-10-09 | 2016-09-28 | 华为技术有限公司 | 一种网络路由收敛处理方法和装置 |
US9276838B2 (en) * | 2012-10-05 | 2016-03-01 | Futurewei Technologies, Inc. | Software defined network virtualization utilizing service specific topology abstraction and interface |
US9160651B2 (en) * | 2013-07-24 | 2015-10-13 | Telefonaktiebolaget L M Ericsson (Publ) | Metric biasing for bandwidth aware tie breaking |
CN104468370B (zh) * | 2013-09-24 | 2018-09-04 | 新华三技术有限公司 | 一种组播数据报文转发方法及设备 |
US9954765B2 (en) * | 2016-01-08 | 2018-04-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Graph construction for computed spring multicast |
-
2018
- 2018-09-18 CN CN201811089953.4A patent/CN108965141B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420379A (zh) * | 2008-11-14 | 2009-04-29 | 北京航空航天大学 | 一种移动ad hoc网络低开销多路径路由方法 |
CN101483934A (zh) * | 2008-12-19 | 2009-07-15 | 北京邮电大学 | 具有拓扑感知能力的分段自适应多路径路由机制 |
CN102316029A (zh) * | 2011-09-01 | 2012-01-11 | 福建星网锐捷网络有限公司 | 一种快速重路由方法及路由设备 |
CN103581164A (zh) * | 2012-07-20 | 2014-02-12 | 西门子公司 | 用于在可冗余操作的工业通信网络中进行消息传输的方法和用于可冗余操作的工业通信网络的通信设备 |
CN105282041A (zh) * | 2014-07-18 | 2016-01-27 | 中兴通讯股份有限公司 | 基于isis的洪泛方法及装置 |
CN105897575A (zh) * | 2016-06-03 | 2016-08-24 | 中国电子科技集团公司第三十研究所 | 一种sdn下基于多约束路径计算策略的路径计算方法 |
CN108270677A (zh) * | 2016-12-30 | 2018-07-10 | 中国移动通信集团浙江有限公司 | 一种快速路由收敛方法及装置 |
Non-Patent Citations (2)
Title |
---|
Source Directed Route in Ad Hoc Network;Zhengxi Wei et al;《2010 International Conference on E-Product E-Service and E-Entertainment》;20101210;全文 * |
基于多路广播树的SDN多路径路由算法;覃匡宇等;《计算机科学》;20180115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108965141A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108965141B (zh) | 一种多路径路由树的计算方法及装置 | |
US8467315B2 (en) | Method and apparatus for implementing K-shortest paths algorithm in the case of existing multiple edges between adjacent nodes | |
US10404576B2 (en) | Constrained shortest path determination in a network | |
EP3228050A1 (en) | Network topology optimization | |
CN105122745A (zh) | 用于网络设备的高效最长前缀匹配技术 | |
CN108833271B (zh) | 一种电网广域控制业务通信路径选择方法及服务器 | |
JPH0693681B2 (ja) | 通信ネツトワークにおいて最小重みのルートを選択する方法 | |
CN111181792B (zh) | 基于网络拓扑的sdn控制器部署方法、装置及电子设备 | |
CN105187279A (zh) | 一种流量统计并实时排名的方法 | |
CN113706326B (zh) | 基于矩阵运算的移动社会网络图修改方法 | |
CN114726772B (zh) | 一种基于优化网络拓扑结构的路由保护方法 | |
CN107919973B (zh) | 用于配置网络设备参数的方法和装置 | |
RU2010104017A (ru) | Основанная на пригодности маршрутизация | |
CN117596030A (zh) | 网络攻击路径的重构方法、装置、存储介质和电子设备 | |
CN106034266B (zh) | 光路由的生成方法及装置 | |
CN106301643B (zh) | 一种用于配置时钟跟踪的方法及控制设备 | |
CN111953606A (zh) | 一种路由迭代循环检测方法、装置、电子设备及存储介质 | |
CN108768735B (zh) | 一种测试床拓扑结构的二分图采样方法及装置 | |
WO2014205820A1 (zh) | 一种业务路径计算方法及装置 | |
CN114697002B (zh) | 一种分布式量子密码网络组密钥分发方法及系统 | |
WO2017219842A1 (zh) | 一种tcam表项的更新方法、装置及tcam | |
CN112102611B (zh) | 一种基于中断概率影响模型的城市路网关键路径辨识方法 | |
CN114417184A (zh) | 一种种子节点筛选方法、装置、设备、存储介质 | |
CN110941886B (zh) | 拓扑结构的生成方法、更新方法、系统及存储介质 | |
CN104506427A (zh) | 更新控制方法及更新控制装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |