380 likes | 546 Views
Joining LANs - Bridges. Connecting LANs. Repeater Operates at the Physical layer no decision making, processing signal boosting only Bridges operates at the Data Link layer forwarding decisions based on addresses no fragmentation/reassembly Routers operates at the Network Layer
E N D
Connecting LANs • Repeater • Operates at the Physical layer • no decision making, processing • signal boosting only • Bridges • operates at the Data Link layer • forwarding decisions based on addresses • no fragmentation/reassembly • Routers • operates at the Network Layer • fragmentation/reassembly • routing to distant networks
Two types of Bridges • Transparent or Spanning Tree • Processing overhead is in the bridges • Host interface is simple • Source Routing • Processing overhead is in the host interface
Spanning Tree Bridge Behavior • If the destination address is found to be in the direction of the port on which it arrived, do nothing • ex. source on LAN E and destination on LAN A not forwarded by B1
Learning the topology • If the destination is not known • forward the frame • Problem if the topology contains a loop
A A B B2 routing table is empty B1 routing table is empty 0 0 B1 B2 1 1 B1 B B2 B Node A port 0 Node A port 0 B
A B2 B B1 B B2 routing table is empty B1 routing table is empty 0 0 B1 B2 1 1 Node A port 0 Node A port 0 B
A B2 routing table is empty B1 routing table is empty 0 0 B1 B2 1 1 B2 B B1 B Node A port 0 Node A port 0 B Etc. The message goes back and forth because each bridge sees the other’s transmission and does not know it has forwarded this same message before.
Creating a Spanning Tree • Set of all nodes in a graph • plus a subset of the links • so that all nodes are connected • but there is only one path between any pair of nodes • Redundant bridges provide backup, but do not participate in routing
Creating a Spanning Tree • Spanning Tree Algorithm For a graph, G=(V,E), a spanning tree is a subgraph, T=(v,E) where T is a tree and v are selected from V. The spanning tree connects all the vertices of the graph. • The Dijkstra/Prim algorithm finds a minimum spanning tree by starting at an arbitrary vertex and branching out, picking up new vertices as it goes. Think of the vertices as partitioned into three sets: • Tree vertices: in the tree constructed so far • Fringe vertices: not in the tree but adjacent to a vertex that is in the tree • Unseen vertices: all others • The Dijkstra/Prim algorithm constructs a minimum weight spanning tree. In the algorithm used in Spanning Tree bridges, there is no concept of weight. The task is somewhat simpler.
The Spanning Tree Algorithm • Select an arbitrary vertex to start the tree (the bridge with the lowest serial number) • While there are fringe vertices do • select an edge between a tree vertex and a fringe vertex and • add the selected edge and vertex to the tree • End • We assume a connected graph. There cannot be a spanning tree if the graph is not connected. Assuming a connected graph, the algorithm above will find a spanning tree.
Spanning Tree Implementation • In the implementation of the spanning tree, all the bridges participate. • The bridges send messages and receive replies to determine which bridge is the root. (Lowest serial number) • Once the root is identified, each bridge sends a message to the root from each port. • The root replies to each of these messages. Each bridge determines which of its ports is "closest" to the root. (whichever one gets its response first)
Bridge Protocol Create the Spanning Tree • Bridge with lowest ID becomes the root • All others determine which port provides best access to the root (root port) • For each LAN, determine the one bridge to be used to access the root of the spanning tree. • Designated bridge for that LAN • For each bridge, root port and designated bridge ports are placed in forwarding state • Other ports are in blocking state
Try it Assume passing over a LAN takes time =1 and passing through a bridge takes time =2
Sample topology with root ports and designated bridge ports identified * = root port === = designated bridge port LAN A *
Examples • LAN B ==> LAN F • LAN C ==> LAN D • path taken is not always optimal, because not all bridge ports are available
One virtual LAN • All the LANs connected by the bridges • one virtual LAN • one address space • Each bridge learns how to forward to all nodes on all LANs
Forwarding behavior • Destination goes to port of arrival • no action by the bridge • LAN A ==> LAN A, not forwarded by B4 • LAN E ==> LAN A, not forwarded by B1 • Destination known to be other than arrival port • forward toward destination • not always toward the root • LAN A ==> LAN D, forwarded by B4 on port 3 • LAN B ==> LAN C, forwarded by B3 on port 2 • Destination not known • forward on all non-blocking ports except arrival port • LAN B==> unknown destination forwarded by B3 on ports 2 and 3
Port states • Each port is in one of five states • Blocking • Listening • Learning • Forwarding • Disabled Ref: Cisco: http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/ sw_ntman/cwsimain/cwsi2/cwsiug2/vlan2/stpapp.htm
Initialize to blocking • On initiatialization, a bridge moves into the blocking state • Discards frames received from the attached segment. • Discards frames switched from another port for forwarding. • Does not incorporate station location into its address database. • (There is no learning at this point, so there is no address database update.) • Receives BPDUs and directs them to the system module. • Does not transmit BPDUs received from the system module. • Receives and responds to network management messages.
Blocking to listening • In the listening state, a bridge port • Discards frames received from the attached segment. • Discards frames switched from another port for forwarding. • Does not incorporate station location into its address database. • (There is no learning at this point, so there is no address database update.) • Receives BPDUs and directs them to the system module. • Processes BPDUs received from the system module. • Receives and responds to network management messages.
From listening to learning • In the learning state • Discards frames received from the attached segment. • Discards frames switched from another port for forwarding. • Incorporates station location into its address database. • Receives BPDUs and directs them to the system module. • Receives, processes and transmits BPDUs received from the system module.. • Receives and responds to network management messages.
The forwarding state • A port in the forwarding state • Forwards frames received from the attached segment. • Forwards frames switched from another port for forwarding. • Incorporates station location into its address database. • Receives BPDUs and directs them to the system module. • Processes BPDUs received from the system module.. • Receives and responds to network management messages.
An abstraction of the spanning tree = destination host Unique path from each source to each destination clearly visible Two links with the same (E) label not desirable
Better diagram No longer have two links with the same label. Now have a node that represents two bridges, though. Call this a multibridge node.
Use of the diagram • Calculate the length of the journey for a frame traveling between any two LANs • number of LANs traversed • number of bridges that forward the frame • Transfer between children of a multibridge node count one LAN traversed, two bridges used • If there are more than two bridges represented by the multibridge node, there still are two bridges and one LAN used in the transfer.
Examples • Source: G • Destination: I • Number of LANs: 1 (A) • Number of Bridges (ids): 2 (B6, B8)
Another example • Source: H • Destination: E • Number of LANs: 1 (A) • Number of Bridges: 2 (B7, B4)
One more example • Source: I • Destination: E • Number of LANs: 2 (A, E) • Number of Bridges: 3 (B7, B4, B5)
Maximum path length between nodes • Distance from the lowest leaf to the root • plus distance from the root to the lowest node that is not a descendent of the same multinode as the first leaf.
Example: • Maximum path is from any of {G, H, I, J} to the root plus the distance from the root to either of {B, C}
Source Routing Bridges • Source specifies which bridges are to forward the frame • Route is inserted in the frame header following the source address • Special use of a bit in the source address that would indicate a group address (group address not possible for source) to indicate that routing information follows.
Finding the route • Send a probe • Broadcast to all bridges • Each bridge forwards the probe • on all its ports • unless it has seen it before • The probe will reach the intended destination if it is possible • By the best possible route • By all possible routes • Destination node sends the probe back to the sender • Reverses the path in the header of the probe that arrived first
Workload • Network interface of the host must worry about route discovery and specification • Each network card has complexity to deal with • Complex may mean slower, more expensive • Bridge is very simple • Simple may mean fast • What is the best place to put the complexity?
Bridges summary • Two basic types: spanning tree and source routing • Spanning tree is easier to manage, but does not always give the optimal route • Source Routing always gives the optimal route, but involves more overhead. • Spanning tree is the standard, with source routing as an allowed option.