1       RSTP的引入

虽然STP消除了二层网络环路并为网络提供了冗余,但其网络收敛时间比较长,使得对时延敏感的业务不能接受,就引入了STP的升级版快速生成树RSTP

RSTPIEEE标准为802.1wRSTP消除环路的思想跟STP一致,同时RSTP能兼容STP。与STP相比,RSTPSTP进行了如下改变:

  1. 减少了端口状态

  2.增加了端口角色

  3.配置BPDU的格式和发送方式有所改变

  4.处理网络拓扑改变的方式不同,可以实现快速的收敛

1.1   RSTP端口状态

端口状态

是否发送BPDU

是否学习MAC地址

是否发送数据

Discarding

Learning

Forwarding

RSTP中的Discarding相当于STP中的DisabledBlockinglisteningRSTPDiscarding状态就确定了端口角色,处于Learning状态的端口跟STP处理方式相同,此期间端口开始进行MAC的学习,经过Forward Delay之后,进入Forwarding状态。

1.2   RSTP端口角色

RSTP中根端口和指定端口角色的确定跟STP的确认方法一致,发生改变的是STPAlternate端口角色。

RSTP中,Alternate端口角色被分为两部分:Backup端口角色和Alternate端口角色,具体划分原则如下:

Ø  当阻塞端口收到的更优配置BPDU来自其他网桥时,该端口就为Alternate端口。

Ø  当阻塞端口收到的更优配置BPDU来自本网桥时,该端口就为Backup端口。

Alternate端口为根端口做备份,Backup端口为指定端口做备份。

1.3   RSTPBPDU格式

RSTPBPDU格式跟STPBPDU格式非常相似,仅在如下几个字段有所不同

1. BPDU协议版本号变为0x02,表示RSTP STP的为0x00

2.  BPDU的类型变为0x02STP的为0x00

3.        RSTP使用了flags字段的全部8位,STP只使用最低位和最高位2位。RSTPflags字段包括如下位:

Ø  0位为TC标志位,跟STP相同。

Ø  1位为Proposal标志位,该位置位表示该BPDU为快速收敛机制中的Proposal报文。

Ø  2位和第3位为端口角色标志位,00表示端口角色未知,01表示端口为Alternate端口或Backup端口,10表示端口为根端口,11表示端口为指定端口。

Ø  4位为Learning标志位,该位置位表示端口处于Learnig状态。

Ø  5位为Forwarding标志位,该位置位表示端口处于Forwarding状态。

Ø  6位为Agreement标志位,该位置位表示该BPDU为快速收敛机制中的Agreement报文。

Ø  7位为TCA标志位,跟STP相同

4.RSTPBPDU最后增加了Versionl Length字段,该字段值为0x00,表示本BPDU中不包含Versionl

1.4   RSTP BPDU发送方式

STP中,通常情况下只有根桥从指定接口发送配置BPDU报文,非根桥从根端口收配置BPDU报文并更新。而RSTPBPDU的发送方式进行了改变,RSTP中网桥可以自行从指定端口发送发送RST BPDU,不需等待根桥发送过来的BPDU,发送周期为Hello Time。这样为网桥之间提供了一种保活机制,即在一定时间内,网桥没有收到对端发送过来的RST BPDU,即可认为和对端网络的连接中断。

RSTP规定,在3个连续的Hello Time时间内网桥没有收到对端指定桥发送的RST BPDU,则该端口保存的RST BPDU老化,认为与对端网桥连接中断。

STP中,只有指定端口收到低优先级的配置BPDU时才会立即回复,而RSTP中,当收到低优先级的RST BPDU时的Alternate端口也会对其立即回复。

2       RSTP快速收敛

2.1   边缘端口

边缘端口连接的是终端,当网络拓扑发生改变时,边缘端口不会产生临时环路,因此边缘端口不需要经过2Forward Delay时间而直接进入Forwarding状态。

由于网桥不能自动设备边缘端口,需要手动配置与终端设备相连的端口为边缘渡口。

2.2   根端口快速切换

RSTP定义了Alternate端口为根端口的备份端口,当旧的根端口进入阻塞状态时,优先级高的Alternate端口成为新的根端口,并该新根端口连接对端网桥的指定端口处于Forwarding状态,则新根端口立即进入转发状态。

2.3   指定端口快速切换

RSTP定义了Proposal/Agreement机制(P/A机制),指定端口可以通过与对端端口进行一次握手,即可快速进入转发状态,其中不需要任何定时器。

P/A机制必须是在点对点链路中进行,从而实现网络拓扑逐链路收敛。

P/A机制实现过程如下:

1.当新链路SWA连接到SWB,链路两端的端口初始都为指定端口并处阻塞状态,当该指定端口处于DiscardingLearning状态时,SWA会发送Proposal位置位、端口角色值为11(表示为指定端口)的RST BPDUSWB

2.当网桥SWB收到Proposal位置位的RST BPDU时,网桥先确定收到该BPDU的端口是否为根端口。如果是,网桥会启动同步过程(指网桥会阻塞除边缘渡口外的所有端口)。

3.网桥同步完成之后,根端口将进入转发状态,并向SWA网桥发送Agreement位置位、Forwardign置位、端口角色位值为10RST BPDU(该BPDU是复制前面Proposal位置位的RST BPDU,唯一不同的就是Flags字段的内容以及想置位的字段)进行回应。

4.收到该回应RST BPDU的网桥端口立即按照角色值来确认端口并立即进入转发状态。

5.由于启用同步之后,SWB上除边缘端口以及与SWA相连的端口处转发状态之外,与其他设备相连的端口均处于阻塞状态。处于阻塞状态的端口将重复步骤1-4来打开端口,直到整个网络收敛为止。

P/A整个过程中不要启用任何定时器,加快了网络收敛的时间。

注:当指定端口发出Proposal BPDU后没有收到Ageement BPDU,则该端口切换到STP方式,需要等待30s(2Forward Delay)才能进入转发状态。

3       RSTP中拓扑改变处理

RSTP中触发拓扑改处理过程变的条件为非边缘端口转变为forwarding状态,链路中断是不会直接触发拓扑改变处理过程的。

拓扑改变处理过程如下:

1.当网桥有非边缘端口转变为forwarding状态时,网桥会在两倍Hello Time时间内向根端口或指定端口发送TC位置位的BPDU,同时会清除这些端口学习到的MAC地址。

2. 当其他网桥收到TC位置位的BPDU之后,会清除接受TC报文的端口和除边缘端口外的其他端口的MAC地址,并会在两倍Hello Time时间内向指定端口和根端口发送TC置位的RST BPDU

通过这种方式,拓扑改变消息会快速泛洪到整个网络,而不需要等待网桥来通知个网桥拓扑改变的消息。

RSTP的拓扑改变处理过程不再使用TCN BPDU,而是发送TC位置位的RST BPDU,并通过泛洪的方式快速通知整个网络。RSTP在收到TC位置位的RST BPDU后不需要在Max Age+Forward Delay时间内将MAC地址老化时间该为Forward Delay,而是直接清除端口学习到的MAC地址,重新学习,实现网络的快速收敛

4       RSTPSTP的兼容

RSTP支持STP的所有功能,并能与STP兼容运行,但STP不能兼容RSTP,当启用STP协议的端口收到RST BPDU时,会将RST BPDU丢弃

RSTP端口连续3次接受到配置BPDU时,网桥会将该端口切换到STP协议运行。