Rapid Spanning Tree Protocol
- IEEE 802.1D – original STP, topology change takes 30 seconds before port goes from blocking to forwarding
- IEEE 802.1w – RSTP, much faster convergence, as with STP can be applied as a single instance or multiple instances by using RSTP with Cisco’s own PVST+, resulting in Rapid PVST+. Can also be used as part of IEEE 802.1s Multiple Spanning Tree (MST) operation.
RSTP Port Behavior
Root bridge election takes place as per STP, but then the following port roles are determined:
- root port – same as STP, one port per switch that has the best root path cost to the root
- designated port – switch port on a network segment that has the best root path cost to the root
- alternate port – port with an alternative path to the root, different to the path the root port takes, but less desirable eg. an access layer switch with 2 uplink ports – 1 is root and the other alternate
- backup port – a port that provides a redundant but less desirable connection to a segment where another switch port already connects
RSTP defines the following port states, that can be applicable to any port:
- discarding – incoming frames are dropped, no MAC addresses are learned. combines all 802.1D’s disabled, blocking and listening states
- learning – incoming frames are dropped, but MAC addresses are learnt
- forwarding – incoming frames are forwarded according to MAC addresses learned and or being learned
BPDU’s in RSTP
- originate from the root bridge and are relayed by all switches down through the tree
- used the 802.1D BPDU format for backward compatability, but also makes use of some previously unused bits in the Message Type field
- BPDU version is also set to 2
- sent out every switch port at Hello Time intervals
- when 3 BPDU’s in a row are not received from a neighbour it is presumed to be down, which means a dead neighbour can be detected in 3 x the default Hello Time interval (3 x 2 Secs = 6 secs) as opposed to 802.1D’s Max Age Timer (default 20 secs)
- can co-exist with switches running STP as the BPDU’s are distinguished from 802.1D BPDU’s (version 0)
Rapid Spanning Tree Convergence
- convergence in STP is the process to get all switches from a state of independence to one of uniformity, with each switch knowing its place in the loop-free topology
- one common root bridge must be elected, and all switches must know about it
- the state of every switch port in the STP domain must be brought from a blocking state to the appropriate state to prevent loops
- RSTP differs in that when a switch joins the topology it must base its forwarding decisions on the type of port
Port Types (every switch port can be considered one of the following types:
- edge port – at the edge of the network where only a single host connects. RSTP keeps the traditional PortFast feature for familiarity, and will place the port immediately in the forwarding state unless a BPDU is received on it
- root port – has the best cost to the root of the STP instance. only one root port can be selected and active at any one time. if alternative paths are detected then these are identified as alternative root ports and can be placed immediately into the forwarding state when the existing root port fails
- point-to-point port – any port that connects to another switch and becomes a designated port. proposal and agreement BPDU’s are exchanged in a quick handshake. automatically determined by the duplex mode – full are point-to-point as only 2 switches can be present on the link, but half are considered to be on a shared medium so cannot be point-to-point
RSTP handles the complete STP convergence process as series of handshakes over point-to-point links
Synchronization
- a switch decides the state of each of it’s ports
- non-edge ports begin in the discarding state
- BPDU’s are exchanged and the root bridge can be identified
- if a switch receives a superior BPDU from it’s neighbour that port becomes the root port
- for non-edge ports a proposal-agreement handshake takes place to determine the state of each end of the link. each switch assumes that it’s port should be the designated port for the segment and suggest this in a BPDU to the neighbour