「RSTP」- 00.Protocol Operation (RSTP)

事实上对于STP,指定端口的选择可以很快完成,主要的速度瓶颈在于:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定,也就是说必须要等待至少一个 Forward Delay 所有端口才能进行转发。

而RSTP的主要目的就是消除这个瓶颈,通过阻塞自己的非根端口来保证不会出现环路。而使用P/A机制加快了上游端口进入Forwarding状态的速度。

初始化的过程……

初时状态:DP=Discarding

在初始时,Switch 认为自己所有的端口都是 DP 状态,处于 Discarding 状态:

相互协商:BPDU.Proposal=1

当初始时所有交换机都会 相互 发送 RST BPDU 帧,Proposal=1

开始同步:Lower BID

如果 SW 收到的 BPUD 优先级(BID)较低,则会忽略该 BPDU 帧。在图示里,SWA 的 BID 更优,所以会忽略 SWB 的 BPDU 帧;

如果 SW 收到的 BPUD 优先级(BID)较高,将停止发送 BPDU 并开始进入同步状态。在图示中, SWB 将进入同步状态。

在 同步阶段 下:
1)所有 Non-edge Port 进入 Discarding 状态;
2)发送端口变为 Root Port,并且 快速 进入 Forwarding 状态;其他端口已进入 Discarding 状态,因此不会形成环路;

回复确认:BPDU.Agreement=1

SWB 发送 BPDU.Agreement=1 给 SWA 交换机;
SWA 收到 BPDU.Agreement=1 之后,此时 SWA 的 Designated Port 将 立刻 进入 Forwarding 状态。

继续进行其他链路协商

然后 P/A 继续进行,SWB 与 SWC 开始进行协商,整个协商过程是分段进行的。

在该拓扑中,假设当 SWA 与 SWB/SWC 计算完成后,SWB 与 SWC 才开始进行计算。此时,SWB.Designated Port 需要经过 Forward Delay * 2 才能进入转发状态,因为对端 SWC.Alertnated Port 无法回应 BPDU.Agreement=1 帧。不过也没有关系,因为这条链路不会进行数据转发。

网络拓扑稳定……

在 Standard STP 中,计算复杂且缓慢,原因在于当拓扑稳定后:
1)Root Bridge 按照 Hello Time 规定的时间间隔发送 CFG BPDU;
2)其他 Non-root Bridge 在收到上游设备发送过来的 CFG BPDU 后,才会触发发出 CFG BPDU;

RSTP 改进 CFG BPDU 的发送方式。在拓扑稳定后,无论 Non-root Bridge 是否接收到 Root Bridge 传来的 CFG BPDU报文,Non-root Bridge 仍然按照 Hello Time 规定的时间间隔发送 CFG BPDU,该行为完全由每台设备自主进行。