拓扑改变报文的处理方法和处理装置的制作方法

文档序号:7651859阅读:117来源:国知局
专利名称:拓扑改变报文的处理方法和处理装置的制作方法
技术领域
本发明涉及网络传输技术,具体涉及一种在网络拓扑改变后对拓扑改变(TC,Topology Change)报文的处理方法和处理装置。
背景技术
快速生成树协议(RSTP,Rapid Spanning Tree Protocol)和多生成树协议(MSTP,Multiple Spanning Tree Protocol)都属于生成树协议的改进协议,其作用是将环路网络修剪成无环的树型网络,避免报文在环型网络中的增生和无限循环,同时还提供了数据报文转发的冗余路径,是目前以太网的通用冗余备份手段。
在RSTP/MSTP的实际应用中,当网络中配置有RSTP/MSTP的交换机运行RSTP/MSTP后,这些运行有RSTP/MSTP的所有交换机都将自己作为生成树的根桥,周期性的向其它交换机发送桥协议数据单元(BPDU,BridgeProtocol Data Unit)报文,又称配置消息。交换机中接收到配置消息的端口通过对接收的配置消息和本端口的配置消息进行比较,以确定该端口的角色,然后转入相应的端口角色状态。当所有交换机都确定了其端口的角色和状态后,就形成了生成树。
图1示出了一种网络初始化后所形成生成树中各交换机端口的角色图。如图1所示,该网络为6个交换机组成的环型拓扑。经生成树计算后,形成一棵生成树。该生成树的根桥为交换机1,交换机2和6为交换机1的下游桥,交换机3为交换机2的下游桥,交换机4为交换机3的下游桥,交换机5为交换机4的下游桥。下游桥中与上游桥相连的端口角色为根(ROOT)端口,上游桥中与下游桥相连的端口角色为指定(DES,Design)端口,根端口和指定端口在其端口状态为转发(Forwarding)时,可以进行数据报文的转发和BPDU报文的接收和发送。交换机5与交换机6相连,但是交换机5的端口(port)51的端口角色为替换(ALT,Alternate)端口,替换端口的端口状态为阻塞(Discarding),不能转发数据报文,只能接收但不能发送BPDU报文。可见,交换机5和6之间的链路被阻塞,相当于被断开,因此,经RSTP/MSTP计算后,图1中的物理环型拓扑变成了逻辑树型拓扑。
在图1中,PC1与交换机1相连,PC2与交换机4相连。PC1与PC2之间的数据报文通过交换机1、2、3、4形成的主链路进行转发。在转发过程中,PC1的媒体接入控制(MAC,Media Access Control)地址0-0-1被学习到交换机4的根端口port41上,交换机4将port41与PC1的MAC地址0-0-1的对应关系记录在其MAC表中,PC2的MAC地址0-0-2被学习到交换机1的指定端口port11上,交换机1将port11与PC2的MAC地址0-0-2的对应关系记录在其MAC表中。
当交换机2和交换机3之间的链路因物理断路(Link Down)而发生故障后,这个Link Down事件被交换机3检测到,由于交换机3的ROOT端口Down,因此交换机3将自身作为根桥,发起一轮从交换机3到交换机5的快速握手过程,以重新确定各交换机端口的角色。图2示出了图1中的数据链路发生故障后,重新确定各交换机端口角色后的角色图。如图2所示,交换机2和交换机3相连的一对端口角色为不可用(DISABLE)端口,不可用端口不能处理任何报文。交换机5中端口port51的新角色为根端口,而且在重新确定角色后除不可用端口之外的所有交换机端口的状态都是转发状态。
此时,由于交换机1和交换机4中所保存的MAC表并没有改变,因此,PC1和PC2之间的数据报文无法在正确的路径上转发,还需要在交换机上对MAC地址进行更新以恢复PC1和PC2之间的数据流。具体的,交换机采用发送TC报文的方法触发自身和其它交换机更新其各自的MAC表以恢复PC1和PC2之间的数据流。其中,TC报文属于BPDU报文,该TC报文用于通知其它交换机网络拓扑的变化。
下面以图2示出的拓扑结构为例,对目前发送TC报文的过程进行描述。图3示出了目前发送TC报文的方法流程图,如图3所示,该方法包括以下步骤步骤301当网络拓扑中的数据链路发生故障后,经重新确定角色后,交换机5中端口port51的角色由替换端口转换为根端口,且该端口状态也转换为转发状态,则交换机5生成TC报文,删除其自身保存的MAC表中与交换机4和交换机6相连的端口对应的MAC地址,并检查hello-time定时器。
其中,hello-time定时器所设定的定时时间称为hello-time时间,是生成树协议中发送BPDU报文的间隔时间,一般hello-time为2秒。因此,交换机每2秒发送一次BPDU报文。
步骤302判断hello-time定时器是否超时;如果是,则执行步骤303;否则,继续执行本步骤302。
步骤303交换机5向交换机4和交换机6发送其生成的TC报文。
由于TC报文属于BPDU报文,因此交换机5执行步骤301时生成的TC报文,也需要等待hello-time定时器超时,才能发送其生成的TC报文。
步骤304接收到TC报文的交换机生成TC报文,删除其自身保存的MAC表中要发送所生成的TC报文的端口对应的MAC地址,并检查hello-time定时器。
步骤305判断hello-time定时器是否超时;如果是,则执行步骤306;否则,继续执行本步骤305。
步骤306接收到TC报文的交换机发送其生成的TC报文。
其它接收到TC报文的交换机同样执行步骤304~306,直到生成树中所有交换机都接收到TC报文并对各自保存的MAC表内容进行相应删除。经各交换机刷新MAC地址,PC1与PC2之间的数据流恢复。
可见,当生成树中的链路发生故障后,交换机会重新确定其端口角色,从而使得网络拓扑发生变化。然而,RSTP/MSTP协议标准规定,当交换机检测到端口角色和状态切换到指定角色和状态时,或是接收到TC报文时,都会等待hello-time定时器超时后,才将传递拓扑变化信息的TC报文发送出去,导致TC报文的发送速度降低。而且生成树中每个交换机都要等待hello-time时间,当生成树中交换机较多时,会导致TC报文在网络中的传播时间较长,数据流迟迟不能恢复,降低了网络拓扑变化后的收敛速度。
另外,如果生成树中的交换机在一次网络拓扑变化发生后,接收到了TC报文,且接收时刻刚好到达hello-time定时时间,则可以立刻将TC报文发送出去。而同一交换机在另一次网络拓扑变化发生后,接收到了TC报文,但接收时刻还未到达hello-time定时器超时时刻,甚至需要等待一个完整的hello-time时间,才能将TC报文发送出去。因此,这两次网络拓扑变化后的收敛时间相差很大,导致收敛不稳定。

发明内容
有鉴于此,本发明提供了一种拓扑变化报文的处理方法,能够提高网络拓扑变化后的收敛速度,增加收敛的稳定性。
该处理方法包括网络交换设备检测是否发生拓扑改变TC触发事件,如果是,则立刻发送TC报文。
其中,所述检测是否发生TC触发事件为网络交换设备检测其端口是否由不能转发数据报文转换为可以转发数据报文,如果是,则判定发生TC触发事件;所述发送TC报文为所述网络交换设备通过所有允许发送TC报文的端口,向与其相连的其它网络交换设备发送TC报文。
其中,所述端口由不能转发数据报文转换为可以转发数据报文为所述端口的角色由替换端口和备份端口中的任意一种转换为根端口、指定端口和主端口中的任意一种,且端口状态转换为转发状态。
其中,所述端口由不能转发数据报文转换为可以转发数据报文为所述端口的角色由不可用端口转换为根端口、指定端口或主端口中的任意一种,且端口状态转换为转发状态。
其中,所述检测是否发生TC触发事件为所述网络交换设备检测是否接收到TC报文,如果是,则判定发生TC触发事件;所述发送TC报文为所述网络交换设备通过未接收到所述TC报文且允许发送TC报文的端口,向与其相连的其它网络交换设备发送TC报文。
当所述网络交换设备运行多生成树协议MSTP时,所述网络交换设备检测到发生TC触发事件后,进一步包括所述网络交换设备确定所在各生成树实例中发生拓扑改变的生成树实例;所述发送TC报文为所述网络交换设备发送所述发生拓扑改变的生成树实例的TC报文。
所述在检测到发生TC触发事件之后进一步包括网络交换设备删除保存的媒体接入控制MAC地址。
本发明还提供了一种拓扑变化报文的处理装置,能够提高网络拓扑变化后的收敛速度,增加收敛的稳定性。
该装置包括检测模块和处理模块,其中,所述检测模块,用于检测TC触发事件,在判定检测到发生TC触发事件后,向处理模块发送TC触发消息;所述处理模块,用于接收所述检测模块发送的TC触发消息,根据接收的所述TC触发消息,立刻发送TC报文。
其中,所述检测模块,用于检测端口,在所检测端口由不能转发数据报文转换为可以转发数据报文时,判定检测到发生TC触发事件,向处理模块发送TC触发消息,该TC触发消息中携带端口由不能转发数据报文转换为可以转发数据报文的类型信息;所述处理模块接收到所述TC触发消息后,立刻通过所有允许发送TC报文的端口,向与该处理模块所在网络交换设备相连的其它网络交换设备发送TC报文。
其中,所述检测模块,用于检测接收的报文,在所接收的报文为TC报文时,判定检测到发生TC触发事件,向处理模块发送TC触发消息,该TC触发消息中携带接收到TC报文的类型信息;所述处理模块,接收到所述TC触发消息后,立刻通过未接收到所述TC报文且允许发送TC报文的端口,向与该处理模块所在网络交换设备相连的其它网络交换设备发送TC报文。
根据以上技术方案可见,应用本发明能够提高网络拓扑变化后的收敛速度,增加收敛稳定性。具体来说,具有如下有益效果本发明中,网络交换设备检测到发生TC触发事件后,立刻发送TC报文,而不是现有的在等待hello-time定时器超时后,才发送TC报文。因此,在网络拓扑发生变化时,网络拓扑变化事件能够以最快的速度传遍该网络交换设备所在生成树,避免了因等待hello-time定时器超时而引起的不良影响,使得变化后的网络迅速收敛,从而提高了网络拓扑变化后的收敛速度。
同时,由于不用等待hello-time定时器超时,使得网络交换设备每次都能够在接收到TC报文后,立刻向其它网络交换设备发送TC报文,避免了因各次接收TC报文的时刻与hello-time定时器超时时刻之间的时间差相差较多,而造成的网络拓扑变化后收敛时间相差很大的缺陷。因此,采用本发明,每次网络拓扑变化后的收敛时间相同,从而在提高收敛速度的同时,增加了收敛的稳定性。


图1为一种网络初始化后所形成生成树中各交换机端口的角色图。
图2为图1中数据链路发生故障后,重新确定各交换机端口角色后的角色图。
图3为目前发送TC报文的方法流程图。
图4为本发明实施例中TC报文处理方法的流程图。
图5为本发明TC报文处理装置的结构示意图。
具体实施例方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明为一种TC报文的处理方案,其基本思想为当网络交换设备检测到发生TC触发事件时,立刻发送TC报文,从而提高了网络拓扑变化后的收敛速度,增加收敛稳定性。
这里,TC触发事件为表示网络拓扑发生变化的事件。网络拓扑的变化往往体现在网络交换设备端口是否能够转发数据报文的变化,或者是网络交换设备接收到表示网络拓扑发生变化的TC报文。
本发明的技术方案可以适用于采用发送TC报文的方式传递网络拓扑变化信息的网络交换设备,例如配置并运行RSTP或MSTP的网络交换设备。其中,运行RSTP或MSTP的网络交换设备可以是交换机或路由器。下面在描述本发明的技术方案时均以交换机为例进行描述,且描述中所涉及的交换机端口都启动了RSTP或MSTP协议。
图4为本发明实施例中TC报文处理方法的流程图。如图4所示,该方法包括以下步骤步骤401交换机检测是否发生TC触发事件,如果是,则执行步骤402,否则,返回步骤401。
本步骤中,TC触发事件的类型主要包括以下两种TC触发事件的第一种类型为交换机端口由不能转发数据报文转换为可以转发数据报文。
交换机端口是否能转发数据报文与交换机端口的角色和状态相关。其中,对于端口的角色,包括根端口,指定端口,主(MASTER)端口、替换端口、备份(BACKUP)端口和不可用端口。其中,根端口是负责向上游桥转发数据报文的端口;指定端口是负责向下游桥交换机发送数据报文的端口;主端口是连接到总根的端口;替换端口是主端口的备份端口,也是根端口的备份端口;备份(BACKUP)端口是同一台交换机的两个端口相互连接时,被阻塞的端口。端口角色的不同,使得端口对BPDU报文的处理能力也不同,具体地,根端口、指定端口和主端口可以接收和发送BPDU报文,替换和备份端口可以接收但不能发送BPDU报文。
对于端口的状态,其决定了端口是否能够转发数据报文,且与端口角色存在联系。其中,根端口、指定端口和主端口的状态可以为转发状态,处于转发状态的端口可以转发数据报文。替换端口和备份(BACKUP)端口的状态为阻塞状态,处于阻塞状态的端口不是物理的断路,只是处于阻塞状态,不能转发数据报文。不可用端口是物理断路的端口,不接收和转发任何报文。
由以上对端口的角色和状态的说明可见,交换机端口由不能转发数据报文转换为可以转发数据报文可以具体分为以下两种情况1)端口角色从替换端口和备份端口中的一种转换为根端口、指定端口和主端口中的任意一种,且端口状态转换为转发状态。转换前,替换/备份端口的状态为阻塞状态,不能转发数据报文,而转换后的端口状态为转发状态,可以转发数据报文。
2)端口角色从不可用端口,即物理断路,转换为根端口、指定端口和主端口中的任意一种,且端口状态转换为转发状态。转换前,不可用端口不能接收和转发任何报文,而转换后的端口状态为转发状态,可以转发数据报文。
因此,当交换机检测到发生上述两种情况中的任意一种时,可以确定网络拓扑发生改变,从而判定为检测到发生TC触发事件。
这里举一个具体实例,对上述检测到第一种类型的TC触发事件进行说明。由图1和图2示出的网络拓扑变化前和变化后的交换机端口角色图可以看出,当交换机2和3之间的链路发生故障后,经重新确定各交换机端口的角色,从而形成新的生成树。交换机5中的端口prot51原角色为替换端口,经重新确定端口角色后,其新角色为根端口,端口状态也由原来的阻塞状态转换为转发状态,符合上述第一种类型的TC触发事件中,端口角色从替换端口转换为根端口的情况。交换机5判定检测到发生TC触发事件。
TC触发事件的第二种类型为端口接收到TC报文。
现有的BPDU报文中包括根桥优先级、根路径花费、本桥优先级、端口优先级等用于进行角色选择的字段,以及1字节的标识(Flag)字段,该标识字段中的最低1比特数据位为TC标志位,将该TC标志位设置为1时,表示该BPDU报文为TC报文。
因此,交换机检测是否接收到TC报文的操作为在接收到BPDU报文后,如果判断该BPDU为TC报文,可以确定网络拓扑发生改变,从而判定为检测到发生TC触发事件。
步骤402交换机判断检测出的TC触发事件类型,如果该TC触发事件的类型为端口由不能转发数据报文转换为可以转发数据报文,则执行步骤403;如果TC触发事件的类型为接收到TC报文,则执行步骤404。
本步骤402中,根据步骤401的检测结果判断TC触发事件是端口变化还是接收到TC报文。
步骤403交换机立刻通过所有允许发送TC报文的端口,向与其相连的其它交换机发送TC报文,并删除其自身保存的MAC表中,与发送TC报文的端口对应的MAC地址,结束当前流程。
其中,交换机的端口是否允许发送TC报文,具体可以根据MSTP标准-802.1s和RSTP标准-802.1w进行判断,这里就不在赘述。
举一个具体实例,如图2示出的交换机5,经过步骤401的检测,检测结果为交换机5的端口角色由替换端口转换为根端口,且端口状态转换为转发状态,则在不等待hello-time定时器超时的情况下,交换机5立刻向与其相连的交换机4和6发送TC报文,同时清空交换机5保存的MAC表。
步骤404交换机立刻通过未接收到该TC报文且允许发送TC报文的端口,向与其相连的其它交换机发送TC报文,并删除其保存的MAC表中,与发送TC报文的端口对应的MAC地址。
这里举一个具体实例对步骤404进行说明。如图2示出的交换机6,经过步骤401的检测,检测结果为交换机6的端口port61接收到交换机5发来的TC报文,则立刻通过端口port62向交换机1发送其生成的TC报文。同时,交换机6将其保存的MAC表中与port62对应的MAC地址删除。
至此,完成了交换机对TC报文的处理。
图2示出的网络拓扑中的每个交换机都会执行图4示出的步骤,当所有的交换机均完成了发送TC报文以及删除MAC表中相应MAC地址的操作后,就恢复了该网络拓扑的数据流量,从而完成了网络拓扑变化后的收敛。
根据上述流程,采用图4的处理方法,交换机能够在网络拓扑发生变化时,不用等待hello-time定时器超时,立刻向外发送TC报文,因此网络拓扑变化事件能够以最快的速度传遍生成树上的所有交换机,使得变化后的网络迅速收敛。同时,由于不用等待hello-time定时器超时,使得每次网络拓扑变化后的收敛时间相差很小,从而在提高收敛速度的同时,增加了收敛的稳定性。
需要说明的是,在上述步骤403和步骤404中,在发送TC报文时,检测到TC触发事件的交换机是向与之处于同一生成树的交换机发送TC报文。
具体地,当交换机运行MSTP时,由于同一交换机可能处于多个不同的实例中,这里所说的实例是指MSTP中的生成树实例,每一个实例对应一棵生成树。因此,交换机在检测到发生TC触发事件后,需要确定其所在各实例中的哪个实例的生成树发生拓扑改变,然后发送该发生拓扑改变实例的TC报文。例如,交换机A同时属于实例1和实例2,那么当交换机A检测到实例1中发生TC触发事件后,进行相应处理后,发送实例1的TC报文。
需要说明的是,在上述实施例中,是以交换机为例来说明本发明中如何对TC报文进行处理。对于其他的网络交换设备比如路由器,本发明实现对TC报文进行处理的过程与上述实施例的过程相同。
为了实现本发明TC报文的处理方法,本发明实施例提供了一种TC报文的处理装置。图5为本发明TC报文处理装置的结构示意图,如图5所示,该TC报文处理装置500包括检测模块510和处理模块520。
其中,检测模块510,用于检测TC触发事件,在判定检测到发生TC触发事件时,向处理模块520发送TC触发消息。该TC触发消息用于通知处理模块520检测到了TC触发事件。
处理模块520,接收检测模块510发送的TC触发消息,根据接收的TC触发消息立刻发送TC报文。
具体来说,图5所示装置的第一种具体实现方式为检测模块510,用于检测端口,在所检测端口由不能转发数据报文转换为可以转发数据报文时,判定检测到发生TC触发事件,向处理模块520发送TC触发消息。该TC触发消息中携带有端口由不能转发数据报文转换为可以转发数据报文的类型消息,因此该TC触发消息不仅通知处理模块520检测到了TC触发事件,还通知处理模块520所检测到的TC触发事件的类型。那么,处理模块520在接收到该TC触发消息后,立刻通过所有允许发送TC报文的端口,向与该处理模块520所在交换机相连的其它交换机发送TC报文,同时删除处理模块520所在交换机自身保存的MAC表中,与发送TC报文的端口对应的MAC地址。
图5所示装置的第二种具体实现方式为检测模块510,用于检测接收的报文,在所接收的报文为TC报文时,判定检测到发生TC触发事件,向处理模块520发送TC触发消息。该TC触发消息中携带接收到TC报文的类型信息,因此可以通知处理模块520检测到了TC触发事件,且该TC触发事件的类型为接收到TC报文。那么,处理模块520在接收到该TC触发消息后,立刻通过未接收到该TC报文且允许发送TC报文的端口,向与该处理模块520所在交换机相连的其它交换机发送TC报文,同时删除处理模块520所在交换机自身保存的MAC表中,与发送TC报文的端口对应的MAC地址。
当然,上述的两种具体实现方式可以在本发明装置中同时应用,即图5所示装置中的检测模块510和处理模块520,即可实现本发明装置第一种实现方式中的功能,也可以实现本发明装置第二种实现方式中的功能。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种拓扑改变报文的处理方法,其特征在于,该方法包括网络交换设备检测是否发生拓扑改变TC触发事件,如果是,则立刻发送TC报文。
2.如权利要求1所述的方法,其特征在于,所述检测是否发生TC触发事件为网络交换设备检测其端口是否由不能转发数据报文转换为可以转发数据报文,如果是,则判定发生TC触发事件;所述发送TC报文为所述网络交换设备通过所有允许发送TC报文的端口,向与其相连的其它网络交换设备发送TC报文。
3.如权利要求2所述的方法,其特征在于,所述端口由不能转发数据报文转换为可以转发数据报文为所述端口的角色由替换端口和备份端口中的任意一种转换为根端口、指定端口和主端口中的任意一种,且端口状态转换为转发状态。
4.如权利要求2所述的方法,其特征在于,所述端口由不能转发数据报文转换为可以转发数据报文为所述端口的角色由不可用端口转换为根端口、指定端口或主端口中的任意一种,且端口状态转换为转发状态。
5.如权利要求1所述的方法,其特征在于,所述检测是否发生TC触发事件为所述网络交换设备检测是否接收到TC报文,如果是,则判定发生TC触发事件;所述发送TC报文为所述网络交换设备通过未接收到所述TC报文且允许发送TC报文的端口,向与其相连的其它网络交换设备发送TC报文。
6.如权利要求1所述的方法,其特征在于,当所述网络交换设备运行多生成树协议MSTP时,所述网络交换设备检测到发生TC触发事件后,进一步包括所述网络交换设备确定所在各生成树实例中发生拓扑改变的生成树实例;所述发送TC报文为所述网络交换设备发送所述发生拓扑改变的生成树实例的TC报文。
7.如权利要求1所述的方法,其特征在于,所述在检测到发生TC触发事件之后进一步包括网络交换设备删除保存的媒体接入控制MAC地址。
8.一种拓扑改变报文的处理装置,其特征在于,该装置包括检测模块和处理模块,其中,所述检测模块,用于检测TC触发事件,在判定检测到发生TC触发事件后,向处理模块发送TC触发消息;所述处理模块,用于接收所述检测模块发送的TC触发消息,根据接收的所述TC触发消息,立刻发送TC报文。
9.如权利要求8所述的装置,其特征在于,所述检测模块,用于检测端口,在所检测端口由不能转发数据报文转换为可以转发数据报文时,判定检测到发生TC触发事件,向处理模块发送TC触发消息,该TC触发消息中携带端口由不能转发数据报文转换为可以转发数据报文的类型信息;所述处理模块接收到所述TC触发消息后,立刻通过所有允许发送TC报文的端口,向与该处理模块所在网络交换设备相连的其它网络交换设备发送TC报文。
10.如权利要求8所述的装置,其特征在于,所述检测模块,用于检测接收的报文,在所接收的报文为TC报文时,判定检测到发生TC触发事件,向处理模块发送TC触发消息,该TC触发消息中携带接收到TC报文的类型信息;所述处理模块,接收到所述TC触发消息后,立刻通过未接收到所述TC报文且允许发送TC报文的端口,向与该处理模块所在网络交换设备相连的其它网络交换设备发送TC报文。
全文摘要
本发明公开了一种拓扑改变报文的处理方法,该方法在网络交换设备检测到拓扑改变(TC)触发事件时立刻发送TC报文。本发明还公开了一种拓扑改变报文的处理装置,包括检测模块和处理模块。使用本发明能够提高网络拓扑变化后的收敛速度,增加收敛稳定性。
文档编号H04L29/06GK101060485SQ200710097340
公开日2007年10月24日 申请日期2007年5月11日 优先权日2007年5月11日
发明者赵里遥, 孙凯 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1