路由选择的方法和设备的制作方法

文档序号:7658545阅读:139来源:国知局
专利名称:路由选择的方法和设备的制作方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种路由选择的方法和设备。
背景技术
组播是现有网络通信技术领域中常见的一种数据分发技术,IP(InternetProtocol,网络协议)组播是指在IP网络中将数据包以尽力传送的形式发送到网络中的某个节点子集,这个节点子集也称为组播组,组播的基本思想是组播源只发送一份数据,这份数据中的目的地址为组播组地址,而组播组中的所有接收者都可以接收到同样的数据拷贝,并且只有组播组的成员才能接收该组播数据。
组播路由协议的标准中规定,如果组播接收设备在到组播源的路由中存在多条等价路由,则与该组播接收设备相连的路由器或交换机等网络设备从该些等价路由中选择下一跳IP地址较大的路由,做为组播接收设备和组播源之间进行数据传输的路由。如图1所示,在该网络结构中,组播接收设备到组播源的路由中包括两条等价路由,一条是下一跳为1.1.1.2的路由,另一条是下一跳为2.2.2.2的路由。所谓等价路由是指组播接收设备通过下一跳为1.1.1.2的路由和通过下一跳为2.2.2.2的路由发送数据到组播源的开销相同。则根据组播路由协议的标准,连接组播接收设备的网络设备1会从该两条等价路由中选择下一跳IP地址较大的路由,也即下一跳为2.2.2.2的路由做为组播接收设备和组播源之间进行数据传输的当前使用路由,并向下一跳IP地址为2.2.2.2的网络设备2发送加入报文,用来给网络设备2添加出接口,从而维护组播转发表项。
在实际应用中,图1中所示连接网络设备2和网络设备4的网络发生故障,从而导致组播流量不通的情况时有发生。其中,导致网络发生故障的原因有多种,例如链路拥塞;或者网络中的网络设备之间采用链路聚合的方式相连,聚合链路产生环路故障造成广播风暴;再或者网络中的网络设备之间通过光纤连接时,光纤发生单通故障等。以上该些故障都会导致一段时间内路由存在但实际链路已经不通的情况,因为在网络中,网络设备是通过定时发送hello报文来维护各自的邻接关系。例如当上述连接网络设备2和网络设备4的网络发生故障,导致网络设备2无法接收到网络设备4发送的hello报文时,假设规定重建邻接关系的时间为40s(秒),则在40s之后网络设备2仍然无法接收到网络设备4的hello报文,就会自动丢弃与网络设备4的邻接关系,重新计算新的路由,而计算新路由的时间也需要至少10s。
由上述可知,网络发生故障导致组播流量中断,网络设备2要在至少40s之后才能获知这一状况的发生,因此在前40s的时间内会继续保留从网络设备2到网络设备4的路由,但是实际的链路已经不通了。而且从网络发生故障到计算出新的路由恢复组播流量的时间至少也需要50s的时间,从而造成组播流量中断时间较长,无法快速恢复的问题。

发明内容
本发明实施例提供一种路由选择的方法和设备,以解决现有技术中由于网络故障导致流量中断时,无法快速恢复流量的问题。
为达到上述目的,本发明的实施例提供了一种路由选择的方法,包括通过到目的地址的当前使用路由向目的地址发送检测报文,检测所述路由是否发生故障;如果是,则从到目的地址的等价路由中重新进行路由的选择。
其中,所述通过到目的地址的当前使用路由向目的地址发送检测报文,检测所述路由是否发生故障,包括通过所述当前使用路由向目的地址发送检测报文;若接收到所述目的地址返回的响应,则所述当前使用路由没有发生故障;否则,所述当前使用路由发生故障。
其中,所述通过到目的地址的当前路由向目的地址发送检测报文,检测所述路由是否发生故障,包括设置预定值;
通过所述当前使用路由向目的地址连续发送检测报文;若连续接收到所述目的地址返回响应的次数达到或超过所述预定值,则所述当前使用路由没有发生故障;否则,所述当前使用路由发生故障。
其中,所述通过到目的地址的当前使用路由向目的地址发送检测报文之前,包括从路由表中选择到目的地址的等价路由信息,组成等价路由集合。
其中,所述从路由表中选择到目的地址的等价路由信息,组成等价路由集合,进一步包括将所述等价路由信息按照下一跳地址从大到小的顺序进行排列。
其中,所述等价路由信息包括目的地址、下一跳和接口信息。
其中,所述从到目的地址的等价路由中重新进行路由的选择,包括从所述到目的地址的等价路由中选择路由进行检测;当检测到无故障的路由时,将所述无故障的路由确定为到目的地址的新的当前使用路由。
本发明实施例还提供了一种路由选择的设备,包括路由检测单元和路由重选单元,所述路由检测单元,用于通过到目的地址的当前使用路由向组播源发送检测报文,检测所述路由是否发生故障;所述路由重选单元,连接所述路由检测单元,用于所述到目的地址的当前使用路由发生故障时,从到目的地址的等价路由中重新进行路由的选择。
其中,所述路由检测单元包括检测报文发送子单元、响应接收子单元和判断子单元,所述检测报文发送子单元,用于通过到目的地址的当前使用路由向目的地址发送检测报文;所述响应接收子单元,连接所述检测报文发送子单元,用于接收所述目的地址返回的响应;所述判断子单元,连接所述响应接收子单元,用于判断所述当前使用路由是否发生故障,若所述响应接收子单元接收到所述目的地址返回的响应,则判断所述当前使用路由无故障;否则,判断所述当前使用路由发生故障。
其中,所述路由检测单元还包括预定值设置子单元,连接所述判断子单元,用于设置预定值。
其中,所述设备还包括信息存储单元,连接所述路由检测单元和所述路由重选单元,用于存储到目的地址的等价路由信息。
其中,所述设备还包括排序单元,连接所述信息存储单元,用于将所述信息存储单元中存储的等价路由信息按照下一跳地址从大到小的顺序进行排列。
与现有技术相比,本发明实施例通过检测报文对到目的地址的路由进行检测,当检测到路由发生故障时,及时切换路由,从而达到快速恢复流量的目的。


图1是现有技术中组播等价路由的网络结构示意图;图2是本发明实施例一种路由选择的方法流程图;图3是本发明实施例一种路由选择的设备结构示意图。
具体实施例方式
下面结合附图和具体实施例进一步详细说明。
本发明实施例通过发送检测报文对组播接收设备到组播源的路由进行检测,当检测到路由发生故障时,及时切换到新的等价路由进行检测,直到找到无故障的路由,从而达到快速恢复组播流量的目的。
如图2所示,图2为本发明实施例一种路由选择的方法流程图,该方法包括以下步骤步骤S201,通过到目的地址的当前使用路由向目的地址发送检测报文,检测该路由是否发生故障。
在本发明的实施例中,目的地址所代表的设备即为组播源。与组播接收设备连接的网络设备通过到组播源的当前使用路由向组播源发送检测报文,由于在路由信息中存储的组播源目的地址一般都为组播源连接的网络设备地址,因此本发明实施例中与组播接收设备相连接的网络设备向组播源发送检测报文,也即向组播源连接的网络设备发送检测报文。该检测报文可为实际应用中用来检测链路状态的ping包,当然本发明实施例的检测报文并不局限于用来检测链路状态的ping包,也包括其他可用来进行链路状态检测的报文。
向组播源连接的网络设备发送检测报文之后,若与组播接收设备连接的网络设备能够接收到组播源连接的网络设备返回的响应,则判断该路由无故障;若无法接收到响应,则判断该路由发生故障。
步骤S202,如果检测该路由发生故障,则从到目的地址的等价路由中重新进行路由的选择。
根据检测结果,若被检测的当前使用路由发生故障,则组播接收设备连接的网络设备从到组播源的等价路由中重新选择除了被检测发生故障的当前路由之外的其他等价路由,并对所选等价路由进行检测。选择等价路由,通过所选的等价路由向组播源连接的网络设备发送检测报文,若能够接收到组播源连接的网络设备返回的响应,则判断该等价路由无故障,确定该等价路由为新的当前使用路由;若无法接收到组播源连接的网络设备返回的响应,则判断该等价路由存在故障,继续选择其他未选到的等价路由进行检测,直到检测到无故障的等价路由。当检测到无故障的等价路由,则将该等价路由确定为组播接收设备到组播源的当前使用路由,并通过该等价路由进行组播接收设备和组播源之间的数据传输。
基于步骤S202中,组播接收设备连接的网络设备需要从等价路由中选择路由进行检测,因此可在步骤S201之前从组播接收设备连接的网络设备路由表中选择出到组播源的等价路由,组成等价路由集合,并将该集合存储在组播接收设备连接的网络设备中,方便路由的选择。与组播接收设备连接的网络设备从该网络设备的路由表中查找到组播源的等价路由信息,由该些等价路由信息组成到组播源的等价路由集合,并将该等价路由集合存储在该网络设备中。若查找到的等价路由为多条,则将该些等价路由相关信息按照下一跳地址从大到小的顺序进行排列,当然也可不进行顺序排列。
由于根据组播路由协议的标准,若在组播接收设备到组播源的路由中存在多条等价路由,则从该些等价路由中选择下一跳地址最大的路由做为组播接收设备和组播源之间进行数据传输的路由,因此在路由没有发生故障的情况下,组播接收设备和组播源之间进行数据传输的路由一般都是使用该些等价路由中下一跳地址最大的路由。将等价路由集合中的各等价路由按照下一跳地址从大到小的顺序进行排列,在选择到组播源的当前使用路由时,可直接选择排列在第一位的等价路由,方便了路由的选择,并且在进行路由切换时,也可按照下一跳地址从大到小的顺序进行切换。
在步骤S202中从到组播源的等价路由中重新进行路由的选择时,存在一种特殊情况,即组播接收设备连接的网络设备检测完所有的等价路由仍然无法检测到无故障的路由。这种情况下,组播接收设备连接的网络设备重新从该网络设备的路由表中查找到组播源的等价路由,并根据路由表中到组播源的等价路由信息对等价路由集合中的等价路由信息进行更新。将路由表中存在,但等价路由集合中不存在的等价路由信息存储到等价路由集合中,并将等价路由集合中的等价路由信息按照下一跳地址从大到小的顺序进行排列;将路由表中不存在,但等价路由集合中存在的等价路由信息从等价路由集合中删除。然后,组播接收设备连接的网络设备从更新的等价路由集合中选择路由继续进行检测,直到检测到无故障的路由。
重新从组播接收设备连接的网络设备路由表中查找到组播源的等价路由,并根据路由表中到组播源的等价路由信息对等价路由集合中的等价路由信息进行更新,是考虑到由于网络拓扑结构的变化,可能会导致组播接收设备到组播源的路由发生变化,而路由的变化会直接导致等价路由表中路由信息的变化,例如路由的添加或删除。如果路由添加,则需要对新添加的路由进行检测;如果路由删除,则不需继续对该删除的路由继续进行检测,从等价路由集合中删除该路由的信息。
下面以检测报文为ping包的情况为例,并结合图1所示网络结构,对本发明实施例路由选择的方法做进一步阐述。在图1所示的网络结构中,与组播接收设备相连的网络设备1上增加了一项对组播源的ping功能,所谓ping功能即为一种常见的用于检测网络连通性的功能。利用网络设备1的ping功能检测网络连通性,也即路由是否发生故障的原理为组播接收设备连接的网络设备1通过选定的路由向组播源连接的网络设备4发送ping包,网络设备4接收到该ping包后,沿着反向的路由向网络设备1返回响应,若网络设备1接收到网络设备4返回的响应,则表明网络连接状态良好,也即该选定的路由无故障。
首先,网络设备1从其维护的路由表中同步查找目的地址为组播源地址的路由,并将查找到的路由信息存储在新建立的组播源等价路由表中。由于网络设备1维护的路由表中一般都存储与组播源相连的网络设备4的地址做为目的地址,因此上述所指的组播源地址在路由表中即为与该组播源相连的网络设备4的地址。
结合图1所示,与组播源连接的网络设备4的地址为3.3.3.3,网络设备1查找其路由表中目的地址为3.3.3.3的路由,查找到了两条路由,一条是下一跳为1.1.1.2的路由,另一条是下一跳为2.2.2.2的路由,路由表中的该两条目的地址相同的路由即为等价路由。网络设备1从路由表中提取上述两条路由的相关信息,包括Destination/Mask(目的地址/子网掩码)、NextHop(下一跳)、Interface(接口),然后该些信息存储在新建立的组播源等价路由表中。由于根据组播路由协议的标准,若在组播接收设备到组播源的路由中存在多条等价路由,则从该些等价路由中选择下一跳地址较大的路由做为组播接收设备和组播源之间进行数据传输的路由,因此在将等价路由信息存储到组播源等价路由表中时,可按照下一跳地址从大到小的顺序排列,从而可保证网络设备1进行未失效路由检测时,首先检测下一跳地址较大的路由,并且在进行路由切换时,也可按照下一跳地址从大到小的顺序进行切换。建立的等价路由表如下表所示

下一跳为2.2.2.2的路由为组播接收设备和组播源之间进行数据传输的当前使用路由,则当组播源等价路由表建立好之后,网络设备1从该组播源等价路由表中选择当前使用路由做为待检测路由,该当前使用路由即下一跳为2.2.2.2的路由,也是到目的地址3.3.3.3的等价路由中下一跳地址最大的路由。网络设备1通过下一跳为2.2.2.2的路由向目的地址3.3.3.3发送ping包,目的地址3.3.3.3即为与组播源相连接的网络设备4。由于路由的无故障是一种持续的状态,因此只有持续的通过待检测路由向目的地址发送ping包,才能对该路由的状态进行有效跟踪,此处的持续发送ping包也即每相隔一定的时间就发送一次ping包,例如每相隔1s左右的时间发送一次。
另外,在发送ping包之前可在网络设备1上预先设置一个可选的预定值,也即参数x,以此做为判断路由是否发生故障的标准。当网络设备1连续至少x次发送ping包都能接收到组播源的响应,也即通常所说的能够ping通时,则判断该待检测的路由无故障;当网络设备1无法连续x次ping通时,则判断该待检测的路由产生故障。例如设置参数为3,则当网络设备1能够至少连续3次ping通时,判断该待检测的路由无故障;当网络设备1只能连续1次、2次ping通或根本无法ping通时,则判断该待检测的路由产生故障。在设置上述参数x时,可根据网络的实际情况进行选择,例如当网络中流量较小的时候,可将参数x设置为较小的值;当网络中流量较大的时候,可将参数x设置为较大的值。因为在网络中流量较小的时候,网络故障的发生率相对较低,在网络中流量较大的时候,网络故障的发生率相对较高。
根据ping包的检测结果,若下一跳为2.2.2.2的路由无故障,则网络设备1不用进行任何调整,正常使用该下一跳为2.2.2.2的路由进行数据的传输;若下一跳为2.2.2.2的路由产生故障,则网络设备1使该下一跳为2.2.2.2的路由无效,并切换到组播源等价路由表中的下一条路由,也即下一跳为1.1.1.2的路由继续进行检测。网络设备1通过该下一跳为1.1.1.2的路由向目的地址3.3.3.3连续发送ping包,目的地址3.3.3.3即为与组播源相连接的网络设备4,若能够至少连续x次ping通,则判断该下一跳为1.1.1.2的路由无故障;若无法连续x次ping通,则判断该下一跳为1.1.1.2的路由产生故障。
若根据ping包的检测结果,下一跳为1.1.1.2的路由为无故障路由,则网络设备1重新选择该下一跳为1.1.1.2的路由为路由接收设备和组播源之间进行数据传输的路由。网络设备1向下一跳地址为1.1.1.2的网络设备3发送加入报文,并在该网络设备1中建立以1.1.1.2为上游设备接口的组播路由表项。网络设备3接收到该加入报文后,在该网络设备3中增加一个到网络设备1的出接口,并更新该网络设备3所维护的路由表,然后,网络设备3将该加入报文通过其上游设备继续上报,并最终上报到组播源连接的网络设备4。于是即建立了组播接收设备和组播源之间的新路由,组播接收设备和组播源之间通过该新路由进行数据的传输。此后,即使下一跳为2.2.2.2的路由恢复正常成为无故障路由,网络设备1也不必重新切换到下一跳为2.2.2.2的路由,仍然使用下一跳为1.1.1.2的路由,如此可减少由于路由的不断切换造成的流量暂时中断。
若根据ping包的检测结果,下一跳为1.1.1.2的路由为存在故障的路由,则网络设备1重新从其维护的路由表中同步查找目的地址为3.3.3.3的路由,并根据查找的路由信息对组播源等价路由表中的路由信息进行更新。若更新后的组播源等价路由表中的路由信息没有发生变化,则网络设备1重新按照等价路由表中的排列顺序对各路由进行检测,直到检测到无故障路由。等网络设备1检测到无故障路由后,将该无故障路由确定为组播接收设备和组播源之间进行数据传输的当前路由,并执行与前述相同的发送加入报文、修改路由表项等操作。
本发明实施例还提供了一种路由选择的设备,如图3所示,包括路由检测单元100和路由重选单元200。其中,路由检测单元100,用于通过到组播源的当前使用路由向组播源发送检测报文,检测该路由是否发生故障。路由重选单元200,连接路由检测单元100,用于到组播源的当前使用路由发生故障时,从到组播源的等价路由中重新进行路由的选择。
其中,路由检测单元100包括检测报文发送子单元101、响应接收子单元102和判断子单元103。检测报文发送子单元101,用于通过到组播源的当前使用路由向组播源发送检测报文。响应接收子单元102,连接检测报文发送子单元101,用于接收组播源返回的响应。判断子单元103,连接响应接收子单无102,用于判断当前使用路由是否发生故障,若响应接收子单元102接收到组播源返回的响应,则判断当前使用路由无故障;否则,判断当前使用路由发生故障。
路由检测单元100还包括预定值设置子单元104,连接判断子单元103,用于设置预定值,以此做为判断子单元103判断路由是否产生故障的标准。检测报文发送子单元101向组播源连续发送检测报文,若响应接收子单元102连续接收到组播源返回响应的次数达到或超过设置的预定值,则判断该路由无故障;否则,判断该路由产生故障。
本发明的另一实施例在上述设备的基础上增设了信息存储单元300和排序单元400。其中,信息存储单元300,连接路由检测单元100和路由重选单元200,用于存储到组播源的等价路由信息。排序单元400,连接信息存储单元300,用于将信息存储单元300中存储的等价路由信息按照下一跳地址从大到小的顺序进行排列。
综上所述,本发明实施例提供的路由选择的方法和设备,通过检测报文对组播接收设备到组播源的路由进行检测,当检测到路由发生故障时,及时切换路由,从而达到快速恢复组播流量的目的。本发明实施例的网络设备为路由器或交换机等其他网络设备,并且本发明实施例不受路由协议和组播路由协议的限制,本发明实施例的路由协议可为OSPF(Open Shortest Path First,开放最短路径优先)协议,也可为ISIS(Intermediate System-to-IntermediateSystem,中间系统)协议或其他路由协议;本发明实施例的组播路由协议可为PIM-SM(Protocol Independent Multicast-Sparse Mode,独立组播协议-稀疏模式),也可为PIM-DM(Protocol Independent Multicast-Dense Mode,独立组播协议-密集模式)或其他组播路由协议。另外,以上所述的本发明实施例是针对组播路由进行的检测和切换,当然,本发明实施例的路由检测和切换方法并不仅仅局限于组播路由,对于单播路由也同样适用。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种路由选择的方法,其特征在于,包括以下步骤通过到目的地址的当前使用路由向目的地址发送检测报文,检测所述路由是否发生故障;如果是,则从到目的地址的等价路由中重新进行路由的选择。
2.如权利要求1所述路由选择的方法,其特征在于,所述通过到目的地址的当前使用路由向目的地址发送检测报文,检测所述路由是否发生故障,包括通过所述当前使用路由向目的地址发送检测报文;若接收到所述目的地址返回的响应,则所述当前使用路由没有发生故障;否则,所述当前使用路由发生故障。
3.如权利要求1所述路由选择的方法,其特征在于,所述通过到目的地址的当前路由向目的地址发送检测报文,检测所述路由是否发生故障,包括设置预定值;通过所述当前使用路由向目的地址连续发送检测报文;若连续接收到所述目的地址返回响应的次数达到或超过所述预定值,则所述当前使用路由没有发生故障;否则,所述当前使用路由发生故障。
4.如权利要求1所述路由选择的方法,其特征在于,所述通过到目的地址的当前使用路由向目的地址发送检测报文之前,包括从路由表中选择到目的地址的等价路由信息,组成等价路由集合。
5.如权利要求4所述路由选择的方法,其特征在于,所述从路由表中选择到目的地址的等价路由信息,组成等价路由集合,进一步包括将所述等价路由信息按照下一跳地址从大到小的顺序进行排列。
6.如权利要求4或5所述路由选择的方法,其特征在于,所述等价路由信息包括目的地址、下一跳和接口信息。
7.如权利要求1所述路由选择的方法,其特征在于,所述从到目的地址的等价路由中重新进行路由的选择,包括从所述到目的地址的等价路由中选择路由进行检测;当检测到无故障的路由时,将所述无故障的路由确定为到目的地址的新的当前使用路由。
8.一种路由选择的设备,其特征在于,包括路由检测单元和路由重选单元,所述路由检测单元,用于通过到目的地址的当前使用路由向组播源发送检测报文,检测所述路由是否发生故障;所述路由重选单元,连接所述路由检测单元,用于所述到目的地址的当前使用路由发生故障时,从到目的地址的等价路由中重新进行路由的选择。
9.如权利要求8所述路由选择的设备,其特征在于,所述路由检测单元包括检测报文发送子单元、响应接收子单元和判断子单元,所述检测报文发送子单元,用于通过到目的地址的当前使用路由向目的地址发送检测报文;所述响应接收子单元,连接所述检测报文发送子单元,用于接收所述目的地址返回的响应;所述判断子单元,连接所述响应接收子单元,用于判断所述当前使用路由是否发生故障,若所述响应接收子单元接收到所述目的地址返回的响应,则判断所述当前使用路由无故障;否则,判断所述当前使用路由发生故障。
10.如权利要求8所述路由选择的设备,其特征在于,所述路由检测单元还包括预定值设置子单元,连接所述判断子单元,用于设置预定值。
11.如权利要求8所述路由选择的设备,其特征在于,所述设备还包括信息存储单元,连接所述路由检测单元和所述路由重选单元,用于存储到目的地址的等价路由信息。
12.如权利要求11所述路由选择的设备,其特征在于,所述设备还包括排序单元,连接所述信息存储单元,用于将所述信息存储单元中存储的等价路由信息按照下一跳地址从大到小的顺序进行排列。
全文摘要
本发明公开了一种路由选择的方法,包括通过到目的地址的当前使用路由向目的地址发送检测报文,检测该路由是否发生故障;如果是,则从到目的地址的等价路由中重新进行路由的选择。本发明还提供了一种路由选择的设备,通过检测报文对到目的地址的路由进行检测,当检测到路由发生故障时,及时切换路由,从而达到快速恢复流量的目的。
文档编号H04L12/26GK101075970SQ200710130399
公开日2007年11月21日 申请日期2007年7月19日 优先权日2007年7月19日
发明者沈岭 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1