专利名称:一种避免故障恢复后出现环路的方法和系统的制作方法
技术领域:
本发明涉及网络通信技术领域,特别涉及一种避免故障恢复后出现环路的方法和系统。
背景技术:
由于通信网络运营商的竞争重点已经从骨干网转向了城域网,建立高效经济的支持多业务的城域传送网已成为各大运营商的共同目标。弹性分组环(RPR,Resilient Packet Ring)技术因其具有众多优势,逐渐走进城域传送网的领域,并成为热点之一。
RPR技术是为了满足基于分组城域网的要求而设计的新型网络体系结构和技术;是一种由分组交换节点组成的环形网络,相邻的节点通过一对光纤连接;其网络拓扑是基于两个相反方向传输的环。
其中,环形网络上的分组交换节点又分为跨环节点和非跨环节点。非跨环节点,是多RPR环相交时,在RPR环上,但没有处于环交点的RPR设备,有三种工作状态正常状态normal,环回状态wrap,以及直通状态passthrough。跨环节点,是多RPR环相交时,处于环交点的RPR设备,当跨环节点处理跨环业务转发时处于主用master状态。
虽然RPR具有带宽的有效复用、快速的环保护倒换功能、拓扑的自动发现等很多的技术优点,但是随着科学技术的不断发展,人们对技术的要求就更高,在目前的RPR桥通信技术中,还有些不足之处,下面将对这些不足之处进行说明。
RPR桥设备通过Ethernet Over RPR的方式承载二层以太网报文,使用RPR扩展帧在RPR环上转发。如图1所示,图1为现有技术RPR桥环网络通信示意图。由于RPR上承载的是二层以太网报文,如果不对两个跨环节点进行控制的话,则在两个跨环节点会出现环路,很容易出现广播风暴。
当前已经存在能够防止二层网络形成环路的问题通过生成树协议(STP,Spanning Tree Protocol)、或者快速生成树协议(RSTP,RapidSpanning Tree Protocol)进行链路裁减,生成无环路的最小生成树,然后依据最小生成树来转发在二层以太网上的报文,以防止二层网络通信形成环路。
但是,目前还没有一种方法能够解决以下问题当两个RPR环中的一个环同时出现两个故障的情况下,其中,两个故障分别在RPR跨环节点的两端,为确保两个环之间任意点都是可达的,两个RPR跨环节点都需要负责跨环业务的转发,即都处于master状态。在这种情况下,当其中有一个故障点恢复时,容易形成环路。下面对其成因进行说明,如图2所示。
在故障点1存在的情况下,非跨环节点1和非跨环节点2的工作模式都为wrap,在故障点不会有报文通过,也不会有环路出现。如果故障点1恢复,非跨环节点1和非跨环节点2相邻区间没有故障点存在,那么非跨环节点1和非跨环节点2的工作模式都会变化为normal,恢复后的故障恢复节点就可以转发数据报文了。由于跨环节点1和跨环节点2不能立即感知到这个变化而不会进行状态的改变,仍然处于master状态,跨环节点1、非跨环节点1、非跨环节点2、跨环节点2、非跨环节点4、以及非跨环节点3就形成了一个环路,就容易造成广播报文在环路中循环地传递,而导致广播风暴等危害发生。需要说明的是,当RPR环上的节点发生故障时,发生故障的节点就为故障恢复节点;当RPR环上的两节点之间的链路发生故障时,离故障最近的能够感知故障的两节点为故障恢复点。在图2中,非跨环节点1和非跨环节点2为故障恢复节点。
由上所述,在现有技术中并没有一种方案能够有效解决当位于跨环节点两端的两个故障点中的一个恢复的情况下容易出现的环路问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种避免故障恢复后出现环路的方法,解决在位于跨环节点两端的两个故障点中的一个恢复的情况下容易出现环路的问题。
本发明的第二个目的在于提供一种避免故障恢复后出现环路的系统,解决在位于跨环节点两端的两个故障点中的一个恢复的情况下容易出现环路的问题。
为了解决上述第一个目的,本发明提供了一种避免故障恢复后出现环路的方法,其特征在于,该方法包括以下步骤故障恢复后,故障恢复节点设置延迟时间,并从两个RPR上向发送故障恢复通知报文给跨环节点;延迟时间到时,故障恢复节点将工作状态设置为normal;跨环节点接收故障恢复节点发来的故障恢复通知报文,根据该报文设置跨环节点的工作状态;所述故障恢复节点为非跨环节点。
较佳地,所述故障恢复节点设置延迟时间之前进一步包括判断故障恢复节点是否要将工作状态设置为normal;如果是,则继续执行设置延迟时间的步骤。
其中,所述延迟时间由所述故障恢复节点距离两个跨环节点最远的跳数确定。
所述故障恢复通知报文采用新的协议类型,或者在现有报文的基础上进行扩充。
较佳地,所述从两个RPR环向发送故障恢复通知报文给跨环节点为从两个RPR环向多次发送故障恢复通知报文给跨环节点。
其中,所述设置跨环节点的工作状态包括根据该跨环节点的自身状态设置该跨环节点的工作状态。
更优地,所述设置跨环节点的工作状态进一步包括根据该跨环节点的优先级,以及在RPR环上与该跨环节点相连的另一跨环节点的状态以及优先级设置该跨环节点的工作状态。
所述根据该跨环节点的自身状态设置该跨环节点的工作状态包括如果该跨环节点不是master状态,则不改变该跨环节点的工作状态。
所述根据该跨环节点的状态设置该跨环节点的工作状态包括如果该跨环节点是master状态,并且只在一个RPR环上有相连的master状态的跨环节点,并且该跨环节点的优先级低,则该跨环节点退出master状态;和/或,如果该跨环节点是master状态,并且只在一个RPR环上有相连的master状态的跨环节点,并且该跨环节点的优先级高,则该跨环节点状态不发生改变;和/或,如果该跨环节点是master状态,并且在两个RPR环上没有相连的master状态的跨环节点,则该跨环节点状态不发生改变。
和/或,如果该跨环节点是master状态,并且只在一个RPR环上有相连的master状态的跨环节点,并且该跨环节点的优先级相同,则根据跨环节点的设备ID决定该跨环节点的状态。
为了解决上述第二个目的,本发明提供了一种避免故障恢复后出现环路的系统,其特征在于,该系统包括故障恢复节点和跨环节点;故障恢复节点,在故障恢复后设置延迟时间,并从两个RPR环向发送故障恢复通知报文给跨环节点;延迟时间到时,将故障恢复节点的工作状态设置为normal;跨环节点,接收故障恢复节点发送来的故障恢复通知报文,并根据该报文设置自身的工作状态。
其中,所述故障恢复节点进一步包括状态模块,延时模块,以及报文发送模块;状态模块,在工作状态将要发生改变时,向延时模块发送延时通知,并向报文发送模块发送触发通知;在接收到延迟模块发送的通知后将工作状态设置为normal;延时模块,接收状态模块发送的延时通知后,设置延迟时间,并在延迟时间到时通知给状态模块;报文发送模块,接收状态模块的触发通知,然后从两个RPR环向发送故障恢复通知报文给跨环节点。
较佳地,所述故障恢复节点进一步包括检测模块;检测模块,检测故障恢复节点的工作状态是否将要变化为normal,并将检测结果发送给状态模块;状态模块,在接到检测模块发送的检测结果后,向延迟模块发送延时通知,并向报文发送模块发送触发通知。
其中,所述跨环节点进一步包括报文接收模块,以及状态模块;跨环节点中的报文接收模块,接收故障恢复节点发送来的故障恢复通知报文,然后向状态模块发送设置工作状态通知;跨环节点中的状态模块,接收报文接收模块发来的设置工作状态通知,设置跨环节点的工作状态。
较佳地,所述跨环节点进一步包括判断模块;判断模块,判断跨环节点的工作状态以及优先级,并判断与它相连的跨环节点的工作状态以及优先级的高低,并将判断的结果发送给状态模块;状态模块,进一步根据判断模块发来的判断的结果,设置跨环节点的工作状态。
由以上技术方案可以看出,故障恢复节点通过设置延迟时间,从两个RPR环向发送故障恢复通知报文给跨环节点,延迟过后,将工作状态设置为normal;在延迟期间,跨环节点接收故障恢复节点发送的故障恢复通知报文,并根据状态情况设置跨环节点工作状态。由此解决了在位于跨环节点两端的两个故障点中的一个恢复的情况下容易出现环路的问题。
图1为现有技术RPR桥环网络通信示意图;图2为一个故障点故障恢复出现环路的示意图;图3为RPR中避免故障恢复后出现环路的系统结构图;图4为RPR中避免故障恢复后出现环路的方法流程图;图5为RPR中避免故障恢复后出现环路的方法的详细流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例对本发明作进一步地详细描述。
首先对本发明所提供的系统做详细的说明,如图3所示,图3为避免故障恢复后出现环路的系统结构图。该系统主要由故障恢复节点300和跨环节点310组成。
此处,故障恢复节点是非跨环节点。
故障恢复节点300,故障恢复后设置延迟时间,然后从两个RPR环向发送故障恢复通知报文给跨环节点;延迟时间到时,将故障恢复节点的工作状态设置为normal。
跨环节点310,接收故障恢复节点发送来的故障恢复通知报文,并设置自身的工作状态。
故障恢复节点300和跨环节点310之间并不一定是相邻连接的,其间可能有别的非跨环节点。
下面分别对故障恢复节点300和跨环节点310的结构进行说明。
故障恢复节点300可以包括以下几部分延时模块301、报文发送模块302、状态模块303和检测模块304,其中,延时模块301,在故障恢复后,接收到状态模块发送的延时通知后,设置延迟时间,并在延迟时间到时通知给状态模块303。
所述设置延迟时间的目的是为了保证故障恢复节点300发送的故障恢复通知报文能够被跨环节点310及时收到并做相应状态处理。
延迟时间的长度,可以根据该故障恢复节点距离两个跨环节点最远的跳数来设定。例如,如果所述跳数为N,则延迟时间为N*10ms,这里的10ms主要考虑了线路以及线路中各节点的处理延迟,是一个经验值,另外,此值也可以根据具体的线路情况以及各节点设备情况做不同的设定。
报文发送模块302,用于接收到状态模块303的触发通知后,从两个RPR环向发送故障恢复通知报文,通知跨环节点310故障已经恢复。
该故障恢复通知报文可以在现有的报文基础上进行扩充,或者采用新的报文类型。
状态模块303,用于设置故障恢复节点300的工作状态,在工作状态将要发生改变时,向延时模块301发送延时通知,并向报文发送模块302发送触发通知;并且,在接收到延时模块301发送的通知时,将工作状态设置为normal;更进一步地,故障恢复节点300还包括检测模块304,用于检测故障恢复节点的工作状态是否将要变化为normal,并将检测结果发送给状态模块303。
如果检测结果是故障恢复节点的工作状态将要变化为normal,则状态模块303向延时模块301发送延时通知,延时模块301开始设置延迟时间,并且状态模块303向报文发送模块302发送触发通知。
跨环节点310可以包括以下几部分报文接收模块311、状态模块312和判断模块313,其中,报文接收模块311,用于接收故障恢复节点300发送来的故障恢复通知报文,然后向状态模块312发送设置工作状态通知。
状态模块312,接收报文接收模块311发送的设置工作状态通知,设置跨环节点310的工作状态。
更进一步地,跨环节点310还包括判断模块313判断模块313,用于判断跨环节点310的工作状态,并判断与它相连的跨环节点的工作状态,以及这两个跨环节点优先级的高低;并将这些判断的结果发送给状态模块312。
状态模块312根据判断模块312发送过来的判断的结果,设置跨环节点310的工作状态。
如果跨环节点310不是master状态,则不改变跨环节点的工作状态;如果跨环节点310是master状态,且只在一个RPR环上有相连的master状态的跨环节点,并且该跨环节点的优先级低,则将跨环节点设置为非master状态的其他状态;如果该跨环节点310是master状态,并且只在一个RPR环上有相连的master状态的跨环节点,并且该跨环节点的优先级高,则不改变该跨环节点的工作状态;如果该跨环节点310是master状态,并且在两个RPR环上没有相连的master状态的跨环节点,则不改变该跨环节点的工作状态;特殊地,如果该跨环节点310只在一个RPR环上有相连的master状态的跨环节点,且它们的优先级相同,那么可以按照设备ID来决定将谁设置为非master状态的其他工作状态,其先后顺序按照规定进行。
以上是对本发明所提供的系统所进行的详细描述,下面对本发明所提供的方法进行描述。如图4所示,图4为RPR中避免故障恢复后出现环路的方法流程图。该流程主要包括步骤401故障恢复后,故障恢复节点设置延迟时间,然后从两个RPR环向发送故障恢复通知报文给跨环节点。
其中,所述延迟时间的目的是为了保证故障恢复节点发送的故障恢复通知报文能够被跨环节点及时收到并做相应状态处理。
延迟时间的长度,可以根据该故障恢复节点距离两个跨环节点最远的跳数来设定。例如,如果所述跳数为N,则延迟时间为N*10ms,这里的10ms主要考虑了线路以及线路中各节点的处理延迟,是一个经验值。
其中,该故障恢复通知报文是用来通知两个跨环节点故障恢复了;
更优地,在延迟期间,为了避免发送的故障恢复通知报文丢失,可以多次发送故障恢复通知报文,还可以要求对方回复响应。
该故障恢复通知报文可以在现有的报文基础上进行扩充,或者采用新的报文类型。
步骤402在延迟期间内,跨环节点接收到故障恢复节点发送来的故障恢复通知报文后,设置跨环节点的工作状态。
所述设置跨环节点的工作状态为根据该跨环节点本身的状态,与它相连的其它跨环节点状态,以及它们之间的优先级高低来设置跨环节点的工作状态。可以有以下几种情况1)如果该跨环节点不是master状态,则不改变跨环节点的工作状态。
因为如果该跨环节点不是master状态,就不负责跨环业务的转发,也就不会形成环路,所以该跨环节点的工作状态不发生改变。
2)如果该跨环节点状态是master状态,并且在两个RPR环上都没有相连的master状态的跨环节点,则不改变该跨环节点的工作状态。
因为此种状况包括两种情况其一,该跨环节点是master状态,另一个跨环节点是非master状态的其他状态,那么不会有形成环路的情况发生,所以不改变该跨环节点的工作状态。其二,两个跨环节点都是master状态,但是两个跨环节点之间都存在故障点,也就是在两个环上的跨环节点两端都存在故障点,也就是两个环上有四个故障点,那么有一个故障点恢复时,不会形成环路,所以不改变该跨环节点的工作状态。
3)如果该跨环节点是master状态,并且只在一个RPR环上有相连的master状态的跨环节点,且该跨环节点的优先级高,则不改变该跨环节点的工作状态。
4)如果该跨环节点是master状态,并且只在一个RPR环上有相连的master状态的跨环节点,且该跨环节点的优先级低,则将该跨环节点的工作状态设置为非master状态的其他状态。
3)和4)两种情况都是两跨环节点之间有一个故障节点,因为两跨环节点都是master状态,就容易在环上形成如图2所示的环路,所以就按照优先级将两个跨环节点中的一个设置为master状态,另一个设置为非master状态的其他状态,就不会形成环路了。
步骤403延迟时间到时后,故障恢复节点将工作状态设置为normal。
以上是本发明所提供方法的主要流程,下面对该流程做详细的描述,如图5所示,图5为避免故障恢复后出现环路的方法的详细流程图。该流程包括以下步骤步骤501故障恢复后,判断故障恢复节点的工作模式是否将要设置为normal。如果是,执行步骤502;如果否,则结束流程。
步骤502故障恢复节点设置延迟时间,然后从两个RPR环向发送故障恢复通知报文给跨环节点,来通知跨环节点故障已经恢复。
其中,所述延迟时间的目的是为了保证故障恢复节点发送的故障恢复通知报文能够被跨环节点及时收到并设置跨环节点的工作状态。
其中,该故障恢复通知报文是用来通知两个跨环节点故障恢复了;更优地,在延迟期间,为了避免发送的故障恢复通知报文丢失,可以多次发送故障恢复通知报文。
该故障恢复通知报文可以在现有的报文基础上进行扩充,或者采用新的报文类型。
步骤503跨环节点接收故障恢复节点发送来的故障恢复通知报文。
该步骤是由图3系统中的报文接收模块311完成的。
步骤504判断跨环节点是否为master状态,如果是,执行步骤505;如果否,则执行步骤507。
步骤505判断是否该跨环节点只在一个RPR环上有相连的master状态的跨环节点,且本跨环节点优先级低,如果是,执行步骤506;如果否,执行步骤507。
在该步骤中有以下几种情况如果该跨环节点在两个RPR环上都没有相连的master状态的跨环节点,则执行步骤507;
如果该跨环节点只在一个RPR环上有相连的master状态的跨环节点,并且该跨环节点优先级高,则执行步骤507;如果该跨环节点只在一个RPR环上有相连的master状态的跨环节点,且本跨环节点优先级低,如果是,执行步骤506。
更进一步地,如果该跨环节点只在一个RPR环上有相连的master状态的跨环节点,且它们的优先级相同,那么可以按照设备ID来决定谁退出master状态,其先后顺序按照规定进行。
步骤506将该跨环节点的工作状态设置为非master状态的其他状态。
步骤507延迟时间到时,将故障恢复节点的工作状态设置为normal。
由以上描述可见,故障恢复节点通过设置延迟时间,从两个RPR环向发送故障恢复通知报文给跨环节点,延迟过后,将工作状态设置为normal;在延迟期间,跨环节点接收故障恢复节点发送来的故障恢复通知报文,并根据状态情况设置跨环节点的工作状态。本发明所提供的方法和系统,解决了在位于跨环节点两端的两个故障点中的一个恢复的情况下容易出现的环路问题。
权利要求
1.一种避免故障恢复后出现环路的方法,其特征在于,该方法包括以下步骤故障恢复后,故障恢复节点设置延迟时间,并从两个弹性分组环RPR向发送故障恢复通知报文给跨环节点;延迟时间到时,故障恢复节点将工作状态设置为正常状态normal;跨环节点,接收故障恢复节点发来的故障恢复通知报文,根据该报文设置跨环节点的工作状态;所述故障恢复节点为非跨环节点。
2.根据权利要求1所述的方法,其特征在于,所述故障恢复节点设置延迟时间之前进一步包括判断故障恢复节点是否要将工作状态设置为normal;如果是,则继续执行设置延迟时间的步骤。
3.根据权利要求1所述的方法,其特征在于,所述延迟时间根据所述故障恢复节点距离两个跨环节点最远的跳数确定。
4.根据权利要求1所述的方法,其特征在于,所述故障恢复通知报文采用新的协议类型,或者在现有报文的基础上进行扩充。
5.根据权利要求1所述的方法,其特征在于,所述从两个RPR环向发送故障恢复通知报文给跨环节点为从两个RPR环向多次发送故障恢复通知报文给跨环节点。
6.根据权利要求1所述的方法,其特征在于,所述设置跨环节点的工作状态包括根据该跨环节点的自身状态设置该跨环节点的工作状态。
7.根据权利要求6所述的方法,其特征在于,所述设置跨环节点的工作状态进一步包括根据该跨环节点的优先级,以及在RPR环上与该跨环节点相连的另一跨环节点的状态以及优先级设置该跨环节点的工作状态。
8.根据权利要求6所述的方法,其特征在于,所述根据该跨环节点的自身状态设置该跨环节点的工作状态包括如果该跨环节点不是master状态,则不改变该跨环节点的工作状态。
9.根据权利要求7所述的方法,其特征在于,所述根据该跨环节点的状态设置该跨环节点的工作状态包括如果该跨环节点是master状态,并且只在一个RPR环上有相连的master状态的跨环节点,并且该跨环节点的优先级低,则该跨环节点退出master状态;和/或,如果该跨环节点是master状态,并且只在一个RPR环上有相连的master状态的跨环节点,并且该跨环节点的优先级高,则该跨环节点状态不发生改变;和/或,如果该跨环节点是master状态,并且在两个RPR环上没有相连的master状态的跨环节点,则该跨环节点状态不发生改变。和/或,如果该跨环节点是master状态,并且只在一个RPR环上有相连的master状态的跨环节点,并且该跨环节点的优先级相同,则根据跨环节点的设备ID决定该跨环节点的状态。
10.一种弹性分组环RPR中避免故障恢复后出现环路的系统,其特征在于,该系统包括故障恢复节点和跨环节点;故障恢复节点,在故障恢复后设置延迟时间,并从两个RPR环向发送故障恢复通知报文给跨环节点;延迟时间到时,将故障恢复节点的工作状态设置为normal;跨环节点,接收故障恢复节点发送来的故障恢复通知报文,并根据该报文设置自身的工作状态。
11.根据权利要求10所述的系统,其特征在于,所述故障恢复节点进一步包括状态模块,延时模块,以及报文发送模块;状态模块,在工作状态将要发生改变时,向延时模块发送延时通知,并向报文发送模块发送触发通知;在接收到延迟模块发送的通知后将工作状态设置为normal;延时模块,接收状态模块发送的延时通知后,设置延迟时间,并在延迟时间到时通知给状态模块;报文发送模块,接收状态模块的触发通知,然后从两个RPR环向发送故障恢复通知报文给跨环节点。
12.根据权利要求11所述的系统,其特征在于,所述故障恢复节点进一步包括检测模块;检测模块,检测故障恢复节点的工作状态是否将要变化为normal,并将检测结果发送给状态模块;状态模块,在接到检测模块发送的检测结果后,向延时模块发送延时通知,并向报文发送模块发送触发通知。
13.根据权利要求10所述的系统,其特征在于,所述跨环节点进一步包括报文接收模块,以及状态模块;跨环节点中的报文接收模块,接收故障恢复节点发送来的故障恢复通知报文,然后向状态模块发送设置工作状态通知;跨环节点中的状态模块,接收报文接收模块发来的设置工作状态通知,设置跨环节点的工作状态。
14.根据权利要求13所述的系统,其特征在于,所述跨环节点进一步包括判断模块;判断模块,判断跨环节点的工作状态以及优先级,并判断与它相连的跨环节点的工作状态以及优先级的高低,并将判断的结果发送给状态模块;状态模块,进一步根据判断模块发来的判断的结果,设置跨环节点的工作状态。
全文摘要
本发明提供了一种避免故障恢复后出现环路的方法和系统,该方法和系统中,故障恢复节点通过设置延迟时间,从两个RPR环向发送故障恢复通知报文给跨环节点,延迟过后,将工作状态设置为normal;在延迟期间,跨环节点接收故障恢复节点发来的故障恢复通知报文,并根据状态情况设置跨环节点的工作状态,即根据跨环节点自身状态以及RPR环上其它跨环节点的状态确定是否改变自身的工作状态。本发明所提供的方法和系统,由此通过故障恢复节点和跨环节点的配合,解决了在位于跨环节点两端的两个故障点中的一个恢复的情况下容易出现环路的问题。
文档编号H04L12/24GK1968174SQ20061014035
公开日2007年5月23日 申请日期2006年11月27日 优先权日2006年11月27日
发明者张义龙, 张钟凯, 何智峰 申请人:华为技术有限公司