1 RSTP的引入
虽然STP消除了二层网络环路并为网络提供了冗余,但其网络收敛时间比较长,使得对时延敏感的业务不能接受,就引入了STP的升级版快速生成树RSTP。
RSTP的IEEE标准为802.1w,RSTP消除环路的思想跟STP一致,同时RSTP能兼容STP。与STP相比,RSTP比STP进行了如下改变:
1.1 RSTP端口状态
端口状态 |
是否发送BPDU |
是否学习MAC地址 |
是否发送数据 |
Discarding |
否 |
否 |
否 |
Learning |
是 |
是 |
否 |
Forwarding |
是 |
是 |
是 |
RSTP中的Discarding相当于STP中的Disabled、Blocking、listening。RSTP在Discarding状态就确定了端口角色,处于Learning状态的端口跟STP处理方式相同,此期间端口开始进行MAC的学习,经过Forward Delay之后,进入Forwarding状态。
1.2 RSTP端口角色
RSTP中根端口和指定端口角色的确定跟STP的确认方法一致,发生改变的是STP的Alternate端口角色。
在RSTP中,Alternate端口角色被分为两部分:Backup端口角色和Alternate端口角色,具体划分原则如下:
1.3 RSTP的BPDU格式
RSTP的BPDU格式跟STP的BPDU格式非常相似,仅在如下几个字段有所不同 :
4.RSTP在BPDU最后增加了Versionl Length字段,该字段值为0x00,表示本BPDU中不包含Versionl 。
1.4 RSTP的 BPDU发送方式
STP中,通常情况下只有根桥从指定接口发送配置BPDU报文,非根桥从根端口收配置BPDU报文并更新。而RSTP对BPDU的发送方式进行了改变,RSTP中网桥可以自行从指定端口发送发送RST BPDU,不需等待根桥发送过来的BPDU,发送周期为Hello Time。这样为网桥之间提供了一种保活机制,即在一定时间内,网桥没有收到对端发送过来的RST BPDU,即可认为和对端网络的连接中断。
RSTP规定,在3个连续的Hello Time时间内网桥没有收到对端指定桥发送的RST BPDU,则该端口保存的RST BPDU老化,认为与对端网桥连接中断。
在STP中,只有指定端口收到低优先级的配置BPDU时才会立即回复,而RSTP中,当收到低优先级的RST BPDU时的Alternate端口也会对其立即回复。
边缘端口连接的是终端,当网络拓扑发生改变时,边缘端口不会产生临时环路,因此边缘端口不需要经过2个Forward Delay时间而直接进入Forwarding状态。
由于网桥不能自动设备边缘端口,需要手动配置与终端设备相连的端口为边缘渡口。
RSTP定义了Alternate端口为根端口的备份端口,当旧的根端口进入阻塞状态时,优先级高的Alternate端口成为新的根端口,并该新根端口连接对端网桥的指定端口处于Forwarding状态,则新根端口立即进入转发状态。
RSTP定义了Proposal/Agreement机制(P/A机制),指定端口可以通过与对端端口进行一次握手,即可快速进入转发状态,其中不需要任何定时器。
P/A机制必须是在点对点链路中进行,从而实现网络拓扑逐链路收敛。
P/A机制实现过程如下:
在P/A整个过程中不要启用任何定时器,加快了网络收敛的时间。
注:当指定端口发出Proposal BPDU后没有收到Ageement BPDU,则该端口切换到STP方式,需要等待30s(2倍Forward Delay)才能进入转发状态。
RSTP中触发拓扑改处理过程变的条件为非边缘端口转变为forwarding状态,链路中断是不会直接触发拓扑改变处理过程的。
拓扑改变处理过程如下:
通过这种方式,拓扑改变消息会快速泛洪到整个网络,而不需要等待网桥来通知个网桥拓扑改变的消息。
RSTP的拓扑改变处理过程不再使用TCN BPDU,而是发送TC位置位的RST BPDU,并通过泛洪的方式快速通知整个网络。RSTP在收到TC位置位的RST BPDU后不需要在Max Age+Forward Delay时间内将MAC地址老化时间该为Forward Delay,而是直接清除端口学习到的MAC地址,重新学习,实现网络的快速收敛 。
RSTP支持STP的所有功能,并能与STP兼容运行,但STP不能兼容RSTP,当启用STP协议的端口收到RST BPDU时,会将RST BPDU丢弃 。
当RSTP端口连续3次接受到配置BPDU时,网桥会将该端口切换到STP协议运行。