专利名称:一种快速生成树协议应用于单环网拓扑的处理方法
技术领域:
本发明涉及通信网络冗余技术,特别涉及一种应用于单环网拓扑的快速生成树协议。
背景技术:
生成树协议(STP)、快速生成树协议(RSTP)和多生成树协议(MSTP)是应用于二层通信网络的拓扑管理协议。二层交换机运行生成树协议,相互发送桥协议数据单元(BridgeProtocol Data Unit, BPDU), BPDU中的主要信息包括,STP版 本、BPDU类型、标识字段、根桥ID、根路径开销、指定桥ID、指定端口 ID以及各时间值,其中根桥ID、根路径开销、指定桥ID、指定端口 ID构成消息优先级向量,是RSTP进行比较、计算的主要依据。交换机获取BPDU中的信息,通过生成树算法(SPA),裁剪网络拓扑,达到消除环路,同时形成冗余路径的目的。当有网络链路发生故障时,STP可以使用冗余路径恢复正常的通讯业务。通过二层交换机运行生成树协议可以消除通信网络中的环路避免网络风暴,同时实现链路的冗余备份功能。快速生成树协议是对生成树协议的改进,通过引入Proposal/Agreement机制(简称P/A机制),在相邻交换机之间快速协商以裁剪网络拓扑,较生成树协议形成稳定网络拓扑的时间有大幅提升,可达到1-2秒左右的恢复速度。为不失一般性,快速生成树协议应用于任意网络拓扑时都按照生成树算法以及P/A协商机制裁剪网络。当交换机收到BPDU时,首先收集BPDU中的有用信息,然后按照生成树算法进行计算确定端口角色,包括根端口(Root Port)、指定端口(Designated Port)、替代端口(Alternate Port)、备用端口(Backup Port),以及端口状态,包括阻塞(Block)(RSTP将端口不转发报文同时不学习地址的状态称为Discarding,即丢弃状态,其等同于STP中的Block状态,为方便描述,本文统一称该状态为阻塞状态)、学习(Learning)、转发(Forwarding),最后向对侧发出BPDU,完成协商过程。该过程在网络上的交换机之间如树的生长一般,从树根到树叶,两两之间依次进行,如此形成最终无环路的树形拓扑结构。交换机中快速生成树算法的实现是通过一组协同工作的状态机来完成的,总共有10种状态机。每个状态机内部包含若干个“状态”、各“状态”内部的操作以及进入“状态”的条件。当处于某个“状态”时,程序执行该“状态”下预定的操作。执行完成后,检查是否有其它“状态”满足进入条件,如果有,则迁移到该“状态”,否则保持当前“状态”,等待下次条件检查。状态机之间通过共享的变量相互影响“状态”迁移条件,完成协同工作。由软件实现快速生成树算法时,由于程序顺序执行的原因,多个状态机只能按一定顺序依次执行。当有条件发生变化影响到一个状态机时,程序必须从头检查一遍状态机的迁移条件,在大多数时候,这个检查过程都会引入一定的处理延时。另一方面,当有多个状态机都要进行处理时,一旦有状态机中具有耗时较大的操作,将影响到后续所有状态机的执行。环形网络是广泛应用的一种网络拓扑,结构清晰同时具有冗余备份功能,可提供单点链路故障的保护。环形网络具有多种形式,如单环网、双环网、相切环等。实际工程中,包括通讯以及其它工业领域,考虑到故障保护能力以及成本等因素,单环网拓扑有着广泛的应用,其特点是位于环上的交换机各用两个端口与相邻交换机相连,而其它端口都与终端节点或其他交换机上的非生成树端口(即该端口不属于任何一个生成树)相连,该拓扑有且只有一条冗余链路。在单环网中应用RSTP,当有链路失效时,RSTP为保证不形成瞬时环路,必须先阻塞交换机生成树端口,然后向相邻交换机发送Brou,当相邻交换机满足条件并回复报文通知或经转发延时(Forwarding Delay)后才能依次将本机阻塞端口转换为学习和转发状态,如此延伸到整个网络,最严重条件下,需经过环上一半数量的交换机协商和反复阻塞、开放端口才能恢复通讯业务,用户数据流在该过程中将中断。上述过程确保了拓扑重构过程中不会形成环路以致网络风暴。但考虑到单环网的特点有且只有一条冗余链路,那么在RSTP稳定后,如任意一条链路失效,则一定不可能形成环路。RSTP在单环网链路故障时的协商过程虽完备,却不够快速。
在拓扑变化时,RSTP会发出拓扑变化标识(Topology Change flag)置位的BPDU,当其它交换机收到拓扑变化消息时,需要进行地址更新操作。根据统计,地址更新操作需要消耗一定的时间,通常每台需要几毫秒甚至十几毫秒。由上文对快速生成树状态机实现的分析可知,该延时将影响到整个状态机序列的执行过程,显著影响了链路的恢复时间。对于TCP、UDP等应用,50ms级的恢复时间是可以满足要求的。对于工业领域,基本为实时通讯,恢复时间要求很高,而实时通讯主要基于组播报文(其在组内以广播型式发送)或广播报文,并不需要更新地址表来恢复通讯。由此可见,使用RSTP协议管理单环网拓扑时,保证了网络的完整和安全,但并不能根据环网拓扑以及不同类型报文的特点进行处理,导致环网自愈时间较长,不能满足环网快速自愈的要求。
发明内容
本发明的目的,在于提供一种快速生成树协议应用于单环网拓扑的处理方法,其可缩短单环网拓扑中链路失效时的环网自愈时间,同时可以自动兼容标准RSTP,满足各种通讯业务的要求。为了达成上述目的,本发明的解决方案是
一种快速生成树协议应用于单环网拓扑的处理方法,扩展BPDU,在其中添加两个附加协议字段字段一表示协议类型,字段二表示拓扑变化信息,如果端口失效,字段二的值设置为真,否则为假;
上述拓扑变化标识为布尔型,取值为真或假,当有端口失效时,设置为真,否则为假;拓扑变化计时器的计时时长为1-2秒。交换机收到扩展后的BPDU后,一方面通过匹配字段一确定相邻交换机是否工作于单环网的处理方式下,更进一步确定整个环网上交换机的工作模式;当有一台及以上的交换机不支持或没有配置为单环网工作模式,网络上所有其它交换机都自动运行标准的快速生成树协议以协同工作;另一方面,判断字段二的值,若为真,RSTP状态机发送该字段值为真的BPDU告知对侧交换机网络上有链路失效,各交换机进行故障快速恢复。
上述故障快速恢复的方法包括如下内容
(1)对每个环网端口增加两个变量拓扑变化标识和拓扑变化计时器;
(2)检测端口状态,当端口连接恢复时,考虑到必须确保不出现瞬时环路,使用标准的RSTP状态机进行处理;
当端口连接失效时,立即启动本端口的拓扑变化计时器,并根据端口角色区分故障类型类型一,替代端口失效;类型二,非替代端口(即,根端口或指定端口)失效,而该端口所在交换机的另一个环网端口为替代端口 ;类型三,非替代端口失效,且该端口所在交换机的另一个环网端口也不是替代端口;
类型一故障时,由于是冗余链路失效,该故障不会导致拓扑变化;
类型二故障时,RSTP状态机迅速使本机的替代端口进入转发状态,故障瞬间恢复; 类型三故障时,设置另一个处于连接状态的环网端口的拓扑变化标识为真,以及该连接端口的RSTP状态机变量newlnfo为真,同时启动该连接端口的拓扑变化计时器,失效端口状态转换为Block ;
上述newlnfo变量定义参见IEEE 802. 1D-2004 17. 19. 16,布尔型,取值为真或假。为真时表示有新信息需要通过BPDU发送,将启动端口发送状态机(Port Transmit statemachine, IEEE 802.1D-2004 17.26)。(3)当交换机收到的BPDU中,拓扑变化信息字段置位,表明网络中有链路失效,立即启动该端口的拓扑变化计时器,同时,状态机进行检查,如果本端口为替代端口,立即转换为转发状态;否则检查另一个环网端口,如果为替代端口,转换为转发状态;如果没有替代端口,则将其另一端口的拓扑变化标识和newlnfo标识都置位;
(4)当端口的拓扑变化计时器不为O时RSTP程序不检查本端口状态,不再处理BPDU中置位的拓扑变化信息字段;RSTP端口状态转换状态机(Port State Transition statemachine, IEEE 802. 1D-2004 17. 30)不进行本端口的状态转换。一种快速生成树单环网处理方法还包括
(I )RSTP程序执行各状态机时,首先执行端口发送状态机,这样使端口发送状态机可在第一时间检测到端口变量newlnfo的变化,当该变量为真时,txRstp O函数使用该端口的拓扑变化标识填充BPDU附加字段二,拓扑变化信息,并立即发送BTOU,通知对侧交换机拓扑变化事件。上述txRstp O函数定义参见ffiEE 802. 1D-2004 17. 21. 20,功能为使用端口的各变量填充Brou,并发送一个快速生成树BPDU。(2)RSTP拓扑变化状态机(Topology Change state machine, IEEE 802. 1D-200417. 31)在检测到拓扑变化或收到拓扑变化标识(Topology Change flag, IEEE802. ID-2004 9. 3. 3)置位的 BPDU 时将端口变量 fdbFlush (IEEE 802. 1D-2004 17. 19. 7)置位,要求清除端口地址表,使交换机重新学习MAC地址,即地址更新,以恢复通讯业务。将地址更新过程从RSTP拓扑变化状态机的内部操作中分离出来,使用单独的地址更新程序检测fdbFlush状态。当fdbFlush置位,地址更新程序立即复位fdbFlush,但经过一定延时后再进行地址更新操作。延时长度可视网络规模而定,一般为20ms。采用上述方案后,本发明具有以下特点
(I)在BPDU中添加字段传输拓扑变化信息,使RSTP程序可直接通过该字段获得网络故障信息,不经状态机的复杂计算就可以做出响应;
(2)充分利用了单环网有且只有一条冗余链路的特点,在检测到故障的情况下,直接使替代端口变为转发状态,快速恢复网络通讯业务;
(3)首先执行RSTP端口发送状态机,当端口拓扑变化标识和newlnfo标识置位,RSTP状态机在第一时间发出BPDU通知对侧交换机,迅速将故障信息传播到整个网络;
(4)使用独立的地址更新程序进行地址更新操作,避免地址更新过程的耗时对状态机的计算过程产生影响,在满足各种通讯业务对网络自愈时间要求的前提下,同时加快了在链路失效和链路恢复情况下RSTP的收敛速度。
图I是扩展的快速生成树BPDU格式示意图; 图2是单环网拓扑的不意 图3是RSTP单环网处理方法流程的示意图。
具体实施例方式为使本发明的技术方案与特点更加明确,下面结合附图对本发明作进一步的阐述。本发明实施例中,为传输拓扑变化信息,对快速生成树BPDU (RST BTOU)进行了扩展。为兼容标准BPDU,达成不同交换机之间的互操作,不改变RST BPDU的现有字段、含义及其在BPDU中位置,仅在RST BPDU尾部增加一个附加协议字段,长度为I个字节,第7位(最高位)表示拓扑变化标识,称为RTC,其余位(6-0位)表示协议类型,称为RType。扩展的RST BPDU格式及含义如图I所示。本发明实施例中,设置快速生成树单环网处理方式开启开关为布尔型变量RRING,通过该变量控制快速生成树单环网处理方法是否启用。RRING为假时运行标准RSTP协议;RRING为真时 端口收到BTOU,首先判断BPDU协议版本标识,如果是快速生成树协议版本,再判断附加协议字段的RType是否等于指定类型,满足上述两条件时再处理RTC字段,否贝U,考虑到与不同厂家交换机之间的互操作性,本交换机应自动设置RRING为假,兼容标准的RSTP协议。RSTP通过如下方法计算单环网的拓扑选择一个桥ID (由16位桥优先级和48位MAC地址构成)最小的交换机作为根桥(Root Bridge),其他交换机为指定桥。按照根路径开销最小的原则(到根桥距离最短),拓扑从根桥向其两侧指定桥延伸,根路径开销逐台增大。交换机两两之间通过P/A机制确保不出现临时环路。设环网上的交换机数量为N,每一台交换机的路径开销为1,那么环上交换机根路径开销最大值为(N/2)取整。环在根路径开销等于最大值的交换机处由阻塞状态的替代端口断开。交换机上根路径开销最小的端口为根端口 ;连接到下游网络,并且作为下游网络通向根桥的路径的端口为指定端口 ;替代端口是根端口的备用端口,当根端口不可用时,替代端口可转换为根端口。拓扑稳定后,环网中有且只有一个替代端口处于阻塞状态,其它端口为根端口或指定端口,处于转发状态。由4台交换机组成的单环网如图2所示。按照上述方法形成了稳定的网络拓扑swl为根桥,sw2-4为指定桥;sw4的p2端口为替代端口,处于阻塞状态,其他端口为根端口或指定端口,处于转发状态;链路C为冗余链路,不转发用户流量,其他链路为正常通讯使用的链路。下面分析各链路发生故障时,RSTP的处理方法。当链路C故障时,由于sw4-p2端口角色为替代端口,链路C为冗余链路,逻辑上是失效的,RSTP状态机可瞬间收敛,并且不影响其它链路的正常工作。当链路B故障时,由于sw4的另一个环网端口 p2角色为替代端口,可马上恢复为根端口,RSTP状态机同样可以瞬间收敛。当链路A或C故障时,RSTP状态机必须重新计算拓扑。由于RSTP将环网亦视作普通网络,故自愈时间上与一般性网络没有明显区别。
快速生成树单环网处理方法考虑到了单环网的特点,采用下述步骤缩短了网络的自愈时间。本发明实施例对每个环网端口增设2个变量拓扑变化标识,称为PTC,取值为真或假;拓扑变化变化计时器,称为PTT。为方便描述,交换机的两个环网端口分别称为A、B端口。下面以A端口失效或收到BPDU为例,阐述处理过程,B端口的处理完全一致。详细流程如图3所示,解释如下
301 :初始化交换机A、B端口的PTC标识、PTT计时器。PTC标识初始化为假,PTT计时器初始化为O。302 =PTT计时器为O时,检测环网端口状态是否发生变化。303 :检测到端口恢复,考虑到当前存在完整、稳定的拓扑,且在单环网结构中端口恢复时不会出现因P/A协商不成功导致临时性拓扑不完整的情况。无论恢复端口将转化什么端口角色,RSTP都可以在很短的时间内协商成功,使拓扑收敛,因此这种情况下无需特殊处理。在环网结构中,存在P/A协商不成功的可能,端口需经过两个forwarding delay才能进入转发状态。分析可知,该端口的位置只会在替代端口的对侧,连接这两端口的链路本身就是冗余链路,该端口是否是转发状态,不影响网络的正常工作。304、310 :检测到端口失效,或者收到RTC标识置位的BTOU,立即启动本端口的PTT计时器,计时时长建议1-2秒。305 :如果A端口失效且为替代端口,状态机本身可以快速收敛,无特别处理。306 A端口不是替代端口时,如B端口为替代端口,则B端口转换为转发状态,同时启动B端口 PTT计时器,然后执行RSTP状态机。307 :当B端口也不是替代端口,则将B端口的PTC和newlnfo标识置位,启动PTT计时器。A端口转换为阻塞状态,最后执行RSTP状态机。308 A端口收到BTOU,当该端口 PTT计时器为O时,检测报文的RTC标识字段。309 :如A端口收到的BPDU的RTC没有置位,表明无拓扑变化事件,执行RSTP状态机进行正常处理。310:同 304。311 :当收到的BPDU的RTC标识置位时,如果A端口为替代端口,端口转为转发状态,然后执行RSTP状态机。否则转到306执行。
320 txRstp ()函数依据各端口的PTC标识,填充端口 BPDU的RTC字段,即BPDU的RTC字段的值等于端口 PTC的值,以及RType字段,然后发出BPDU。从图3可以看出301-307组成了端口状态检测过程,实时检测环网端口的状态是否发生变化。308-311、306、307组成了 BPDU的接收处理过程。上述两个过程都是由事件触发,因此,RSTP程序对事件的响应速度显著影响到本发明的实施效果。本发明实施例为提高程序对事件的响应速度,采用了实时操作系统,并设置RSTP任务为较高的优先级,保证其良好的响应速度和充分的执行时间。端口状态变化事件和BPDU的接收事件都采用中断方式通知RSTP程序,提高系统的整体性能。由图3还可知,环网快速自愈的关键过程在于迅速找到替代端口,使其转换为转发状态。替代端口对于故障所在交换机有两个位置本地和其它交换机。如认为RSTP程序 已具备很好的事件响应速度,当替代端口为本地端口时,可以瞬时完成该过程;如替代端口在其它交换机上时,则必须通过BPDU的传播来找到替代端口。快速生成树BPDU的长度为36字节,附加协议字段I字节(见图1),当组成以太网报文时,BPDU头部增加目的地址6字节、源地址6字节、长度2字节、LLC字段3字节,共计54字节,补齐最小以太网帧,共64字节,网络传播延时非常小(IOOMbps连接时,传输时长6. 72微秒),当网络规模不是太大时,该部分延时相对其它处理延时可不考虑;RSTP运行于二层,协议栈延时非常小;故BPDU的传输延时主要来自于RSTP本身状态机计算的延时。本发明实施例中,将端口发送状态机置于RSTP状态机列表的首位,一旦端口newlnfo标识置位,立即发送BPDU。这样BPDU传播过程中源自RSTP状态机计算的延时可降至最小。根据图3步骤307,端口 PTC标识与newlnfo标识同时置位,那么可以保证PTC标识在第一时间随BPDU发出,无论原发或转发速度都得到提高,有效缩短环网自愈时间。本发明实施例为避免RSTP状态机在计算过程中进行不必要的端口状态转换提供的解决方法是
当RRING为假,或者端口 PTT计时器为O时,才能进行端口状态转换的实际操作,但上述条件不应影响RSTP端口状态转换状态机的状态迁移过程。这样在检测到拓扑变化事件后至PTT计时结束,RSTP状态机都不会进行实际的端口状态转换操作。合理配置PTT计时器值就可以躲过RSTP的拓扑重新计算的过程。这样在不影响RSTP状态机正常工作的情况下,节约了端口状态转换的时间,加快了链路的恢复速度。本发明实施例还根据不同通讯服务对环网自愈时间要求的不同,以及不同报文传输方式的特点,对RSTP地址更新操作进行适当的延时,一方面加快了 RSTP状态机的计算过程,另一方面满足了基于不同报文类型的通讯业务对环网自愈时间各不相同的要求。当端口的fdbFlush标识置位时,将地址更新操作压入延时任务处理队列,fdbFlush立即清除,延时时间为20毫秒。当延时满,地址更新操作执行。这样就分离了 RSTP的计算过程和地址更新操作过程,避免地址更新操作占用RSTP状态机的计算时间。在延时期间,通讯物理链路已经快速恢复,广播和组播的报文转发正常,基于这两类报文的通讯业务只丢失了很少量的报文;延时过后再进行地址更新操作,50ms内可以使TCP等服务恢复,满足其它应用的需求。本发明实施例提供了一种快速生成树单环网处理方法,可以显著缩短单环网拓扑中链路失效时的环网自愈时间,同时可以自动兼容标准RSTP,满足各种通讯业务的要求。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围 之内。
权利要求
1.ー种快速生成树协议应用于单环网拓扑的处理方法,其特征在于扩展BPDU,在其中添加两个附加协议字段字段一表示协议类型,字段ニ表示拓扑变化信息,如果端ロ失效,字段ニ的值设置为真,否则为假; 交换机收到扩展后的BPDU后,一方面通过匹配字段一确定相邻交换机是否工作于单环网的处理方式下,当有一台及以上的交换机不支持或没有配置为单环网工作模式,网络上所有其它交换机都自动运行标准的快速生成树协议以协同工作;另一方面,判断字段ニ的值,若为真,RSTP状态机发送该字段值为真的BPDU告知对侧交換机网络上有链路失效,各交换机进行故障快速恢复。
2.如权利要求I所述的ー种快速生成树协议应用于单环网拓扑的处理方法,其特征在于所述拓扑变化标识为布尔型,取值为真或假,当有端ロ失效时,设置为真,否则为假;拓扑变化计时器的计时时长为1-2秒。
3.如权利要求I所述的ー种快速生成树协议应用于单环网拓扑的处理方法,其特征在于所述故障快速恢复的方法包括如下内容 (1)对每个环网端ロ増加两个变量拓扑变化标识和拓扑变化计时器; (2)检测端ロ状态,当端ロ连接恢复时,使用标准的RSTP状态机进行处理; 当端ロ连接失效时,立即启动本端ロ的拓扑变化计时器,并根据端口角色区分故障类型类型一,替代端ロ失效;类型ニ,非替代端ロ失效,而该端ロ所在交換机的另ー个环网端ロ为替代端ロ ;类型三,非替代端ロ失效,且该端ロ所在交換机的另ー个环网端ロ也不是替代端ロ ; 类型ー故障吋,由于是冗余链路失效,该故障不会导致拓扑变化; 类型ニ故障吋,RSTP状态机迅速使本机的替代端ロ进入转发状态,故障瞬间恢复; 类型三故障时,设置另ー个处于连接状态的环网端ロ的拓扑变化标识为真,以及该连接端ロ的RSTP状态机变量newlnfo为真,同时启动该连接端ロ的拓扑变化计时器,失效端ロ状态转换为Block; (3)当交换机收到的BPDU中,拓扑变化信息字段置位,表明网络中有链路失效,立即启动该端ロ的拓扑变化计时器,同吋,状态机进行检查,如果本端ロ为替代端ロ,立即转换为转发状态;否则检查另ー个环网端ロ,如果为替代端ロ,转换为转发状态;如果没有替代端ロ,则将其另一端ロ的拓扑变化标识和newlnfo标识都置位; (4)当端ロ的拓扑变化计时器不为0时RSTP程序不检查本端ロ状态,不再处理BPDU中置位的拓扑变化信息字段;RSTP端ロ状态转换状态机不进行本端ロ的状态转换。
4.如权利要求I所述的ー种快速生成树协议应用于单环网拓扑的处理方法,其特征在于所述处理方法还包括以下内容 RSTP程序执行各状态机吋,首先执行端ロ发送状态机,使端ロ发送状态机在第一时间检测到端ロ变量newlnfo的变化,当该变量为真吋,txRstp ()函数使用该端ロ的拓扑变化标识填充BPDU附加字段ニ,并立即发送BTOU,通知对侧交換机拓扑变化事件; 将地址更新操作从拓扑变化状态机的内部操作中分离出来,使用単独的地址更新程序检测端ロ的fdbFlush标识状态,当fdbFlush置位,地址更新程序立即复位fdbFlush,延时进行地址更新操作。
全文摘要
本发明公开一种快速生成树协议应用于单环网拓扑的处理方法,在BPDU中添加两个附加协议字段字段一表示协议类型,字段二表示拓扑变化信息,如果端口失效,字段二的值设置为真,否则为假;交换机收到扩展后的BPDU后,一方面匹配字段一,当有一台及以上的交换机不支持或没有配置为单环网工作模式,网络上所有其它交换机都自动运行标准的快速生成树协议以协同工作;另一方面,判断字段二的值,若为真,RSTP状态机发送该字段值为真的BPDU告知对侧交换机网络上有链路失效,各交换机进行故障快速恢复。此方法可缩短单环网拓扑中链路失效时的环网自愈时间,同时可以自动兼容标准RSTP,满足各种通讯业务的要求。
文档编号H04L12/437GK102821050SQ201210291080
公开日2012年12月12日 申请日期2012年8月15日 优先权日2012年8月15日
发明者王文龙, 周旭峰, 杨贵, 刘明慧 申请人:南京南瑞继保电气有限公司, 南京南瑞继保工程技术有限公司