260 likes | 430 Views
Spanning Tree Algorithm. Network Protocols and Standards Autumn 2004-2005. Topologies with Loops. Problems Frames proliferate Learning process unstable Multicast traffic loops forever. A. LAN 1. B1. B2. B3. LAN 2. Topologies with Loops. Solutions
E N D
Spanning Tree Algorithm Network Protocols and Standards Autumn 2004-2005 CS573: Network Protocols and Standards
Topologies with Loops • Problems • Frames proliferate • Learning process unstable • Multicast traffic loops forever A LAN 1 B1 B2 B3 LAN 2 CS573: Network Protocols and Standards
Topologies with Loops • Solutions • Require that the topologies be loop-free through careful deployment of segments and bridges • Design Bridges to detect loops and complain and, perhaps, stop working • Not a good idea because loops provide redundancy • Design into the bridges an algorithm that prunes the topology into a loop-free subset (a spanning tree) • Blocking of some ports may be required • Automatically adapt to the changes in topology CS573: Network Protocols and Standards
Reconfiguration Algorithm • Configures an arbitrary topology into a spanning tree • Automatic reconfiguration in case of topology changes • The algorithm should converge for any size LAN; the stability should be achieved within a short, bounded time • Active topology should be reproducible and manageable • Transparency to end-stations is required • Must not use a lot of bandwidth CS573: Network Protocols and Standards
Spanning Tree Algorithm • A distributed Algorithm • Elects a single bridge to be the root bridge • Calculates the distance of the shortest path from each bridge to the root bridge (cost) • For each LAN segment , elects a “designated” bridge from among the bridges residing on that segment • The designated bridge for a LAN segment is the one closest to the root bridge • And… CS573: Network Protocols and Standards
Spanning Tree Algorithm • For each bridge • Selects ports to be included in spanning tree • The ports selected are: • The root port --- the port that gives the best path from this bridge to the root • The designated ports --- ports connected to a segment on which this bridge is designated • Ports included in the spanning tree are placed in the forwarding state • All other ports are placed in the blocked state CS573: Network Protocols and Standards
Forwarding frames along the spanning treeForward and Blocked States of Ports • Data traffic (from various stations) is forwarded to and from the ports selected in the spanning tree • Incoming data traffic is always discarded (this is different from filtering frames. Why?) and is never forwarded on the blocked ports CS573: Network Protocols and Standards
Root Selection: Bridge ID • Each port on the Bridge has a unique LAN address just like any other LAN interface card. Bridge ID is a single bridge-wide identifier that could be: • A unique 48-bit address • Perhaps the LAN address of one of its ports • Root Bridge is the one with lowest Bridge ID B Port Address CS573: Network Protocols and Standards
Path Length (Cost) • Path length is the number of hops from a bridge to the root • While forming a spanning tree, we are interested in the least cost path to the root • Cost can also be specified based on the speed of the link • Not fair to treat a 10Mb/s link the same as a 1Gb/s link • A guideline for cost selection is in Table 8.5 of the latest IEEE 802.1D standard CS573: Network Protocols and Standards
Path cost guidelines Source: IEEE 802.1D standard CS573: Network Protocols and Standards
Example Topology 1 4 5 7 8 6 10 11 2 0 CS573: Network Protocols and Standards
After algorithm execution DP 1 RP DP BP BP 4 5 7 RP RP RP RP DP DP 8 6 10 DP RP RP BP DP 11 2 RP RP RP: Root Port DP: Designated Port BP: Blocked Port DP 0 DP CS573: Network Protocols and Standards
Configuration Message (BPDU) • Configuration Bridge Protocol Data Unit • Transmitted by Bridges to implement the spanning tree algorithm • Just like any other data link layer frame • Destination Adderss: Special Multicast Address • 01-8-c2-00-00-00 • Source Address: MAC address of the port • DSAP = SSAP = 01000010 Data Field 6 octets 2 octets 2 octets 6 octets destination source length DSAP SSAP Configuration Message CS573: Network Protocols and Standards
Configuration BPDU Contents • The Data Field of Config BPDU contains: • Root ID • ID of the Bridge known to be root • Cost to Root • Cost of the known least cost path to the root • Transmitting Bridge ID • ID of the bridge transmitting this message • Representation • <RootID>.<CostToRoot>.<TransmittingBridgeID> CS573: Network Protocols and Standards
BPDU: Transmission and Processing • When a bridge is first booted up: • It assumes it is the root • Transmits on each port: • <ownID>.<0>.<ownID> • BPDUs are received on each port • For each port, every bridge saves the best BPDU received • Best among the ones received or transmitted on that port CS573: Network Protocols and Standards
Comparing two BPDUs • Given two BPDUs containing configuration messages C1 and C2: • C1 is better than C2 if rootID in C1 is lower than the rootID in C2 • In case of a tie above, C1 is better than C2 if cost in C1 is lower than the cost in C2 • In case of a tie above, C1 is better than C2 if transmitting bridge ID in C1 is lower than the transmitting bridge ID in C2 • Can we still get a tie? • Consider a bridge with two ports on same segment!!! CS573: Network Protocols and Standards
Port Identifier Each bridge has an internal numbering of its ports These numbers are unique only for a bridge Bridge 1 0 2 3 CS573: Network Protocols and Standards
Port Identifier • Port IDs are useful when rootID, cost, and transmittingBridgeID are the same in two configuration messages • In such situations, Port IDs are used as tie-breakers and the BPDU with lower portID is better CS573: Network Protocols and Standards
Message C1 <Root>.<Cost>.<Tx> <29>.<15>.<35> <35>.<80>.<39> <35>.<15>.<80> Message C2 <Root>.<Cost>.<Tx> <31>.<12>.<32> <35>.<80>.<40> <35>.<18>.<38> Comparing BPDUs (a) (b) (c) In all cases above, C1 is “better” than C2 CS573: Network Protocols and Standards
Designated Bridge • If a bridge receives better BPDU on a port than the one it would transmit, it will no longer transmit BPDUs on that port • As a result, only one bridge called the “designated bridge” transmits configuration BPDUs on each LAN CS573: Network Protocols and Standards
Root ID and Cost: determining • Consider B with bridge ID 18 • Best BPDUs on each of its ports are: <RootID>.<Cost>.<TransmitterID> • Port 1 <12>.<93>.<51> • Port 2 <12>.<85>.<47> • Port 3 <81>.<0>.<81> • Port 4 <15>.<31>.<27> • Root bridge ID is determined as 12 • Least cost is determined as 85+1 = 86 • Port 2 is regarded as the Root port …cont… CS573: Network Protocols and Standards
Root ID and Cost: determining • At next opportunity, B will transmit • <12>.<86>.<18> • Better than the best BPDUs on all ports • Ports 1, 3, and 4 are designated • B considers itself designated for the segments connected to ports 1, 3, and 4 • B continues transmitting BPDUs on those segments (through respective ports) CS573: Network Protocols and Standards
Spanning Tree Ports • For each bridge, what ports are “included” in the spanning tree? • Root Port • On which best of the best BPDUs is received • Designated Port • Connected to segments on which B is designated • Ports selected in the spanning tree are placed in the forwarding state • B will forward data packets to and from those ports CS573: Network Protocols and Standards
Ports Blocked • Bridge B will block a port if it receives a better BPDU on that port than the one it would transmit (except for the root port) • Bridge B will no longer transmit BPDUs on either root port or blocked ports • Data packets are not forwarded to and received from the blocked ports CS573: Network Protocols and Standards
Port 1 Bridge ID 92 Port 5 Port 4 Port 2 Port 3 41.13.90 81.0.81 41.12.111 41.12.315 41.19.125 Example Root Bridge is selected as 41 Least cost to root is 12+1 = 13 Port 4 is selected as root Now B92 will transmit a BPDU 41.13.92 What does it do with the ports? CS573: Network Protocols and Standards
How the Ports are treated? Remember: B92 will transmit a BPDU 41.13.92 • Port 1: 41.13.92 < 81.0.81 DP • Port 2: 41.13.92 < 41.19.125 DP • Port 3: 41.13.92 > 41.12.315 BP • Port 4: 41.13.92 Root Port • Port 5: 41.13.92 > 41.13.90 BP CS573: Network Protocols and Standards