RSTP快速生成树协议之(一)STP协议的不足
STP协议的不足
STP协议虽然能够解决环路问题,但是由于网络拓扑收敛较慢,影响了用户通信质量,而且如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这也是用户无法忍受的。
由于STP的不足,IEEE于2001年发布的802.1w标准定义了RSTP。RSTP在STP基础上进行了诸多改进优化,使得协议更加清晰、规范,同时也实现了二层网络拓扑的快速收敛。那STP协议具体存在哪些不足呢?RSTP协议是如何在STP协议的基础上进行优化的呢?本节笔记主要着重讲述STP协议中都带来了哪些不足。
注:下面的拓扑图中,如无特意标注,DP代表指定端口,RP代表根端口,BP代表阻塞端口(Block Port)或备份端口(Backup Port)。由于BP可能有两种释义,所以会在下文中特地注明是哪种端口。
问题一:设备运行STP初始化环境收敛时间长
STP从初始状态到完全收敛至少需经过30s。
在前面的随笔中介绍的STP协议介绍时也有提到,STP算法是采用被动等待计时器超时的方式来判断已收集全网所有的BPDU,进而再进行计算。
①在STP运行的初始时间点,交换机之间会相互发送,监听BPDU,并计算生成树,其中端口状态会先从Discarding到Listening。
②STP为避免临时环路,必须等待足够长的时间(即确保BPDU能同步发送至全网各节点)确保全网的端口状态全部确定,才能进入转发。此时端口状态从Listening到Learning,大约需要15秒的时间。
③在STP进入转发前还需根据收到的用户流量构建MAC地址表,仍需等待计时器超时才能进入转发。此时端口状态从Learning到Forwarding,大约需要15秒的时间。
所以端口要从阻塞到转发,从Discarding到Forwarding,是需要总共经历30秒的时间,才能完成收敛。
问题二:交换机有BP端口,RP端口down的场景
直连链路down掉,其BP端口切换成RP端口并进入转发状态至少需要经过30秒。
当SWC检测到其与根桥失去连接,根端口(RP)down的时候,它会将自己的阻塞端口(BP)重新选举为根端口。为确保拓扑变化信息已经扩散到全网,且所有设备都已完成拓扑更新,故SWC的新的根端口还需等待计时器超时后才能进入转发。
SWC要将阻塞端口变成新的根端口,从开始的blocking(阻塞)状态,并经过2个Forward Delay时间(30秒)才进入转发状态。
问题三:交换机无BP端口,RP端口down的场景
SWB与SWA的直连链路down掉,则SWC的BP端口切换成DP端口并进入转发状态大约需要50秒。
由上图,SWB检测到其与根桥连接的根端口(RP)失效,其运作方式如下:
①SWB会以自己为根桥开始向SWC的阻塞端口(Blocked Port)发送配置BPDU。
②SWC还可以通过根端口(RP)收到根桥的BPDU ,而阻塞端口(BP)收到BPDU则不会作处理,因为此时SWB发来的BPDU是次优的(SWB的优先级比SWA低)。在STP中,交换机除指定端口外的其他端口收到次优BPDU都不会做处理。
③一开始没有发生故障时,SWC的阻塞端口(BP)会定期收到关于根桥的BPDU,而等待了BPDU的老化时间(Max Age),端口缓存的BPDU超时后(大约需要20秒的时间)后,这个阻塞端口(BP)才会开始重新进行收敛。
④重新进行收敛,端口还要等待并经过2个Forward Delay时间(30秒)才进入转发状态。
综上所述,从产生故障到拓扑收敛,总共至少需要50秒的时间。
问题四:运行STP的交换机连接用户终端的场景
交换机连接终端的链路进入转发需要经过30s。
STP中,连接终端的链路也要进行生成树计算,且链路进入转发需等待2个Forward Delay时间(30秒)。而事实上,只要保证该端口下连接的是终端设备就不会出现环路,即没有必要进行STP计算和等待计时器超时
问题五:STP的拓扑变更机制
在之前的STP笔记中也有提到,当局域网中某台交换机突然感应到拓扑发生了更改,会想上游交换机发送TCN BPDU报文,当时给出的例子只有三台交换机,那么如果是多台交换机的情况下,STP协议又是怎么应对的呢?
拓扑变更处理过程:
①在网络拓扑发生变化后,下游设备会不间断地向上游设备发送TCN BPDU报文。
②上游设备收到下游设备发来的TCN BPDU报文后,只有指定端口处理TCN BPDU报文。其它端口也有可能收到TCN BPDU报文,但不会处理。
③上游设备会把配置BPDU报文中的Flags的TCA位设置1,然后发送给下游设备,告知下游设备停止发送TCN BPDU报文。
④上游设备复制一份TCN BPDU报文,向根桥方向发送。
⑤重复上述步骤,直到根桥收到TCN BPDU报文。
⑥根桥把配置BPDU报文中的Flags的TC位置1后发送,通知下游设备直接删除桥MAC地址表项。
可以看出,当发生拓扑变更时,STP需要逐层将TCN BPDU发送到根桥,并向下游回复TCA消息,最后再由根桥向下发送TC消息,通知设备删除MAC地址表项,在交换网络设备数量不断增大的今天,STP的机制愈显复杂,致使效率低下。
以上就是STP具有的问题,那么下一节将会继续讨论RSTP协议相对于STP协议来说,其用了什么方法来解决现有的问题,以及都作出了哪些改进。