CN102255758A - 一种提高快速生成树协议收敛速度的方法 - Google Patents
一种提高快速生成树协议收敛速度的方法 Download PDFInfo
- Publication number
- CN102255758A CN102255758A CN2011102295437A CN201110229543A CN102255758A CN 102255758 A CN102255758 A CN 102255758A CN 2011102295437 A CN2011102295437 A CN 2011102295437A CN 201110229543 A CN201110229543 A CN 201110229543A CN 102255758 A CN102255758 A CN 102255758A
- Authority
- CN
- China
- Prior art keywords
- port
- rstp
- true
- link
- failure recovery
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及计算机网络通讯领域,提供一种提高快速生成树协议收敛速度的方法。本发明是在针对标尺RSTP标准协议状态机不做改动的基础上增加了额外的快速处理机制,不但与原有状态机完全兼容,并且可以在主链路故障恢复以后快速的迁移回主链路。本发明克服了传统RSTP在链路故障恢复时收敛时间在1s以上的缺点,可以将生成树协议的故障恢复速度达到50ms以内。
Description
技术领域
本发明涉及计算机网络通讯领域,特别是指一种快速生成树协议(RSTP)提高收敛速度的方法。
背景技术
局域网技术正是互联网技术的基础所在。近年来由于局域网规模的不断增长,STP(Spanning-Tree Protocol,生成树协议,以下简称STP)已经成为了当前最重要的局域网协议之一。STP是一个用于在局域网中消除环路的协议。运行该协议的交换机通过彼此交互信息而发现网络中的环路,并适当对某些端口进行阻塞以消除环路。换句话说,STP协议构造了一个包含局域网内部所有二层交换机的一棵没有环路的树。树上的所有节点都是属于局域网的一台交换机。
生成树协议基于以下几点:(1)有一个唯一的组地址(01-80-C2-00-00-00)标识一个特定LAN上的所有的交换机。这个组地址能被所有的交换机识别;(2)每个交换机有一个唯一的标识(Bridge Identifier);(3)每个交换机的端口有一个唯一的端口标识(Port Identifier)。对生成树的配置进行管理还需要:对每个交换机调协一个相对的优先级;对每个交换机的每个端口调协一个相对的优先级;对每个端口调协一个路径花费。具有最高优先级的交换机被称为根(root)交换机。每个交换机端口都有一个根路径花费,根路径花费是该交换机到根交换机所经过的各个跳段的路径花费的总和。一个交换机中根路径花费的值为最低的端口称为根端口,若有多个端口具有相同的根路径花费,则具有最高优先级的端口为根端口。在每个LAN中都有一个交换机被称为选取(designated)交换机,它属于该LAN中根路径花费最少的交换机。把LAN和选取交换机连接起来的端口就是LAN的选取端口(designated port)。如果选取交换机中有两个以上的端口连在这个LAN上,则具有最高优先级的端口被选为选取端口。
电子和电气工程师协会IEEE于2001年发布了802.1W标准,里面提出了一种新的更好的STP——RSTP,全称为Rapid Spanning-Tree Protocol,详细描述了该协议规范。RSTP协议基于STP协议,但是对原有协议做了更加细致的修改和补充。事实上,STP虽然能够防止环路,但还是存在很多不足之处,其设计有一些细节考虑的并不周全,而本身采用的计时器机制又十分笨拙。此外,没有对一些特殊的情况进行设计,导致了协议整体上比较粗糙。而RSTP则是局域网中最精细的协议之一。
STP协议的不足主要表现在一下几个方面:
首先,STP并没有细致区分端口状态和端口角色。网络协议的优劣往往取决于协议是否对各种情况加以细致区分。事实上,从用户角度上看Listening、Learning和Blocking状态是没有区别的,都同样不转发用户流量。从使用和配置上来讲,端口之间最本质的区别并不在于端口状态,而是在于端口扮演的角色。根端口和指定端口也可能处于Listening状态,也可能都处于Forwarding状态。
其次,STP算法是被动的算法,对网络是否已经达到收敛没有一种反馈机制。对待拓扑变化的基本的方法是通知根桥,修改MAC地址表老化时间,自动学习,确立新路径。这种以计时器来等待的方式显然是浪费时间,响应迟缓。
再次,STP的算法要求在稳定拓扑里,根桥主动发出BPDU而其他交换机进行中继,这样传动导致整个STP网络的收敛时间比较长。
根据STP的不足,RSTP新增加了端口的角色概念。并且把端口属性充分的按照状态和角色分解,使得可以更加精确的描述端口。增加了Alternate端口和Backup端口。RSTP的状态规范把原来的5种状态缩减为3种:Forwarding、Learning、Discarding,更好的精简了协议。
此外RSTP为了使网络拓扑达到快速收敛,引入了P/A协商机制(Proposal/Agreement协商机制)、根端口快速切换机制、边缘端口等。P/A快速协商机制是指:当一个端口被选举成为了指定端口之后,在STP中,该端口还要等待至少一个Forward Delay时间才会迁移到forwarding状态。在RSTP中,这样的端口角色会先进入Discarding状态。此时,可以通过Proposal/Agreement机制快速的进入forward状态。即上游交换机发送一个proposing置位的配置消息给下游交换机,下游在处理完毕后会恢复带有Agreement置位的配置消息给上游交换机,此时上游交换机处在Discarding状态的指定端口在收到Agreement置位的消息以后就可以进入forwarding状态,而不必等待2个Forwarding delay timer再进入Forwarding状态,从而可以加快STP的收敛速度。
本文中所提到的迁移时间或者收敛时间都是指由于链路故障或者链路恢复导致的链路切换过程中流量中断的时间。
传统的交换机实现中,大多数交换机即使能够实现P/A处理机制,收敛速度大多都在秒级,无法满足当前主流运营商和用户的需求。
发明内容
有鉴于此,本发明的目的在于提供一种RSTP快速收敛的方法,可以在保持与现有的RSTP协议完全兼容的情况下改进RSTP的收敛速度。使用本发明的技术方案,能够在运行RSTP协议的交换机出现链路故障恢复的情况下实现低于50ms的收敛速度。
本发明公开了一种提高RSTP在链路故障恢复时收敛速度的方法,其特征在于:在链路故障恢复以后,RSTP上游桥指定端口需要从阻塞状态快速迁移到转发状态时包括如下步骤:
步骤A,上游桥检测到链路恢复,主动发送Proposing置位的BPDU给下游桥;
步骤B,下游桥收到Proposing置位的BPDU以后,回复Agreement置位的BPDU给上游桥;
步骤C,上游桥收到Agreement置位的BPDU以后,判断该端口是否满足条件A,如果满足则将端口的Agreed设置为True;
步骤D,指定端口的Agreed设置为true以后,可以从阻塞快速进入转发状态。
其中,步骤C中的条件A,具体为以下条件必须全部为True:
条件A1,判断端口实际物理状态是否UP,是UP则A1为True;
条件A2,判断端口的点对点链路状态是否为True,如果端口的点对点链路状态为True,则A2为Ture;
条件A3,判断端口是否为指定端口并且没有收到优先级更高的BPDU,如果为指定端口并且没有收到更高优先级的BPDU,则A3为True。
其中,条件A2,具体为:
步骤A21,如果用户配置快速收敛命令,则不论点对点链路状态是否为True都将A2设置为True;
步骤A22,如果用户没有配置快速收敛命令,则点对点链路状态为True
则设置A2为True,否则设置A2为False。
本发明当根据用户配置直接跳过operPointToPointMAC的判断以后,底层驱动反馈的链路故障恢复事件即可进行切换。设备的链路故障恢复时间控制在50ms以内。
采用本发明的RSTP协议的快速收敛方法,可以在出现链路故障恢复的时候将RSTP协议的收敛速度大为提高,具体的处理方法为:
1)当底层驱动检测到链路恢复时不需要以中断形式上报,采用每隔固定时间间隔进行查询的方式检测即可。因为对于链路故障恢复而言收敛速不取决于检测到UP的时间,而在于端口UP以后协议切换的速度。特别是在已知单播流量的情况下,收敛速度主要取决于端口状态迁移和MAC地址删除的时间差;
2)因为链路恢复时的收敛速度主要取决于RSTP标准协议的收敛速度,为了提高RSTP标准协议的收敛速度,本方法对标准的RSTP协议流程进行了一定程度的改进,具体改进方法如下:
a)标准协议需要上游桥发送Proposing置位的BPDU给下游桥,下游桥回复Agreement置位的BPDU给上游桥。当上游桥需要快速迁移的端口收到Agreement置位的配置消息以后并不会马上进行迁移,而是需要判断变量operPointToPointMAC是否为ture来决定是否进行快速迁移。
b)而该变量operPointToPointMAC表明MAC连接到一个点对点的链路上,协议规定该变量一般设置为auto,即根据链路情况进行判断是否为true。这样以来,当链路恢复时,由于operPointToPointMAC是否为True需要底层驱动在进行链路双工协商以后才能判定,这就导致RSTP的收敛速度大为下降。
c)因此,本方法将根据用户需要在配置有快速收敛的命令时不再判断点对点链路的条件,只要满足其余的条件就可以将端口的agreed变量置位1,表示指定端口可以迁移到forwarding状态;
上述方案中对operPointToPointMAC变量的修改不会对协议产生影响,根据802.1D 2004中规定满足如下三个条件之一的链路即为点对点链路:
1)当前端口具有链路聚合能力或者已经聚合成功;
2)当前端口支持自动协商,并且协商结果是全双工模式;
3)当前端口被配置成全双工模式;
由上面三个条件可以看出,当前使用RSTP并且对收敛条件有要求的用户使用的都是点对点的链路,因此我们可以在用户配置快速收敛功能时不再判断端口的operPointToPointMAC是否为true,而不会有其他影响。该修改只在相应链路故障恢复时启用,其他情况下如果发现链路连接到非点对点的环境中,该变量依然会生效。
按照上述方法修改以后可以极大的加快链路故障和恢复时的收敛速度,特别是故障恢复时的收敛速度。因为一般当链路故障恢复时需要进行链路状态和速率的协商,当前随着以太网所支持的速率双工类型越来越多,协商的效率也越来越慢,所以很容易受到底层的协商速率影响从而使RSTP的收敛速度变慢。当根据用户配置直接跳过operPointToPointMAC的判断以后则在很大程度上不依赖于底层驱动的返回信息,需要的只是底层驱动反馈的链路故障恢复事件即可进行切换。实际测试中由于采取的上述方法,可以将设备的链路故障恢复时间从1s以上缩短到50ms以内。
综上所述,本发明的优点在于:
1)可以将已经成熟的RSTP协议的链路故障恢复收敛时间达到与RRPP、MRPP、EAPS等新协议同等量级,极大的增加了RSTP协议的可用性;
2)能够支持机架式交换机和盒式交换机在典型评测环境中达到50ms以内的收敛速度;
3)完全兼容现有协议,不需要额外进行兼容性处理;
4)该功能可以根据用户和环境需要随时打开和关闭。
附图说明
图1为本发明的一个典型的RSTP组网环境示意图;
图2为本发明的链路故障恢复时处理过程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步详细描述。
如图1所示,它是本发明中基于RSTP协议的一个典型组网拓扑以及链路故障和恢复的实施例。交换机A(SWA)、交换机B(SWB)、交换机C(SWC)连接成一个环路。三台交换机都启用了RSTP协议,SWA是网络中的根桥,SWB和SWC之间的链路实际上会被协议阻塞,流量是通过SWA的2端口和SWC的5端口进行转发的。当端口2和端口5之间的链路发生故障时根据标准协议,最终流量会切换到1-3-4-6的链路上进行转发。当2-5之间的链路故障恢复时,根据标准协议,最终流量依然会切换到2-5链路上,只是标准协议的迁移时间较长,大约为1s以上的时间,个别机器尤其是万兆光口的切换时间会更长。
应用本发明的方法经过如下几点处理以后,如图2所示,可以将设备的链路切换时间缩短到50ms以内。
1)底层驱动检测到链路UP事件以后上报给上层协议处理;
2)根据标准协议端口2的角色是制定端口,端口5是根端口,根据标准协议端口2和端口5之间开始进行P/A快速协商,端口2发送Proposing置位的BPDU给端口5,端口5处理完毕后会回复一个Agreement置位的BPDU给端口2;
3)端口2收到Agreement置位的BPDU以后,判断用户是否开启快速收敛功能,如果用户配置了快速收敛功能则走步骤4,如果用户没有配置快速收敛功能则执行步骤5;
4)不再判断端口operPointToPointMAC变量是否为True,直接将端口的agreed变量置位,后面根据标准协议流程处理;
5)判断端口operPointToPointMAC变量是否为True,如果是则将端口的agreed变量置位,不是则不置位,后面根据标准协议流程处理。
与现有的标准RSTP相比,本发明在保持原有状态机完全兼容的情况下实现了RSTP协议在链路故障恢复以后的快速迁移,并且不依赖底层驱动反馈速率双工的协商结果,从而在很大程度上提高了协议的收敛速度,尤其是部分光口的收敛时间可以从1s以上提高到50ms。
上述仅为本发明的较佳实施例及所运用技术原理,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围的内。
Claims (5)
1.一种提高RSTP在链路故障恢复时收敛速度的方法,其特征在于:在链路故障恢复以后,RSTP上游桥指定端口需要从阻塞状态快速迁移到转发状态时包括如下步骤:
步骤A,上游桥检测到链路恢复,主动发送Proposing置位的BPDU给下游桥;
步骤B,下游桥收到Propos ing置位的BPDU以后,回复Agreement置位的BPDU给上游桥;
步骤C,上游桥收到Agreement置位的BPDU以后,判断该端口是否满足条件A,如果满足则将端口的Agreed设置为True;
步骤D,指定端口的Agreed设置为true以后,可以从阻塞快速进入转发状态。
2.根据权利要求1所述的提高RSTP在链路故障恢复时收敛速度的方法,其特征在于:步骤C中的条件A,具体为以下条件必须全部为True:
条件A1,判断端口实际物理状态是否UP,是UP则A1为True;
条件A2,判断端口的点对点链路状态是否为True,如果端口的点对点链路状态为True,则A2为Ture;
条件A3,判断端口是否为指定端口并且没有收到优先级更高的BPDU,如果为指定端口并且没有收到更高优先级的BPDU,则A3为True。
3.根据权利要求2所述提高RSTP在链路故障恢复时收敛速度的方法,其特征在于:其中条件A2,具体为:
步骤A21,如果用户配置快速收敛命令,则不论点对点链路状态是否为True都将A2设置为True;
步骤A22,如果用户没有配置快速收敛命令,则点对点链路状态为True
则设置A2为True,否则设置A2为False。
4.根据权利要求1-3之一所述提高RSTP在链路故障恢复时收敛速度的方法,其特征在于:当根据用户配置直接跳过operPointToPointMAC的判断以后,底层驱动反馈的链路故障恢复事件即可进行切换。
5.根据权利要求1-4之一所述提高RSTP在链路故障恢复时收敛速度的方法,其特征在于:设备的链路故障恢复时间控制在50ms以内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110229543.7A CN102255758B (zh) | 2011-08-11 | 2011-08-11 | 一种提高快速生成树协议收敛速度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110229543.7A CN102255758B (zh) | 2011-08-11 | 2011-08-11 | 一种提高快速生成树协议收敛速度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102255758A true CN102255758A (zh) | 2011-11-23 |
CN102255758B CN102255758B (zh) | 2014-09-10 |
Family
ID=44982763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110229543.7A Active CN102255758B (zh) | 2011-08-11 | 2011-08-11 | 一种提高快速生成树协议收敛速度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102255758B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103840965A (zh) * | 2013-10-18 | 2014-06-04 | 深圳市新格林耐特通信技术有限公司 | 一种增强rstp中故障快速收敛的方法 |
CN105245457A (zh) * | 2015-10-21 | 2016-01-13 | 盛科网络(苏州)有限公司 | 加快mstp中指定端口收敛速度的方法及装置 |
CN108512751A (zh) * | 2017-02-28 | 2018-09-07 | 华为技术有限公司 | 一种端口状态处理方法以及网络设备 |
CN111478778A (zh) * | 2020-04-03 | 2020-07-31 | 中电科航空电子有限公司 | 一种降低rstp环网功耗方法及其应用 |
CN114157384A (zh) * | 2021-12-27 | 2022-03-08 | 中国电子科技集团公司第三十四研究所 | Rstp协议应用中基于sdh光信号的链路判断方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040105455A1 (en) * | 2002-08-29 | 2004-06-03 | Seaman Michael John | Automatic edge port and one way connectivity detection with rapid reconfiguration for shared media in spanning tree configured bridged Local Area Networks |
CN1599373A (zh) * | 2004-07-21 | 2005-03-23 | 港湾网络有限公司 | 防止快速状态转换时产生临时环路的方法 |
CN1798155A (zh) * | 2004-12-30 | 2006-07-05 | 阿尔卡特公司 | 能够避免突发的生成树协议 |
CN1801820A (zh) * | 2006-01-11 | 2006-07-12 | 杭州华为三康技术有限公司 | 一种端口状态迁移的方法 |
US20090022069A1 (en) * | 2007-07-20 | 2009-01-22 | Cisco Tecnology, Inc. | Preventing loops in networks operating different protocols to provide loop-free topology |
-
2011
- 2011-08-11 CN CN201110229543.7A patent/CN102255758B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040105455A1 (en) * | 2002-08-29 | 2004-06-03 | Seaman Michael John | Automatic edge port and one way connectivity detection with rapid reconfiguration for shared media in spanning tree configured bridged Local Area Networks |
CN1599373A (zh) * | 2004-07-21 | 2005-03-23 | 港湾网络有限公司 | 防止快速状态转换时产生临时环路的方法 |
CN1798155A (zh) * | 2004-12-30 | 2006-07-05 | 阿尔卡特公司 | 能够避免突发的生成树协议 |
CN1801820A (zh) * | 2006-01-11 | 2006-07-12 | 杭州华为三康技术有限公司 | 一种端口状态迁移的方法 |
US20090022069A1 (en) * | 2007-07-20 | 2009-01-22 | Cisco Tecnology, Inc. | Preventing loops in networks operating different protocols to provide loop-free topology |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103840965A (zh) * | 2013-10-18 | 2014-06-04 | 深圳市新格林耐特通信技术有限公司 | 一种增强rstp中故障快速收敛的方法 |
CN103840965B (zh) * | 2013-10-18 | 2017-02-08 | 深圳市新格林耐特通信技术有限公司 | 一种增强rstp中故障快速收敛的方法 |
CN105245457A (zh) * | 2015-10-21 | 2016-01-13 | 盛科网络(苏州)有限公司 | 加快mstp中指定端口收敛速度的方法及装置 |
CN105245457B (zh) * | 2015-10-21 | 2018-08-28 | 盛科网络(苏州)有限公司 | 加快mstp中指定端口收敛速度的方法及装置 |
CN108512751A (zh) * | 2017-02-28 | 2018-09-07 | 华为技术有限公司 | 一种端口状态处理方法以及网络设备 |
CN108512751B (zh) * | 2017-02-28 | 2021-02-23 | 华为技术有限公司 | 一种端口状态处理方法以及网络设备 |
CN111478778A (zh) * | 2020-04-03 | 2020-07-31 | 中电科航空电子有限公司 | 一种降低rstp环网功耗方法及其应用 |
CN111478778B (zh) * | 2020-04-03 | 2021-11-02 | 中电科航空电子有限公司 | 一种降低rstp环网功耗方法及其应用 |
CN114157384A (zh) * | 2021-12-27 | 2022-03-08 | 中国电子科技集团公司第三十四研究所 | Rstp协议应用中基于sdh光信号的链路判断方法 |
CN114157384B (zh) * | 2021-12-27 | 2023-05-23 | 中国电子科技集团公司第三十四研究所 | 一种rstp协议应用中基于sdh光信号的链路判断方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102255758B (zh) | 2014-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2711712C (en) | Interworking an ethernet ring network and an ethernet network with traffic engineered trunks | |
CN101827009B (zh) | 利用服务vlan标识符在trill网络中路由帧 | |
CN102638389B (zh) | 一种trill网络的冗余备份方法及系统 | |
EP3267637A1 (en) | Hash-based multi-homing | |
CN102255758B (zh) | 一种提高快速生成树协议收敛速度的方法 | |
EP1469639B1 (en) | Method, software product, carrier medium and Ethernet switch for improving STP protocols in Ethernet networks supporting VLANs | |
EP2339791B1 (en) | Method for forwarding protocol frames in spanning rings and a shared node of multi-rings in the ethernet | |
US9641396B2 (en) | Packet processing method and system | |
CN101997735A (zh) | 单环网络拓扑重建方法及系统 | |
CN101120548A (zh) | 在通信网络中操作节点的方法 | |
CN101610193A (zh) | 以太环网自动发现及生成环的方法 | |
CN103607293B (zh) | 一种流量保护方法及设备 | |
CN101841450B (zh) | 多个环形拓扑构建相交环实现稳定通信的方法及系统 | |
CN1825832A (zh) | 快速环生成树协议 | |
CN102916862B (zh) | 工业以太网交换机的智能环网动态保护方法 | |
CN101641915B (zh) | 重构通信网络的方法 | |
CN100461742C (zh) | 提高vpls中客户端设备双归属网络可靠性的方法及装置 | |
CN112995002B (zh) | 一种交换机环网的设计方法、交换机及存储介质 | |
CA2310907C (en) | Creating a spanning tree of a network including clusters | |
CN100417139C (zh) | 一种组播数据不间断转发的方法 | |
EP1653669A1 (en) | Method of controlling osi (iso) layer-two loops for telecommunication networks | |
CN103840965B (zh) | 一种增强rstp中故障快速收敛的方法 | |
CN101771593B (zh) | 以太环网互联方法 | |
CN102075374A (zh) | 单环网络拓扑重建方法及系统 | |
CN101183921A (zh) | 一种保证业务流连续的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |