The STP Variant Landscape
Since its introduction in 1992, Spanning Tree Protocol has evolved significantly. Five major variants are used in production networks today:
- IEEE 802.1D — Original protocol (slow, single tree)
- Cisco PVST+ — Proprietary extension (per-VLAN trees, faster)
- IEEE 802.1w (RSTP) — Rapid Spanning Tree (faster, standard)
- Cisco Rapid PVST+ — Per-VLAN RSTP (fast, per-VLAN, proprietary)
- IEEE 802.1s (MST) — Multiple Spanning Tree (fast, aggregates VLANs)
Each addresses limitations in its predecessor. Understanding the progression helps you choose the right variant for your architecture.
IEEE 802.1D (Original Spanning Tree)
Overview
802.1D, published in 1992, is the baseline STP. It creates a single spanning tree for the entire network, regardless of VLAN configuration.
Key Characteristics
| Attribute | 802.1D |
|---|---|
| Convergence Time | 30-50 seconds |
| Per-VLAN Support | No (single tree for all VLANs) |
| BPDU Format | Configuration BPDU only |
| Port States | 5 (Disabled, Blocking, Listening, Learning, Forwarding) |
| Compatibility | All 802.3 switches |
How It Works
All VLANs share one spanning tree:
VLAN 10 (Users)
VLAN 20 (Servers)
VLAN 30 (Mgmt)
↓ (all merged)
Single STP instance
↓
All links in blocked or forwarding state, regardless of VLAN
All three VLANs are blocked on the same redundant link.
Limitations
No Per-VLAN Load Balancing: If you have redundant links, one is always blocked for all traffic:
[SW1] ─ Eth0/0 ─ [SW2]
| Link blocked
Eth0/1 ─ [SW3]
Both SW2 and SW3 connect to SW1, but the link to SW3 is blocked even if SW3 has capacity. You're paying for hardware you can't use.
Slow Convergence: 30-50 second failover time is unacceptable for modern applications.
When to Use 802.1D
- Legacy networks with very old switches that don't support newer variants
- Simple, single-switch designs (unnecessary, but functional)
- Strictly standards-compliant environments where proprietary protocols are forbidden
Almost all modern networks use newer variants instead.
Cisco PVST+ (Per-VLAN Spanning Tree Plus)
Overview
PVST+ is Cisco's proprietary extension to 802.1D. It runs a separate spanning tree instance for each VLAN.
Key Characteristics
| Attribute | PVST+ |
|---|---|
| Convergence Time | 30-50 seconds (per VLAN) |
| Per-VLAN Support | Yes (one tree per VLAN) |
| BPDU Format | Cisco proprietary (encapsulated in ISL or 802.1Q) |
| Port States | 5 (same as 802.1D) |
| Compatibility | Cisco switches only |
| Standards | Proprietary |
How It Works
Each VLAN has its own spanning tree:
VLAN 10 tree:
[SW1] ─ (FWD) ─ [SW2]
| (BLK)
[SW3] ──────
VLAN 20 tree:
[SW1] ─ (BLK) ─ [SW2]
| (FWD)
[SW3] ──────
Link between SW1-SW2: FWD for VLAN 10, BLK for VLAN 20
Link between SW1-SW3: BLK for VLAN 10, FWD for VLAN 20
Load Balancing Example
Data Center example:
Users (VLAN 10): Root on SW1, prefer SW1-SW2 link
Servers (VLAN 20): Root on SW2, prefer SW2-SW3 link
[SW1] ─────── [SW2]
| VLAN 10: ↓ (forwarding)
| VLAN 20: ↓ (blocked)
|
[SW3]
VLAN 10: ↓ (blocked)
VLAN 20: ↓ (forwarding)
User traffic flows: Access → SW1 → SW2 (via VLAN 10 tree)
Server traffic flows: Access → SW1 → SW3 (via VLAN 20 tree)
Both links are utilized. Bandwidth is efficiently distributed.
Configuration
PVST+ is the default on older Cisco switches:
SW1# show spanning-tree vlan 1 root
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32768
Address aabb.cc00.1100
Protocol shows "ieee" but is actually PVST+ on Cisco hardware.
Limitations
Slow Convergence: Still 30-50 seconds per VLAN (or multiple VLANs × 50 seconds = several minutes for hundreds of VLANs).
CPU Overhead: Running separate STP instances for 100+ VLANs consumes significant CPU on older switches.
Proprietary: Non-Cisco switches don't understand PVST+ BPDUs.
IEEE 802.1w (Rapid Spanning Tree Protocol)
Overview
RSTP (802.1w, published 2001) is the IEEE standard response to STP's slow convergence. It's a completely redesigned algorithm that converges in 2-6 seconds while maintaining compatibility with 802.1D.
Key Characteristics
| Attribute | RSTP |
|---|---|
| Convergence Time | 2-6 seconds |
| Per-VLAN Support | No (single tree) |
| BPDU Format | Enhanced with proposal/agreement bits |
| Port States | 3 (Discarding, Learning, Forwarding) |
| Compatibility | Backward-compatible with 802.1D |
| Standards | IEEE standard |
How It Works
RSTP uses an active proposal and agreement mechanism instead of waiting for timers:
Traditional 802.1D Convergence
t=0s: Link failure
t=20s: Max age expires
t=35s: Port in listening state
t=50s: Port in learning state
t=65s: Port in forwarding state
Total: 65 seconds or more
RSTP Convergence
t=0s: Link failure, alternate port detected
t=0.2s: Alternate port sends "proposal"
t=0.4s: Upstream switch agrees ("agreement" BPDU)
t=0.6s: Port transitions to forwarding
Total: <1 second
Port States Simplified
RSTP collapses five states into three:
802.1D States RSTP Equivalent
────────────────────────────────────
Disabled → Discarding
Blocking → Discarding
Listening → (eliminated)
Learning → Learning
Forwarding → Forwarding
Backward Compatibility
If an RSTP switch sees an 802.1D switch on the link:
RSTP switch: Sends enhanced BPDUs with proposal/agreement
802.1D switch: Ignores the new fields, responds with old BPDUs
RSTP switch: Detects 802.1D and falls back to 30-50 second mode
The port reverts to 802.1D convergence speed for safety. All ports on the mixed topology must reach stability before convergence completes.
Configuration
SW1(config)# spanning-tree mode rapid-pvst
Wait, that's Rapid PVST+, not pure RSTP. On Catalyst switches, use:
SW1(config)# spanning-tree mode rapid-pvst
(There's no "pure" RSTP mode on Catalyst; the switch uses per-VLAN RSTP.)
Cisco Rapid PVST+
Overview
Rapid PVST+ combines PVST+ (per-VLAN trees) with RSTP (rapid convergence). It's Cisco's recommended STP variant for modern networks.
Key Characteristics
| Attribute | Rapid PVST+ |
|---|---|
| Convergence Time | 2-6 seconds per VLAN |
| Per-VLAN Support | Yes (RSTP per VLAN) |
| BPDU Format | RSTP within ISL/802.1Q encapsulation |
| Port States | 3 (Discarding, Learning, Forwarding) |
| Compatibility | Cisco switches only |
| Standards | Proprietary variant of 802.1w |
| Default on Modern Catalyst | Yes |
Advantages Over PVST+
- Fast convergence per VLAN (2-6 seconds vs 30-50 seconds)
- Keeps per-VLAN load balancing (load-balancing capability from PVST+)
- Proposal/agreement mechanism prevents temporary loops
Example: Campus Network
[SW1] Core1
/ \
(RSTP VLAN 10, 20, 30 trees)
/ \
[SW2] [SW3] Access
Dist Dist
VLAN 10 root: SW1
VLAN 20 root: SW2
VLAN 30 root: SW3
SW2 link to SW1 failure:
t=0s: Failure detected
t=1s: Alternate port (to SW3) becomes active
t=2s: All traffic rerouted
VLAN 20 sees SW2 preferred root is unreachable
→ Selects new root (SW1 or SW3, depending on config)
→ Reconvergence completes in 2-3 seconds
Configuration and Verification
Enable Rapid PVST+:
SW1(config)# spanning-tree mode rapid-pvst
Verify:
SW1# show spanning-tree summary
Switch is in rapid-pvst mode
Root bridge for: VLAN0010, VLAN0020
Regional root for: VLAN0030
Show detailed output:
SW1# show spanning-tree vlan 10 detail
VLAN0010 is executing the rstp compatible Spanning Tree protocol
Bridge Identifier has priority 24576, sysid 10, address aabb.cc00.1100
Configured hello time 2, forward delay 15, max age 20
Current root has priority 4096, address aabb.cc00.1100
Root is bridge (this bridge is the root)
Port 1 (Ethernet0/0)
Port priority 128, Port Identifier 128.1
Designated root has priority 4096, address aabb.cc00.1100
Designated bridge has priority 24576, address aabb.cc00.1100
Number of transitions to forwarding state: 1
BPDU: sent 5062, received 0
Note "rstp compatible" in the output.
IEEE 802.1s (Multiple Spanning Tree Protocol)
Overview
MST (802.1s, published 2002) takes a different approach: instead of one tree per VLAN, it maps multiple VLANs to a smaller number of spanning tree instances.
Key Characteristics
| Attribute | MST |
|---|---|
| Convergence Time | 2-6 seconds |
| Per-VLAN Support | VLANs grouped into instances |
| BPDU Format | M-BPDU (MST BPDU) |
| Port States | 3 (Discarding, Learning, Forwarding) |
| Compatibility | Not compatible with 802.1D or PVST+ |
| Standards | IEEE standard |
How It Works
Instead of 100 separate spanning trees (one per VLAN), you define logical instances:
Instance 0 (Common Internal Spanning Tree):
All switches participate, establishes region topology
Instance 1:
VLAN 10, 11, 12 → single STP tree
Root: SW1
Instance 2:
VLAN 20, 21, 22 → single STP tree
Root: SW2
Instance 3:
VLAN 30, 31, 32 → single STP tree
Root: SW3
Regional root ports:
[SW1] ─ (FWD for I1) ─ [SW2] ─ (FWD for I2) ─ [SW3]
(I2 BLK) (I1 BLK) (etc)
CPU Efficiency
With 100 VLANs divided into 10 instances, the switch runs 10 STP processes instead of 100:
PVST+: 100 STP instances (one per VLAN)
Rapid PVST+: 100 STP instances (RSTP per VLAN)
MST: 10 STP instances (RSTP per instance)
CPU load drops significantly. Message overhead decreases (fewer BPDUs).
Interoperability Challenges
MST doesn't understand PVST+ or RSTP BPDUs. If you mix:
SW1 (MST) ─ SW2 (Rapid PVST+)
MST BPDU from SW1 → SW2 (ignored)
RSTP BPDU from SW2 → SW1 (not recognized as MST)
Result: STP stops at the interconnection point.
Network may have loops or poor convergence.
You must use MST on all switches in the region, or use Rapid PVST+ throughout.
Configuration (IOS XE)
SW1(config)# spanning-tree mode mst
SW1(config)# spanning-tree mst configuration
SW1(config-mst)# name MyRegion
SW1(config-mst)# revision 1
! Map VLANs to instances
SW1(config-mst)# instance 1 vlan 10-12
SW1(config-mst)# instance 2 vlan 20-22
SW1(config-mst)# instance 3 vlan 30-32
SW1(config-mst)# exit
! Set regional root for instance 1
SW1(config)# spanning-tree mst 1 priority 4096
Verification
SW1# show spanning-tree mst configuration
Name : MyRegion
Revision : 1
Instances :
Instance Vlans mapped
──────────────────────
0 1-9,13-19,23-29,99
1 10-12
2 20-22
3 30-32
Show per-instance spanning tree:
SW1# show spanning-tree mst 1
CIST(Instance 0)
Root ID Priority 32768
Address aabb.cc00.1100
Cost 0
Port 1
Instance 1
Root ID Priority 4096
Address aabb.cc00.1100
Cost 0
Port -
Bridge ID Priority 4096
Address aabb.cc00.1100
Comparison Table
| Feature | 802.1D | PVST+ | RSTP | Rapid PVST+ | MST |
|---|---|---|---|---|---|
| Convergence | 30-50s | 30-50s | 2-6s | 2-6s | 2-6s |
| Per-VLAN | No | Yes | No | Yes | Grouped |
| Load Balance | No | Yes | No | Yes | Yes |
| Standard | IEEE | Cisco | IEEE | Cisco | IEEE |
| CPU Efficiency | Low | Low (100 instances) | High | Medium (100 instances) | High |
| Compatibility | All | Cisco | Mixed | Cisco | All (within region) |
Choosing the Right Variant
For Campus Networks (Catalyst 9300)
Use Rapid PVST+:
SW1(config)# spanning-tree mode rapid-pvst
Pros:
- Default on modern Catalyst switches
- Per-VLAN load balancing (useful for distributing root across switches)
- Fast convergence (2-6 seconds)
- Well-understood by most engineers
Cons:
- Proprietary (non-Cisco switches need compatibility mode)
- Slightly more CPU than MST (if 100+ VLANs)
For Data Centers (Standard-Compliant)
Use MST if all switches support it and you have 50+ VLANs:
SW1(config)# spanning-tree mode mst
Pros:
- IEEE standard (portable across vendors)
- Efficient for large numbers of VLANs
- Lower CPU usage than Rapid PVST+
Cons:
- More complex to configure and troubleshoot
- Not suitable for mixed vendor environments (all must support MST)
For Mixed Vendor Networks
Use Rapid PVST+ in "compatibility mode":
SW1(config)# spanning-tree mode rapid-pvst
! Arista/Juniper switches must support RSTP
! They'll see Rapid PVST+ BPDUs and treat them as RSTP (similar behavior)
For Legacy Networks
If forced to support 802.1D (very rare):
SW1(config)# spanning-tree mode pvst
Most modern switches default to PVST+ or Rapid PVST+, not pure 802.1D.
Migration Path
Typical upgrade path:
802.1D (1990s) → PVST+ (2000s) → Rapid PVST+ (2010+)
↓
(or MST if large scales)
To upgrade from PVST+ to Rapid PVST+:
! Make the change on the root bridge first
SW1(config)# spanning-tree mode rapid-pvst
! BPDUs now use RSTP format
! Non-root switches will detect the change and gradually upgrade
! Verify convergence works
SW1# show spanning-tree summary
Switch is in rapid-pvst mode
! Check all switches are converged
SW1# show spanning-tree vlan 1 root
Root ID Priority 4096, Address aabb.cc00.1100
Root is bridge
! Once all switches are upgraded, Rapid PVST+ is active network-wide
What's Next
The foundational series ends here. Article 8 (starting the Intermediate series) will cover STP Topology Changes and TCN (Topology Change Notification), explaining how switches detect topology changes and propagate them to the entire network.