一种转发路径确定方法和装置与流程

文档序号:12729477阅读:164来源:国知局
一种转发路径确定方法和装置与流程

本发明涉及数据处理领域,特别是涉及一种转发路径确定方法和装置。



背景技术:

随着网络技术的发展,对转发的精度要求越来越高,计算网络转发路径时需要考虑到可能的网络时延。

对于网络例如IP网络来说,网络时延主要包括链路时延、处理时延等,其中链路时延与转发设备之间的实际距离、传输介质等相关,例如通过两百公里的光纤的转发,网络时延可以达到1毫秒(ms)左右,而处理时延与转发设备自身硬件处理能力相关,以上两种时延相对较为固定,故传统的最短路径计算方式在计算转发路径时,主要考虑的是这一类网络时延。



技术实现要素:

还有一类网络时延是传统方式中没有考虑到的,即在网络中转发设备实际工作过程中,可能出现的拥塞时延,这类网络时延与实时业务流量相关,也与网络的组网方案相关,变化相对很大,有的时候甚至可以达到数百ms级别。可见,这类网络时延对数据转发的实际影响是很大的,若在确定转发路径时不考虑这类网络时延,可能导致转发路径的实际网络时延远大于计算出的网络时延,得到的高网络时延的转发路径与计算转发路径的需求相悖,而且高网络时延的转发路径会非常影响数据转发,降低了网络的资源利用率。

可见,为了能够提高计算转发路径的准确性,需要考虑到各种类型的网络时延,尤其是上述这种时变较大的拥塞时延。

为了解决上述技术问题,本发明实施例提供了一种转发路径确定方法和装置,能够提高计算转发路径的准确性。

第一方面,本发明提供了一种转发路径确定方法,应用于网络中的多个节点中,所述多个节点包括第一节点和第二节点,针对从所述第一节点到第二节点的转发路径的确定,所述方法包括:

收集所述多个节点各自的内部时延,一个节点的内部时延为根据这个节点由于处理报文导致的拥塞情况所确定的;

在根据所述多个节点确定从所述第一节点到第二节点间转发路径的过程中,从与第一节点的相邻节点开始,依据最短路径算法确定待确定路径,所述待确定路径为一段从所述第一节点开始的,包括至少两个节点的转发路径;其中,将所述待确定路径中节点的内部时延作为所述待确定路径的总时延的一部分;

将从第一节点至第二节点为止的待确定路径中总时延最小的确定为从所述第一节点到第二节点的转发路径。

在第一方面的第一种可能的实现方式中,在所述多个节点中,一个节点的内部时延用于标识这个节点的平均拥塞情况。

在第一方面的第二种可能的实现方式中,在所述多个节点中,一个节点的内部时延用于标识这个节点从入接口到出接口之间的拥塞情况。

结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述针对从所述第一节点到第二节点的转发路径的确定,具体包括针对从所述第一节点的目标入接口到第二节点的目标出接口的转发路径的确定,则所述将所述待确定路径中各个节点的内部时延作为所述待确定路径的总时延的一部分,包括:

针对所述待确定路径中的节点,一个节点的内部时延用于标识这个节点在所述待确定路径中所使用的入接口和出接口之间的拥塞情况;

根据所述待确定路径中所包括的各个链路的链路时延以及所包括的各个节点的内部时延相加得到所述待确定路径的总时延。

结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,针对从所述第一节点的目标入接口到第二节点的目标出接口的转发路径的确定,在从与第一节点的相邻节点开始,依据最短路径算法确定待确定路径之前,包括:

将节点的入接口和出接口作为虚拟节点;

根据所述多个节点之间的拓扑信息以及虚拟节点间的连接关系,更新所述多个节点之间的拓扑信息。

结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述将节点的入接口和出接口作为虚拟节点,包括:

将所述多个节点的所有出接口和入接口均作为虚拟节点。

第二方面,本发明提供了一种转发路径确定装置,应用于网络中的多个节点中,所述多个节点包括第一节点和第二节点,针对从所述第一节点到第二节点的转发路径的确定,所述装置包括收集单元和确定单元:

所述收集单元,用于收集所述多个节点各自的内部时延,一个节点的内部时延为根据这个节点由于处理报文导致的拥塞情况所确定的;

所述确定单元,用于在根据所述多个节点确定从所述第一节点到第二节点间转发路径的过程中,从与第一节点的相邻节点开始,依据最短路径算法确定待确定路径,所述待确定路径为一段从所述第一节点开始的,包括至少两个节点的转发路径;其中,将所述待确定路径中节点的内部时延作为所述待确定路径的总时延的一部分;

所述确定单元还用于将从第一节点至第二节点为止的待确定路径中总时延最小的确定为从所述第一节点到第二节点的转发路径。

在第二方面的第一种可能的实现方式中,在所述多个节点中,一个节点的内部时延用于标识这个节点的平均拥塞情况。

在第二方面的第二种可能的实现方式中,在所述多个节点中,一个节点的内部时延用于标识这个节点从入接口到出接口之间的拥塞情况。

结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述针对从所述第一节点到第二节点的转发路径的确定,具体包括针对从所述第一节点的目标入接口到第二节点的目标出接口的转发路径的确定,所述确定单元包括标识子单元和相加子单元:

所述标识子单元,用于针对所述待确定路径中的节点,一个节点的内部时延用于标识这个节点在所述待确定路径中所使用的入接口和出接口之间的拥塞情况;

所述相加子单元,用于根据所述待确定路径中所包括的各个链路的链路时延以及所包括的各个节点的内部时延相加得到所述待确定路径的总时延。

结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述装置还包括虚拟单元和更新单元:

所述虚拟单元,用于将节点的入接口和出接口作为虚拟节点;

所述更新单元,用于根据所述多个节点之间的拓扑信息以及虚拟节点间的连接关系,更新所述多个节点之间的拓扑信息。

结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述虚拟单元具体用于将所述多个节点的所有出接口和入接口均作为虚拟节点。

由上述技术方案可以看出,在根据多个节点确定其中两个节点,即从第一节点到第二节点间转发路径的过程中,可以预先获取该多个节点用于标识拥塞情况的内部时延,从而在依据最短路径算法计算待确定路径时,待确定路径的总时延中除了包括链路时延外,还进一步的包括了待确定路径中各个节点的内部时延,由此确定的出的从第一节点至第二节点为止的转发路径将是考虑了内部时延后的最小总时延路径,将标识了拥塞情况的内部时延引入到计算转发路径的过程中,提高了计算转发路径的准确性,增加了网络的资源利用率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种转发路径确定方法的流程图;

图2为本发明实施例提供的一种多个节点之间的链路组成的有向连通图;

图3a为本发明实施例提供的一种考虑节点内部时延的多个节点之间的链路组成的示意图;

图3b为本发明实施例提供的一条从第一节点到第二节点的转发路径的示意图;

图3c为本发明实施例提供的一种从第一节点到其他各个节点的转发路径的示意图;

图4a为本发明实施例提供的一种考虑不同接口之间内部时延的多个节点之间的链路组成的示意图;

图4b为本发明实施例提供的一条从目标入接口到目标出接口的转发路径的示意图;

图4c为本发明实施例提供的一种更新后的节点之间的网络拓扑的示意图;

图4d为本发明实施例提供的一种从第一节点的目标入接口到其他各个节点的目标出接口的转发路径的示意图;

图5为本发明实施例提供的一种转发路径确定装置的装置结构图。

具体实施方式

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

随着网络技术的发展,对转发的精度要求越来越高,转发路径的网络时延是转发精度的一个重要性能指标,如何计算和选择一条满足网络时延要求的转发路径成为一个突出的问题。网络时延可以用于标识数据例如报文,从网络的发送端到目的端的传输时间。对于网络例如IP网络来说,网络时延主要包括链路时延、处理时延等。链路时延与转发设备之间的实际距离、传输介质等相关,处理时延与转发设备自身硬件处理能力相关,这两种时延相对比较固定,并且处理时延一般为微秒级,相对于链路时延来说处理时延对于网络时延的影响较小。

传统方式中,在确定最短网络时延的转发路径时,可以将网络中的转发路径,抽象成节点和节点之间的链路,在路由转发报文时,一个转发设备可以作为一个节点。可以将直接相连的两个节点之间的链路作为一条边,一条转发路径可以由一条或多条边组成,每条边赋予对应的权重,该权重可以依据于链路时延确定,或者可以将该链路的链路时延作为权重。针对这种链路结构,可以利用最短路径优先算法(Shortest path first algorithm,SPF)计算出从某一节点到其他任意节点的最短网络时延的转发路径。传统方式中,一条路径的网络时延考虑的是该条路径中节点之间的链路时延,例如,确定出的从节点V0到节点V3的一条最短网路时延的转发路径为从节点V0经过节点V2后再到节点V3的一条路径,其中,节点V0与节点V2之间的链路时延为10ms,节点V2与节点V3之间的链路时延为15ms,由此计算出的该条转发路径的网络时延为25ms。

但是在转发设备实际工作过程中,可能会出现拥塞时延,这类网络时延与实时业务流量相关,也与网络的组网方案相关,变化相对很大,有的时候甚至可以达到数百ms级别。可见,这类网络时延对数据转发的实际影响是很大的,若在确定转发路径时不考虑这类网络时延,可能导致转发路径的实际网络时延远大于计算出的网络时延。例如,在未考虑拥塞时延的情况下,确定出的从节点V0到节点V3的一条最短网路时延的转发路径为从节点V0经过节点V2后再到节点V3的一条路径,其中,节点V0与节点V2之间的链路时延为10ms,节点V2与节点V3之间的链路时延为15ms,处理时延一般为微秒级,在此可以忽略不计,由此计算出的网络时延为25ms,但是在节点工作过程中可能会产生拥塞时延,以节点V2为例,节点V2在处理业务时产生的拥塞时延为100ms,则此时该条转发路径的实际网络时延会远高于原本计算出的网络时延。从而导致得到的高网络时延的转发路径与计算转发路径的需求相悖,而且高网络时延的转发路径会非常影响数据转发,降低了网络的资源利用率。

为此,本发明实施例提供了一种转发路径确定方法,在根据多个节点确定其中两个节点,即从第一节点到第二节点间转发路径的过程中,可以预先获取该多个节点用于标识拥塞情况的内部时延,从而在依据最短路径算法计算待确定路径时,待确定路径的总时延中除了包括链路时延外,还进一步的包括了待确定路径中各个节点的内部时延,由此确定的出的从第一节点至第二节点为止的转发路径将是考虑了内部时延后的最小总时延路径,将标识了拥塞情况的内部时延引入到计算转发路径的过程中,提高了计算转发路径的准确性,增加了网络的资源利用率。

接下来,详细介绍本发明实施例所提供的一种转发路径确定方法。图1为本发明实施例提供的一种转发路径确定方法的流程图,应用于网络中的多个节点中,所述多个节点包括第一节点和第二节点,针对从所述第一节点到第二节点的转发路径的确定,该方法包括:

S101:收集所述多个节点各自的内部时延。

本发明实施例中,在进行网络时延的计算时,为了使得计算出的网络时延更加贴近转发路径的实际网络时延,除考虑链路时延外,还需要考虑转发设备实际工作过程中可能会出现的拥塞时延。

在本发明实施例中,网络中的一个节点可以是该网络中的一个具有报文转发功能的转发设备,转发设备可以包括路由器、交换机等。

一个节点的内部时延可以用于表示该节点由于处理报文导致的拥塞情况所产生的时延,可以将节点处理报文时产生的拥塞时延作为该节点的内部时延。该节点的拥塞情况一般会随着节点对报文的处理情况产生变化,即不同时间段,节点的拥塞情况可能不同,因此该节点的内部时延也会发生变化,可见节点的内部时延值并非固定不变的数值。

本发明对于收集节点内部时延的具体方式不作限定。可以周期性的收集该多个节点的内部时延。也可以是在具有确定转发路径的需求时,收集节点的内部时延,例如,当需要计算出从节点1到节点2总时延最小的转发路径时,则可以进行多个节点各自的内部时延的收集,该多个节点可以是在网络中确定从节点1到节点2的转发路径相关的所有节点。选取何种收集节点内部时延的方式可以与计算精度相关,也可以与计算需求相关。

在本发明实施例中,如何确定该多个节点的范围可以与实际的转发路径计算需求相关。若计算需求为计算从一个节点到另一个节点的转发路径,则该多个节点可以是包括这两个节点,以及这两个节点之间可能形成该转发路径一部分,或者说与该转发路径相关的其他节点。若计算需求为计算网络中一个节点到该网络中其他节点的转发路径,则该多个节点可以是该网络中可以用于组成转发路径的全部节点。

S102:在根据所述多个节点确定从所述第一节点到第二节点间转发路径的过程中,从与第一节点的相邻节点开始,依据最短路径算法确定待确定路径,所述待确定路径为一段从所述第一节点开始的,包括至少两个节点的转发路径;其中,将所述待确定路径中节点的内部时延作为所述待确定路径的总时延的一部分。

当需要确定出网络中从一个节点(起始节点)到另一个节点(目的节点)的转发路径时,可以将起始节点作为第一节点,目的节点作为第二节点。根据最短路径算法,从第一节点开始向第二节点确定出多条待确定路径。

待确定路径可以是在利用最短路径算法计算转发路径时确定出的路径。依据最短路径算法的不同,待确定路径的形式也不尽相同。

在本发明实施例中,待确定路径是从第一节点开始的路径。其中,一条待确定路径可以是由第一节点开始直到第二节点的一条路径,这条路径中可以仅仅包括第一节点和第二节点,也可以在第一节点和第二节点之间包括其他节点。一条待确定路径也可以是从第一节点开始,到除第二节点外的其他节点的一条路径,这里的其他节点可以是在计算最短路径的过程中,该多个节点中处于第一节点和第二节点之间的一个节点。故待确定路径除了起始点为第一节点是明确的以外,结束点可以根据具体最短路径算法的不同,或者计算阶段的不同而有所不同。

最短路径算法可以是一种用于确定节点之间的总时延最小的转发路径的算法。本发明实施例中对最短路径算法的具体算法方式不作限定。以第一节点为例,当需要确定从第一节点到第二节点的转发路径时,则相应的最短路径算法可以是用于确定两个节点之间的总时延最小的转发路径的算法。当需要确定从第一节点到其他各个节点的转发路径时,则相应的最短路径算法可以是用于确定一个节点分别与其他各个节点之间的总时延最小的转发路径的算法,具体可以是SPF算法。

例如图2所示,在网络中具有6个节点,节点V0-V5,假设节点V0为第一节点,节点V3为第二节点,各节点之间的链路组成的有向连通图如图2所示,节点V0分别与节点V1、V2和V4连接,节点V1分别与节点V2、V3和V4连接,节点V2与节点V3连接,节点V3分别与节点V4和V5连接,节点V4和节点V5连接。根据最短路径算法可以确定出从节点V0到节点V3的待确定路径,一条待确定路径可以是从节点V0出发经过节点V1后再到节点V3,可以用[V0,V1,V3]表示,待确定路径也可以是[V0,V1,V2,V3]、或者是[V0,V1,V4,V3]、或者是[V0,V1,V4,V5,V3]、或者是[V0,V4,V3]、或者是[V0,V4,V1,V3]、或者是[V0,V4,V5,V3]、或者是[V0,V4,V1,V2,V3]、或者是[V0,V2,V3]、或者是[V0,V2,V1,V3]、或者是[V0,V2,V1,V4,V3]、或者是[V0,V2,V1,V4,V5,V3]。

采用与上述例子中不同的最短路径算法,确定出从节点V0开始的待确定路径,例如,可以是从节点V0开始,查找节点V0与其相邻节点之间的路径时延最短的路径对应的节点如节点V1,此时确定出的一条待确定路径即为从节点V0到节点V1的一条路径,即[V0,V1]。接下来再从节点V1开始,查找节点V1与其相邻节点之间的路径时延最短的路径对应的节点如节点V2,此时确定出的一条待确定路径即为从节点V0经过节点V1到达节点V2的一条路径,即[V0,V1,V2],以此类推,确定出的下一条待确定路径可以为从节点V0经过节点V2到达节点V3的一条路径,可以是[V0,V1,V2,V3]。

由于在计算待确定路径的总时延时,除了考虑节点间的链路时延以外,还考虑了待确定路径中节点的内部时延。节点的拥塞情况可以通过内部时延有效体现,尤其是当获取内部时延的时间距离计算转发路径的时间较近时,所获取的内部时延可以更为准确的体现节点的当前拥塞情况。故在通过本发明实施例的方式计算出的一条待确定路径的总时延可以更为准确的体现出,或者说更接近这条待确定路径在转发报文时实际会带来的转发时延,由此可以有效提高计算转发路径的准确性。

S103:将从第一节点至第二节点为止的待确定路径中总时延最小的确定为从所述第一节点到第二节点的转发路径。

根据S102的操作可以确定出从第一节点开始的所有待确定路径,一条待确定路径的总时延可以包括该条待确定路径中节点之间的链路时延和节点的内部时延。

在计算一条待确定路径的总时延时,作为总时延一部分的内部时延,可以是该待确定路径中包括的全部节点的内部时延,可以是该待确定路径中除了第一节点外的其他节点的内部时延。

由于每条待确定路径中节点之间的链路时延和节点的内部时延的不尽相同,所以确定出的从第一节点至第二节点为止的各条待确定路径对应的总时延也不尽相同,在本发明实施例中可以将总时延最小的从第一节点至第二节点为止的待确定路径作为第一节点到第二节点的转发路径。当总时延最小的从第一节点至第二节点为止的待确定路径具有多条(至少两条)时,可以从中任意选取一条作为从第一节点到第二节点的转发路径。

由上述技术方案可以看出,在根据多个节点确定其中两个节点,即从第一节点到第二节点间转发路径的过程中,可以预先获取该多个节点用于标识拥塞情况的内部时延,从而在依据最短路径算法计算待确定路径时,待确定路径的总时延中除了包括链路时延外,还进一步的包括了待确定路径中各个节点的内部时延,由此确定的出的从第一节点至第二节点为止的转发路径将是考虑了内部时延后的最小总时延路径,将标识了拥塞情况的内部时延引入到计算转发路径的过程中,提高了计算转发路径的准确性,增加了网络的资源利用率。而且,本发明实施例除了可以精确计算从第一节点到第二节点的转发路径以外,还可以将本发明实施例应用到计算一个节点(例如第一节点)分别至其他各个节点(例如该多个节点中除了第一节点外的其他节点)的转发路径中,全面了本发明实施例的应用范围。

在本发明实施例中,节点的内部时延可以用于标识该节点的拥塞情况,在一些计算精度要求不高的情况下,或者在该节点出入接口较少的情况下,或者在该节点出入接口间拥塞情况较为平均的情况下,该节点的内部时延可以是根据该节点的平均拥塞情况确定出,例如,可以统计几个不同时间段节点的拥塞时延,将获取的拥塞时延取平均值作为该节点的内部时延。这种情况下,每个节点有其对应的一个内部时延,该内部时延可以用于标识这个节点的平均拥塞情况。

从第一节点至第二节点为止的待确定路径可以有至少一条,以一条待确定路径为例,该待确定路径的总时延可以由第一节点到该待确定路径的结束点之间的一条或多条链路的链路时延以及该待确定路径中节点的内部时延相加得到。在通过节点的平均拥塞情况确定该节点的内部时延的情况下,在计算一条待确定路径的总时延时,作为总时延一部分的内部时延,可以是该待确定路径中包括的全部节点的内部时延,可以是该待确定路径中除了第一节点外的其他节点的内部时延。

之所以在计算总时延是可以将第一节点的内部时延排出在外,是因为从第一节点开始的所有待确定路径,均是从第一节点出发形成的路径,而由于第一节点的内部时延是一个定值,故在计算总时延时,是否考虑第一节点的内部时延并不会对各条待确定路径总时延的比较结果产生影响,即在计算待确定路径的总时延时不包括第一节点的内部时延并不会影响最终的转发路径的确定。故为了减少计算压力,可以在计算总时延的时候不考虑第一节点的内部时延。需要说明的是,在计算各条待确定路径的总时延时,对于每条待确定路径的总时延要么都包括第一节点的内部时延,要么都不包括第一节点的内部时延。

例如图3a所示,在网络中具有6个节点,节点V0-V5,假设节点V0为第一节点,节点V3为第二节点,每个节点都有其对应的一个内部时延,节点V0的内部时延为10ms、节点V1的内部时延为15ms、节点V2的内部时延为100ms、节点V3的内部时延为5ms、节点V4的内部时延为5ms、节点V5的内部时延为10ms,各节点之间的链路组成的有向连通图如图3a所示,节点V0分别与节点V1、V2和V4连接、节点V1分别与节点V2、V3和V4连接、节点V2和节点V3连接、节点V3分别与节点V4和V5连接、节点V4和节点V5连接,节点之间的链路上标注的权重可以为该链路的链路时延,例如节点V0与节点V1之间的链路时延为50ms,可以在节点V0与节点V1之间的链路上标注50。以一条待确定路径例如从节点V0经过节点V2到达节点V3的路径为例,可以用[V0,V2,V3]表示该条待确定路径,以不包括第一节点的内部时延的总时延计算方式为例,该条待确定路径的总时延可以是从节点V0到节点V3的链路时延与节点V1和节点V3各自的内部时延之和,从节点V0到节点V3的链路时延为从节点V0到节点V2的链路时延以及从节点V2到节点V3的链路时延之和,即10+15=25ms,由于节点V2的内部时延为100ms,节点V3的内部时延为5ms,故此可以计算出总时延为25+100+5=130ms。

依次类推,可以计算出从节点V0到节点V3为止的各条待确定路径的总时延。从而可以选取出总时延最小的待确定路径作为从节点V0到节点V3的转发路径,例如图3b所示,通过将各条待确定路径的总时延进行比较,将总时延最小的待确定路径确定为从第一节点到第二节点的转发路径,该待确定路径为从节点V0经过节点V4到达节点V3的待确定路径,其总时延为45+5+35+5=90ms。

类比于上述从第一节点到第二节点的转发路径的确定方法,可以确定出从第一节点到其他各个节点的转发路径。

除此之外,当需要确定从第一节点到其他各个节点的转发路径时,最短路径算法可以采用SPF算法,利用该算法可以实现从第一节点到其他各个节点的转发路径的确定。接下来将对通过SPF算法确定从第一节点到其他各个节点的转发路径的确定方式展开介绍。

在利用SPF算法确定转发路径时,可以将以第一节点为根(起始节点),到其他各个节点的转发路径组成的有向连通图称作最短时延路径树。在利用SPF算法确定转发路径之前,可以将网络中的节点分为两个集合,集合A中存放的是已经选入最短时延路径树的节点,集合B中存放的是网络中剩余的其他节点。对于路径可以分为三个集合,集合1作为确定路径集合,存放的是已经选入最短时延路径树的路径,集合1中最终存放的路径可以包括所需确定的转发路径。集合2作为候选路径集合,存放的是下一跳加入最短时延路径树的路径,该路径可以是待确定路径。集合3作为剩余路径集合,存放的是剩余的其他路径,该路径可以是废弃的路径或者是还未考虑的路径。

第一步,可以从集合2中选择一条最短时延的路径,放入最短时延路径树即放入集合1中,相应的,这条路径的终点对应的节点(记为节点X)应从集合B中移入集合A。一条路径的时延可以是该路径经过的节点之间的链路时延和经过的各个节点的内部时延之和,或者是该路径经过的节点之间的链路时延和经过的各个节点中除第一节点之外的其他节点的内部时延之和。为了后续方便介绍,后续内容中计算总时延时均以不包括第一节点的内部时延的方式为例。

例如图3a所示,假设节点V0为第一节点,此时集合A中存放有节点V0,与节点V0相邻的节点(即与节点V0直接相连的节点)为节点V1、节点V2和节点V4,节点V0与节点V1的路径可以记为[V0,V1],同理,节点V0与节点V2的路径可以记为[V0,V2],节点V0与节点V4的路径可以记为[V0,V4],此时集合2中存储的即为这三条候选路径。以[V0,V1]为例,该路径的时延可以是节点V0到节点V1之间的链路时延,以及节点V1的内部时延之和,即50+15=65ms,以此类推,可以计算出[V0,V2]的路径的时延为10+100=110ms,[V0,V4]的路径的时延为45+5=50ms,由此可知,集合2中最短时延的路径为[V0,V4],此时可将[V0,V4]放入集合1中,将节点V4放入集合A中,节点V4即为节点X。

第二步,查找从节点X出发的边的终点即与节点X相邻的节点(记为节点Y),其中,节点Y是不属于集合A中的节点。为了后续介绍的方便,可以将从节点V0出发经过节点X到达节点Y的路径记为(V0X)Y。

计算从节点V0出发经过节点X到达节点Y的路径的时延。其中,计算方式可以是最短路径树中节点V0到节点X的路径的时延,与从节点X到节点Y这条边的链路时延,以及节点Y的内部时延之和。

接下来需要考察集合2中的候选路径中,是否存在到达节点Y的路径,如果存在,则将该路径的时延和(V0X)Y路径的时延进行比较。如果该路径的时延小于(V0X)Y路径的时延,则在集合2中仍保留该路径,并将(V0X)Y这条路径放入集合3中;如果该路径的时延等于(V0X)Y路径的时延,则可以任意选取其中一条路径保存在集合2中,并将剩余的一条路径放入集合3中;如果该路径的时延大于(V0X)Y路径的时延,则将(V0X)Y保存在集合2中,并将该路径从集合2中移入集合3中。

例如图3a所示,结合上述例子,已经将[V0,V4]放入集合1中,将节点V4放入集合A中,此时节点V4即为节点X,根据图3a所示可知,与节点X相邻的节点为节点V1、节点V3和节点V5,其中节点V0也是与节点V4相邻的节点,但是节点V0已经存放与集合A中,所以节点V0不做考虑,可知节点Y可以是节点V1、节点V3或节点V5。以节点V1作为节点Y为例,此时节点X与节点Y的路径即为节点V4与节点V1的路径,可以记为[V4,V1],从节点V0出发经过节点X到达节点Y的路径即为(V0V4)V1,该路径的时延为最短路径树中节点V0到节点V4的路径的时延,与从节点V4到节点V1这条边的链路时延,以及节点V1的内部时延之和,即50+10+15=75ms。由于在集合2中已经存在到达节点V1的路径[V0,V1],该路径的时延为65ms,由此可知,路径[V0,V1]的时延小于路径(V0V4)V1的时延,因此在集合2中仍保留该路径[V0,V1],并将(V0V4)V1这条路径放入集合3中。

当从节点X出发的边有多条时,则边的终点即节点Y对应的也有多个,对于每一个节点都可以按照第二步的方法进行计算和比较。

一直重复上述两个步骤,直到集合2中的候选路径为空和集合B中的节点为空,则此时说明已经确定出了从第一节点到其他各个节点的转发路径。

例如图3c所示,在网络中具有6个节点,节点V0-V5,假设节点V0为第一节点,利用SPF算法可以确定出从节点V0到其他节点V1-V5的转发路径,从节点V0到节点V1的转发路径为从节点V0直接到节点V1所形成的路径,可以记为[V0,V1],从节点V0到节点V2的转发路径为从节点V0直接到节点V2所形成的路径,可以记为[V0,V2],从节点V0到节点V3的转发路径为从节点V0经过节点V4再到节点V3所形成的路径,可以记为[V0,V4,V3],从节点V0到节点V4的转发路径为从节点V0直接到节点V4所形成的路径,可以记为[V0,V4],从节点V0到节点V5的转发路径为从节点V0经过节点V4再到节点V5所形成的路径,可以记为[V0,V4,V5]。

通过根据节点的平均拥塞情况确定节点的内部时延,在计算转发路径的总时延时充分考虑了节点的内部时延,使得计算出的转发路径的总时延更加贴近该转发路径的实际时延,从而提高了计算转发路径的准确性。

对于一个节点而言,该节点可以具有至少一个接口,其中,该节点中任意两个接口之间可以互连。对于两个节点之间的连接具体可以是通过这两个节点中指定接口进行的连接,即一个节点可以通过该节点的指定的接口与另一个节点的指定接口连接,例如图4a所示,假设节点V0为第一节点,以节点V0和节点V1的连接为例,节点V0具有五个接口,分别为S、T、I、U和D,节点V1具有五个接口,分别为E、F、J、L和V,节点V0与节点V1的连接,具体可以是通过节点V0的接口D与节点V1的接口E建立的连接。

在上述介绍中,一些情况下,一个节点的内部时延可以是根据该节点的平均拥塞情况确定出。但是在网路运行中,一个节点中不同接口之间的拥塞情况可能会存在差距较大的情况,即节点的内部时延由于不同接口之间的拥塞情况的不同,其对应的内部时延不同。例如,假设节点V0为第一节点,节点V0具有五个接口,分别为S、T、I、U和D,接口S与接口U之间的拥塞时延为5ms,接口S与接口T之间的拥塞时延为15ms,由此可知,这两种连接情况产生的拥塞时延存在明显的差距。

因此,除了上述根据节点的平均拥塞情况确定该节点的内部时延的方式之外,对于计算转发路径的总时延的精确要求较高的情况,为了更加准确的体现每个节点在不同路径上的内部时延,可以将各节点之间的连接细化为各节点中入接口与出接口之间的连接,节点的内部时延可以根据该节点中从入接口到出接口之间的拥塞情况确定出,具体的可以将该节点中从入接口到出接口之间产生的拥塞时延作为该节点的内部时延。一个节点的内部时延可以包括多个,每一个内部时延用于标识这个节点从一个入接口到一个出接口之间的拥塞情况。针对一条路径,在该路径上的一个节点由于使用了固定的出入接口,故该节点在该路径上只有一个对应的内部时延,即对应该固定出入接口的内部时延。

其中,节点的入接口和出接口可以是待确定路径中所使用到的节点的接口,例如图4a所示,假设节点V0为第一节点,一条路径为从节点V0的接口S出发,经过接口T,到达节点V2的接口C,在该条路径中,接口S即为节点V0的入接口,接口T即为节点V0的出接口。

当节点的内部时延为根据该节点中从入接口到出接口之间的拥塞情况确定时,则相应的,针对从第一节点到第二节点的转发路径的确定具体包括:针对从所述第一节点的目标入接口到第二节点的目标出接口的转发路径的确定。

目标入接口可以是转发路径中第一节点接收所需转发报文所使用的入接口,目标出接口可以是第二节点将这个报文向外转发所使用的出接口,例如图4a所示,在网络中具有6个节点,节点V0-V5,假设节点V0为第一节点,节点V3为第二节点,需要确定从V0的接口S到V3的接口Q的转发路径时,V0的接口S即为目标入接口,V3的接口Q即目标出接口。

以一条待确定路径为例,针对所述待确定路径中的节点,一个节点的内部时延可以用于标识这个节点在所述待确定路径中所使用的入接口和出接口之间的拥塞情况,该条待确定路径的总时延可以由该条待确定路径中所包括的各个链路的链路时延以及所包括的各个节点的内部时延相加得到。

例如图4b所示,假设节点V0为第一节点,节点V3为第二节点,节点V0的接口S为目标入接口,节点V3的接口Q为目标出接口,以一条待确定路径为从节点V0的接口S出发,经过接口T,与节点V2的接口C连接,再经过节点V2的接口H,与节点V3的接口R连接,最终达到节点V3的接口Q的一条路径为例,在该条待确定路径中,接口S为节点V0的入接口,接口T为节点V0的出接口,节点V0的内部时延可以是接口S到接口T的拥塞时延,同理,接口C为节点V2的入接口,接口H为节点V2的出接口,节点V2的内部时延可以是接口C到接口H的拥塞时延;接口R为节点V3的入接口,接口Q为节点V3的出接口,节点V3的内部时延可以是接口R到接口Q的拥塞时延。则相应的该条待确定路径的总时延可以是节点V0、节点V2和节点V3的链路时延与节点V0、节点V2和节点V3各自的内部时延之和,其中节点V0与节点V2的链路时延具体可以是从接口T到接口C的链路时延,同理,节点V2与节点V3的链路时延具体可以是从接口H到接口R的链路时延。故此,该条待确定路径的总时延具体可以是接口S到接口T的拥塞时延、接口C到接口H的拥塞时延、接口R到接口Q的拥塞时延以及接口T到接口C的链路时延以及接口H到接口R的链路时延之和。

以此类推,可以计算出从第一节点(V0)的目标入接口S到第二节点(V3)的目标出接口Q为止的各条待确定路径的总时延,从而可以选取出总时延最小的待确定路径作为从节点V0的目标入接口S到节点V3的目标出接口Q的转发路径,例如图4b所示,通过将从节点V0的目标入接口S到节点V3的目标出接口Q为止的各条待确定路径的总时延进行比较,确定出的转发路径为从接口S出发,经过接口T,再经过接口C,再经过接口H,再经过接口R,最终到达接口Q的路径,该转发路径的总时延为15+10+10+15+10=60ms。

类比于上述介绍中从第一节点的目标入接口到第二节点的目标出接口的转发路径的确定方法,可以确定出从第一节点的目标入接口到其他各个节点的目标出接口的转发路径。

通过根据节点的入接口和出接口之间的拥塞情况确定节点的内部时延,可以更加准确的反映出节点的内部时延,在计算转发路径的总时延时充分考虑节点的内部时延,使得计算出的转发路径的总时延可以更加准确,从而进一步提高了计算转发路径的准确性。

除此之外,在本发明实施例中,当需要确定从第一节点的目标入接口到其他各个节点的目标出接口的转发路径时,最短路径算法具体可以是SPF算法,利用该算法可以实现从第一节点的目标入接口到其他各个节点的目标出接口的转发路径的确定。

在利用SPF算法确定转发路径时,需要将网络中的转发路径,抽象成节点和节点之间的链路。为了可以使用SPF算法进行从第一节点的目标入接口到其他各个节点的目标出接口的转发路径的确定,可以将节点的入接口和出接口作为虚拟节点。具体的,针对从所述第一节点的目标入接口到第二节点的目标出接口的转发路径的确定,在从与第一节点的相邻节点开始,依据最短路径算法确定待确定路径之前,包括:

将节点的入接口和出接口作为虚拟节点;

根据所述多个节点之间的拓扑信息以及虚拟节点间的连接关系,更新所述多个节点之间的拓扑信息。

其中,将节点的入接口和出接口作为虚拟节点可以是将所述多个节点的所有出接口和入接口均作为虚拟节点,即可以将一个节点包含的所有接口都作为虚拟节点,例如,节点V0具有五个接口,分别为S、T、I、U和D,可以将接口S作为虚拟节点S,可以将接口T作为虚拟节点T,可以将接口I作为虚拟节点I,可以将接口U作为虚拟节点U,可以将接口D作为虚拟节点D。

例如图4c所示,将各个节点的接口作为虚拟节点,图4c中实线即为原来的所述多个节点之间的拓扑信息,各实线上的权重可以是接口之间的链路时延,图4c中虚线即为每个节点内部任意两个接口之间的连接关系,各虚线上的权重就可以是所对应的接口之间的拥塞时延,更新后的多个节点之间的拓扑信息包括图中的实线和虚线。

接下来将对通过SPF算法确定从第一节点的目标入接口到其他各个节点的目标出接口的转发路径的确定方式展开介绍。

在利用SPF算法计算时,可以将以目标入接口(虚拟节点S)为根,到其他各个目标出接口的转发路径组成的有向连通图称作最短时延路径树。在利用SPF算法确定转发路径之前,可以将网络中的虚拟节点分为两个集合,集合A中存放的是已经选入最短时延路径树的虚拟节点,集合B中存放的是网络中剩余的其他虚拟节点。对于路径可以分为三个集合,集合1作为确定路径集合,存放的是已经选入最短时延路径树的路径,集合1中最终存放的路径即为所需确定的转发路径。集合2作为候选路径集合,存放的是下一跳加入最短时延路径树的路径,该路径可以是待确定路径。集合3作为剩余路径集合,存放的是剩余的其他路径,该路径可以是废弃的路径或者是还未考虑的路径。

第一步,可以从集合2中选择一条最短时延的路径,放入最短时延路径树即放入集合1中,相应的,这条路径的终点对应的虚拟节点(记为虚拟节点X)应从集合B中移入集合A。一条路径的时延可以是该路径经过的虚拟节点之间的链路时延或者拥塞时延,当两个虚拟节点属于不同的两个节点时,这两个虚拟节点之间的路径的时延可以是这两个虚拟节点之间产生的链路时延,当两个虚拟节点属于一个节点的内部接口时,这两个虚拟节点之间的路径的时延可以是这两个虚拟节点之间产生的拥塞时延。

需要说明的是,由于在转发设备内部转发不会出现跳转的情况,因此如果新加入集合I的路径为同一节点中两个虚拟节点连接的路径,则向集合2中添加候选路径时排除该节点内部的其他路径。

例如图4c所示,假设接口S为第一节点V0的目标入接口,此时集合A中存放有虚拟节点S,与虚拟节点S相邻的虚拟节点(即与虚拟节点S直接相连的虚拟节点)为虚拟节点U、虚拟节点D、虚拟节点I和虚拟节点T,虚拟节点S与虚拟节点U的路径可以记为[S,U],同理,虚拟节点S与虚拟节点D的路径可以记为[S,D],虚拟节点S与虚拟节点I的路径可以记为[S,I],虚拟节点S与虚拟节点T的路径可以记为[S,T],此时集合2中存储的即为这四条候选路径。以[S,T]为例,该路径的时延可以为从虚拟节点S到虚拟节点T的拥塞时延即5ms,以此类推,可以得出[S,U]的路径的时延为5ms,[S,D]的路径的时延为5ms,[S,I]的路径的时延为10ms,由此可知,集合2中最短时延的路径为[S,U]和[S,D],对于存在多个最短时延的路径的情况,可以先任意选取其中的一个例如[S,U]放入集合1中,将虚拟节点U放入集合A中,虚拟节点U即为虚拟节点X。

第二步,查找从虚拟节点X出发的边的终点即为与虚拟节点X相邻的虚拟节点(记为虚拟节点Y),其中,虚拟节点Y是不属于集合A中的虚拟节点。为了后续介绍的方便,可以将从虚拟节点S出发经过虚拟节点X到达虚拟节点Y的路径记为(SX)Y。

计算从虚拟节点S出发经过虚拟节点X到达虚拟节点Y的路径的时延。其中,计算方式可以是最短路径树中虚拟节点S到虚拟节点X的路径的时延,与从虚拟节点X到虚拟节点Y这条路径的时延之和。

接下来需要考察集合2中的候选路径中,是否存在到达虚拟节点Y的路径,如果存在,则将该路径的时延和(SX)Y的路径时延进行比较。如果该路径的时延小于(SX)Y的路径时延,则在集合2中仍保留该路径,并将(SX)Y这条路径放入集合3中;如果该路径的时延等于(SX)Y的路径时延,则可以任意选取其中一条路径保存在集合2中,并将剩余的一条路径放入集合3中;如果该路径的时延大于(SX)Y的路径时延,则将(SX)Y保存在集合2中,并将该路径从集合2中移入集合3中。

例如图4c所示,结合上述例子,已经将[S,U]放入集合1中,将虚拟节点U放入集合A中,此时虚拟节点U即为虚拟节点X,由于在转发设备内部转发不会出现跳转的情况,例如同一节点内不会出现S->U->D的情况,因此如果新加入集合I的路径为同一节点中两个虚拟节点连接的路径,则向集合2中添加候选路径时排除该节点内部的其他路径,由于[S,U]属于同一节点中两个虚拟节点连接的路径,因此不会向集合2中添加该节点内部的其他路径。

当从虚拟节点X出发的边有多条时,则边的终点即虚拟节点Y对应的也有多个,对于每一个虚拟节点都可以按照第二步的方法进行计算和比较。

一直重复上述两个步骤,直到集合2中的候选路径为空和集合B中的虚拟节点为空,则此时说明已经确定出了从虚拟节点S到其他各个虚拟节点的最短时延的转发路径。

例如图4d所示,在网络中具有22个虚拟节点,假设虚拟节点S为第一节点V0的目标入接口,利用SPF算法可以确定出从虚拟节点S到其他各个虚拟节点的转发路径。以从虚拟节点S到虚拟节点Q的转发路径为例,该条转发路径为从虚拟节点S经过虚拟节点T,经过虚拟节点C,经过虚拟节点H,经过虚拟节点R最终达到虚拟节点Q的一条路径,这条路径即为从虚拟节点S到虚拟节点Q为止的所有待确定路径中总时延最小的转发路径。

通过将网络中的多个节点的所有出接口和入接口作为虚拟节点,从而可以利用SPF算法,快速准确的确定出从一个虚拟节点到达其他各个虚拟节点的最短总时延的转发路径。

本发明的设备实施例

图5为本发明实施例提供的一种转发路径确定装置的装置结构图,应用于网络中的多个节点中,所述多个节点包括第一节点和第二节点,针对从所述第一节点到第二节点的转发路径的确定,所述转发路径确定装置500包括收集单元501和确定单元502:

所述收集单元501,用于收集所述多个节点各自的内部时延,一个节点的内部时延为根据这个节点由于处理报文导致的拥塞情况所确定的。

所述确定单元502,用于在根据所述多个节点确定从所述第一节点到第二节点间转发路径的过程中,从与第一节点的相邻节点开始,依据最短路径算法确定待确定路径,所述待确定路径为一段从所述第一节点开始的,包括至少两个节点的转发路径;其中,将所述待确定路径中节点的内部时延作为所述待确定路径的总时延的一部分。

所述确定单元502还用于将从第一节点至第二节点为止的待确定路径中总时延最小的确定为从所述第一节点到第二节点的转发路径。

可选的,在所述多个节点中,一个节点的内部时延用于标识这个节点的平均拥塞情况。

可选的,在所述多个节点中,一个节点的内部时延用于标识这个节点从入接口到出接口之间的拥塞情况。

可选的,所述针对从所述第一节点到第二节点的转发路径的确定,具体包括针对从所述第一节点的目标入接口到第二节点的目标出接口的转发路径的确定,所述确定单元包括标识子单元和相加子单元:

所述标识子单元,用于针对所述待确定路径中的节点,一个节点的内部时延用于标识这个节点在所述待确定路径中所使用的入接口和出接口之间的拥塞情况。

所述相加子单元,用于根据所述待确定路径中所包括的各个链路的链路时延以及所包括的各个节点的内部时延相加得到所述待确定路径的总时延。

可选的,所述装置还包括虚拟单元和更新单元:

所述虚拟单元,用于将节点的入接口和出接口作为虚拟节点。

所述更新单元,用于根据所述多个节点之间的拓扑信息以及虚拟节点间的连接关系,更新所述多个节点之间的拓扑信息。

可选的,所述虚拟单元具体用于将所述多个节点的所有出接口和入接口均作为虚拟节点。

图5为从网络设备侧描述本发明技术方案的装置实施例,图5所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,在根据多个节点确定其中两个节点,即从第一节点到第二节点间转发路径的过程中,可以预先获取该多个节点用于标识拥塞情况的内部时延,从而在依据最短路径算法计算待确定路径时,待确定路径的总时延中除了包括链路时延外,还进一步的包括了待确定路径中各个节点的内部时延,由此确定的出的从第一节点至第二节点为止的转发路径将是考虑了内部时延后的最小总时延路径,将标识了拥塞情况的内部时延引入到计算转发路径的过程中,提高了计算转发路径的准确性,增加了网络的资源利用率。

本发明实施例中提到的第一节点的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-onlymemory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

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

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