STP协议的缺陷主要表现在收敛速度上,当拓扑变化时,新的配置消息要经过一定的延时才能传播到整个网络,这个延时称为ForwardDelay,协议默认值是15秒。在所有网桥收到这个变化的消息之前,若旧拓扑结构中处于转发的端口还没有发现自己应该在新的拓扑中停止转发,则可能存在环路。为了解决临时环路问题,生成树使用了一种定时器策略,即在端口从阻塞状态到转发状态中间加上一个只学习MAC地址但不参与转发的中间状态,两次状态切换的时间长度都是ForwardDelay,这样就保证不会产生临时环路。但是,这个解决方案带来的却是最少2倍ForwadDelay的收敛时间。
RSTP在STP协议中做了3点重要改进,使得收敛速度快了很多(最快1秒以内)
1.为根端口和指定端口设置了快速切换用的替换端口(Alternate port)和备份端口(back up)两种角色,在根端口或指定端口失效的情况下,替换端口或备份端口就会无时延的进入转发状态。无需等待2倍的ForwardDelay时间。
2.在只连接了两个交换机端口的点对点链路中,制定端口只需与下游网桥进行一次握手就可以无时延地进入转发状态。如果是连接来3个以上的网桥共享链路,下游网桥是不会响应上游指定端口发出的握手请求的,只能等待两倍ForwardDelay时间进入转发状态。
3.直接与终端相连而不是把其他网桥相连的端口定义为边远端口(Edge port)。边缘端口可以直接进入转发状态,不需要任何延时。但由于网桥无法知道端口是否是直接与终端相连,所以需要人工配置。