The transition from 802.1D to 802.1w is not hard. These are the major differences:
When there is any change the 802.1D STA sends a TCN in order to announce the change upstream to the root port, so the root can tell the leaf-bridges to flush their MAC address tables taking the forward_delay timer as a reference, but in the case of 802.1w is not the same. RSTP only sends TCN when a non-edge port goes down, and the MAC address table (CAM table) is inmediatly flushed.
The transition mechanism on RSTP/802.1w is not subject to the convergence timers (max_age or forward_delay), but 802.1D does. 802.1w basically have a new mechanism in order to converge called the synchronization process, which is more efficent, and is tuned for high availability enviroments.
The 802.1w max_age is not 20 seconds anymore and instead just 6 seconds. So the port will go from blocking to designated faster than 802.1D when there is an indirect failure. Remember that RSTP is subject to these classic timers when there is a 802.1D-speaker on the other end of the link, so the RSTP STA set the 802.1D timers on that specific link.
You have the link-type concept on 802.1w which is used to identify who is subject to the synchronization process. These are called shared, and point-to-point link types. The full duplex links are considered P2P, and the non-full duplex links are considered as shared links, so the sync process is not used in the last case.
The port states are different on RSTP, this is basically to enhance the transition from the convergence perspective. On 802.1D you have the following states:
In the case of RSTP/802.1w is very different, since the port states are aggrupated, so they can optimize the transitions, and are not subject to the forward_delay as i already mentioned:
If you notice the major differences are from the convergence perspective, and be aware that the root election mechanism is the same as 802.1D. Another thing to clarify is that technically on RSTP terms there is not non-designated port role anymore, and they changed the terminology to alternate port. There's a new concept of backup port, and that serves as a non-granted path to the root bridge. Another major difference is that on 802.1D after root election the only bridge that was allowed to send BPDUs was the root bridge itself, but in the case of 802.1w all the bridges can send BPDUs. The BPDUs are used as a keepalive mechanism in order to do not age out the information.
INE has pretty good document about STP and RSTP. I found it:
Fast Convergence for Designated Ports
RSTP protocol’s fast convergence depends on the use of point-to-point links connecting switches. In order to quickly transition a designated port into non-discarding state, the upstream switch needs to make sure that the downstream neighbor agrees with that idea. This constitutes the process known as handshake (or proposal/agreement):
1. Upstream bridge sends a proposal out of a designated port. As a matter of fact, it just sets the proposal bit in outgoing configuration BPDUs.2. Downstream bridge receives the proposal, and if it agrees with the upstream port role, it starts the process known as synchronization.
3. Synchronization implies the downstream bridge blocking all non-edge designated ports, prior to sending an agreement to the upstream bridge.
4. Synchronization is needed to make sure there are no loops in the topology, after the upstream bridge unblocks its designated port.
5. If the downstream bridge does not agree with the proposal, it will continues sending it’s own configuration BPDUs with the proposal bit set. Eventually one of the bridges will accept the superior information and send an agreement.
Remember the points from previous post;
C is the Root but RSTP does not know that yet. All switches are restarted after being set up with RSTP (default is
Let's say B's link to A comes up first; B send proposal to A. A says No Way, I have better BID, I am the Root;
When a switch rejects Proposal, it sends its Alternative and better info;
B gets it and agrees by sending Agreement back to A and set G0/2 as Root port and Blocks other ports.
A gets B's agreement and sets port F0/2 as DP.
Those 2 switches are now synchronized.
Now, link B to D comes up. D claims to be new Root. B disagrees because it knows better BID (A's BID) and sends that
cached Root info back to D. D agrees and turns its G0/1 port into Rootport. When B receives D's Agreement, it sets port G0/1 as DP.
So far we have 3 switches working: A>B>D, where A is the Root.
If link either link A to C or D to C comes up next, new Synchronization begins because C has better BID.
In case when C to D comes up first, D synchronizes itself with C first. Synchronization process continues down to A.
If link C - A comes up first, synchronization process goes down the other way until reaches D.
In either case, the 4th and last link is still not up making ring or loop incomplete; what happens next is kind of interesting. let see if you can figure it out.
what happens when ring is completed with C as the Root.