Hubs, Bridges and Switches Lecture 3 Lecture 3 #1 Interconnecting LANs Q: Why not just one big LAN? Limited amount of supportable traffic: on single LAN, all stations must share bandwidth limited length: 802.3 (Ethernet) specifies maximum cable length large “collision domain” (can collide with many stations) limited number of stations: 802.5 (token ring) have token passing delays at each station Lecture 3 #2 Hubs Physical Layer devices: essentially repeaters operating at bit levels: repeat received bits on one interface to all other interfaces Hubs can be arranged in a hierarchy (or multi-tier design), with backbone hub at its top Lecture 3 #3 Hubs (more) Each connected LAN referred to as LAN segment Hubs do not isolate collision domains: node may collide with any node residing at any segment in LAN Hub Advantages: simple, inexpensive device Multi-tier provides graceful degradation: portions of the LAN continue to operate if one hub malfunctions extends maximum distance between node pairs (100m per Hub) Lecture 3 #4 Hub limitations single collision domain results in no increase in max throughput multi-tier throughput same as single segment throughput individual LAN restrictions pose limits on number of nodes in same collision domain and on total allowed geographical coverage cannot connect different Ethernet types (e.g., 10BaseT and 100baseT) Why? Lecture 3 #5 Bridges Link Layer devices: operate on Ethernet frames, examining frame header and selectively forwarding frame based on its destination Bridge isolates collision domains since it buffers frames When frame is to be forwarded on segment, bridge uses CSMA/CD to access segment and transmit Lecture 3 #6 Bridges (more) Bridge advantages: Isolates collision domains resulting in higher total max throughput, and does not limit the number of nodes nor geographical coverage Can connect different type Ethernet since it is a store and forward device Transparent: no need for any change to hosts LAN adapters Lecture 3 #7 Backbone Bridge Lecture 3 #8 Interconnection Without Backbone Not recommended for two reasons: - single point of failure at Computer Science hub - all traffic between EE and SE must path over CS segment Lecture 3 #9 Bridges: frame filtering, forwarding bridges filter packets same-LAN -segment frames not forwarded onto other LAN segments forwarding: how to know on which LAN segment to forward frame? Lecture 3 #10 Bridge Filtering bridges learn which hosts can be reached through which interfaces: maintain filtering tables when frame received, bridge “learns” location of sender: incoming LAN segment records sender location in filtering table filtering table entry: (Node LAN Address, Bridge Interface, Time Stamp) stale entries in Filtering Table dropped (TTL can be 60 minutes) Lecture 3 #11 Bridge Operation bridge procedure(in_MAC, in_port,out_MAC) Set filtering table (in_MAC) to in_port /*learning*/ lookup in filtering table (out_MAC) receive out_port if (out_port not valid) /* no entry found for destination */ then flood; /* forward on all but the interface on which the frame arrived*/ if (in_port = out_port) /*destination is on LAN on which frame was received */ then drop the frame Otherwise (out_port is valid) /*entry found for destination */ then forward the frame on interface indicate Lecture 3 #12 Bridge Learning: example Suppose C sends frame to D and D replies back with frame to C C sends frame, bridge has no info about D, so floods to both LANs bridge notes that C is on port 1 frame ignored on upper LAN frame received by D Lecture 3 #13 Bridge Learning: example C 1 D generates reply to C, sends bridge sees frame from D bridge notes that D is on interface 2 bridge knows C on interface 1, so selectively forwards frame out via interface 1 Lecture 3 #14 What will happen with loops? Incorrect learning B 2 2 A , 12 A , 12 1 1 A Lecture 3 #15 What will happen with loops? Frame looping C 2 2 C,?? C,?? 1 1 A Lecture 3 #16 What will happen with loops? Frame looping B 2 2 B,2 B,1 1 1 A Lecture 3 #17 Loop-free: tree C B A A message from A will mark A’s location Lecture 3 #18 Loop-free: tree C B A: A A message from A will mark A’s location Lecture 3 #19 Loop-free: tree A: C B A: A A message from A will mark A’s location Lecture 3 #20 Loop-free: tree A: A: A: C B A: A: A A message from A will mark A’s location Lecture 3 #21 Loop-free: tree A: A: A: C B A: A: A A message from A will mark A’s location Lecture 3 #22 Loop-free: tree A: A: A: C B A: A: So a message to A will go by marks… A A message from A will mark A’s location Lecture 3 #23 Bridges Spanning Tree for increased reliability, desirable to have redundant, alternative paths from source to dest with multiple paths, cycles result - bridges may multiply and forward frame forever solution: organize bridges in a spanning tree by disabling subset of interfaces Disabled Lecture 3 #24 Introducing Spanning Tree Allow a path between every LAN without causing loops (loop-free environment) Bridges communicate with special configuration messages (BPDUs) Standardized by IEEE 802.1D Note: redundant paths are good, active redundant paths are bad (they cause loops) Lecture 3 #25 How to construct a spanning tree? Bridges run a distributed spanning tree algorithm Select what ports (and bridges) should actively forward frames Standardized in IEEE 802.1 specification Lecture 3 #26 Overview of STP We make a series of simplifications: Build a ST of bridges (in fact, need to span LAN segments!) Assume that we are given a root bridge So we solve in order: 1. How to find a root bridge? 2. How to compute a ST of bridges? 3. How to compute a ST LAN segments? Lecture 3 #27 1. Choosing a root bridge Assume each bridge has a unique identifier Each bridge remembers best ID seen so far (my_root_ID) Periodically, send my_root_ID to all neighbors (“flooding”) When receiving ID, update if necessary Is that enough?! Lecture 3 #28 2. Compute ST Given a root Idea: each node finds its shortest paths to the root shortest paths tree Output: At each node, parent pointer (and distance) How: Bellman-Ford algorithm Lecture 3 #29 Distributed Bellman-Ford Assumption: There is a unique root node s Idea: Each node, periodically, tells all its neighbors what is its distance from s But how can they tell? s: easy. dists = 0 always! Another node v: Mark neighbor with least distance as “parent” Lecture 3 #30 Why does this work? Suppose all nodes start with distance , and suppose that updates are sent every time unit. D C A E 0 G B F Lecture 3 #31 Why does this work? Suppose all nodes start with distance , and suppose that updates are sent every time unit. 1 1 D C A E 1 0 G B F 1 Lecture 3 #32 Why does this work? Suppose all nodes start with distance , and suppose that updates are sent every time unit. 2 1 1 2 D C A E 1 0 G B F 1 Lecture 3 #33 Why does this work? Suppose all nodes start with distance , and suppose that updates are sent every time unit. 2 1 1 2 D C A E 1 0 3 G B F 1 Lecture 3 #34 Bellman-Ford: properties Works for any non-negative link weights w(u,v): Works when the system operates asynchronously. Works regardless of the initial distances! (later...) Lecture 3 #35 3. ST of LAN segments Assumption: given a ST of the bridges Idea: Each segment has at least one bridge attached. Only one of them should forward packets! Choose bridge closest to root. Break ties by bridge ID (and then by port ID...) Implementation: Bridges listen to all distance announcement on each port. Mark port as “designated port” iff best on that port’s LAN Lecture 3 #36 Spanning Tree Concepts: Path Cost A cost associated with each port on each bridge (“weight” of the segment) default is 1 The cost associated with transmission onto the LAN connected to the port Can be manually or automatically assigned Can be used to alter the path to the root bridge Lecture 3 #37 Spanning Tree Concepts: Root Port Each non-root bridge has a Root port: The port on the path towards the root bridge parent pointer The root port is part of the lowest cost path towards the root bridge If port costs are equal on a bridge, the port with the lowest ID becomes root port Lecture 3 #38 Example Spanning Tree B8 B3 Protocol operation: 1. 2. Pick a root Each bridge picks a root port B5 B7 B2 B1 B6 B4 Lecture 3 #39 Example Spanning Tree B8 Spanning Tree: B3 B5 root port B2 B1 B7 B2 B4 B5 B6 B7 B1 Root B6 B3 B8 B4 Lecture 3 #40 Spanning Tree Concepts: Designated Port Each LAN has a single designated port This is the port reporting minimum cost path to the root bridge for the LAN Only designated and root ports remain active! Lecture 3 #41 Example Spanning Tree B8 Forwarding Tree: B3 B5 B1 root port B2 B7 B2 B4 B5 B7 B1 Root B6 B8 Designated Bridge B4 Note: B3, B6 forward nothing Lecture 3 #42 Spanning Tree Requirements Each bridge has a unique identifier A broadcast address for bridges on a LAN A unique port identifier for all ports on all bridges Bridge id + port number Lecture 3 #43 Spanning Tree Algorithm: Implementation Keep pumping a single message: (my root ID, my cost to root, my ID) BPDU: Bridge Protocol Data Unit Update var’s when receiving: My_root_ID: smallest seen so far My_cost_to_root: smallest received to my_root + link cost Break ties by ID That’s enough! Lecture 3 #44 Spanning Tree Algorithm: Select Designated Bridges Bridges send BPDU frames to its attached LANs sender port ID bridge and port ID of the bridge the sending bridge considers root root path cost for the sending bridge 3. Best bridge wins, and it knows it (and winning port) (lowest ID/cost/priority) Lecture 3 #45 Forwarding/Blocking State 1. Only root and designated ports are active for data forwarding Other ports are in the blocking state: no forwarding! If bridge has no designated port, no forwarding at all block root port too. 2. All ports send BPDU messages To adjust to changes Lecture 3 #46 Spanning Tree Protocol: Execution B8 B3 B5 B7 B2 (B1,root=B1,dist=0) B6 (B6, Root=B1dist=1) B1 (B1,root=B1, dist=0) B4 (B4, root=B1, dist=1) Lecture 3 #47 Bridges vs. Routers both store-and-forward devices routers: network layer devices (examine network layer headers) bridges are Link Layer devices routers maintain routing tables, implement routing algorithms bridges maintain filtering tables, implement filtering, learning and spanning tree algorithms Lecture 3 #48 Routers vs. Bridges Bridges + and + Bridge operation is simpler requiring less processing - Topologies are restricted with bridges: a spanning tree must be built to avoid cycles - Bridges do not offer protection from broadcast storms (endless broadcasting by a host will be forwarded by a bridge) Lecture 3 #49 Routers vs. Bridges Routers + and + arbitrary topologies can be supported, cycling is limited by TTL counters (and good routing protocols) + provide firewall protection against broadcast storms - require IP address configuration (not plug and play) - require higher processing bridges do well in small (few hundred hosts) while routers used in large networks (thousands of hosts) Lecture 3 #50 Ethernet Switches layer 2 (frame) forwarding, filtering using LAN addresses Switching: A-to-B and A’to-B’ simultaneously, no collisions large number of interfaces often: individual hosts, star-connected into switch Ethernet, but no collisions! Lecture 3 #51 Ethernet Switches cut-through switching: frame forwarded from input to output port without awaiting for assembly of entire frame slight reduction in latency combinations of shared/dedicated, 10/100/1000 Mbps interfaces Lecture 3 #52 Ethernet Switches (more) Dedicated Shared Lecture 3 #53 Optional: Wireless LAN and PPP Lecture 3 #54 IEEE 802.11 Wireless LAN wireless LANs: untethered (often mobile) networking IEEE 802.11 standard: MAC protocol unlicensed frequency spectrum: 900Mhz, 2.4Ghz Basic Service Set (BSS) (a.k.a. “cell”) contains: wireless hosts access point (AP): base station BSS’s combined to form distribution system (DS) Lecture 3 #55 Ad Hoc Networks Ad hoc network: IEEE 802.11 stations can dynamically form network without AP Applications: “laptop” meeting in conference room, car interconnection of “personal” devices battlefield IETF MANET (Mobile Ad hoc Networks) working group Lecture 3 #56 IEEE 802.11 MAC Protocol: CSMA/CA 802.11 CSMA: sender - if sense channel idle for DISF sec. then transmit entire frame (no collision detection) -if sense channel busy then binary backoff 802.11 CSMA receiver: if received OK return ACK after SIFS Why? Lecture 3 #57 IEEE 802.11 MAC Protocol 802.11 CSMA Protocol: others NAV: Network Allocation Vector 802.11 frame has transmission time field others (hearing data) defer access for NAV time units Lecture 3 #58 Hidden Terminal effect hidden terminals: A, C cannot hear each other obstacles, signal attenuation collisions at B goal: avoid collisions at B CSMA/CA: CSMA with Collision Avoidance Lecture 3 #59 Collision Avoidance: RTS-CTS exchange CSMA/CA: explicit channel reservation sender: send short RTS: request to send receiver: reply with short CTS: clear to send CTS reserves channel for sender, notifying (possibly hidden) stations avoid hidden station collisions Lecture 3 #60 Collision Avoidance: RTS-CTS exchange RTS and CTS short: collisions less likely, of shorter duration end result similar to collision detection IEEE 802.11 allows: CSMA CSMA/CA: reservations polling from AP Lecture 3 #61 Point to Point Data Link Control one sender, one receiver, one link: easier than broadcast link: no Media Access Control no need for explicit MAC addressing e.g., dialup link, ISDN line popular point-to-point DLC protocols: PPP (point-to-point protocol) HDLC: High level data link control (Data link used to be considered “high layer” in protocol stack!) Lecture 3 #62 PPP Design Requirements [RFC 1557] packet framing: encapsulation of network-layer datagram in data link frame carry network layer data of any network layer protocol (not just IP) at same time ability to demultiplex upwards bit transparency: must carry any bit pattern in the data field error detection (no correction) connection livenes: detect, signal link failure to network layer network layer address negotiation: endpoint can learn/configure each other’s network address Lecture 3 #63 PPP non-requirements no error correction/recovery no flow control out of order delivery OK no need to support multipoint links (e.g., polling) Error recovery, flow control, data re-ordering all relegated to higher layers!!! Lecture 3 #64 PPP Data Frame Flag: delimiter (framing) Address: does nothing (only one option) Control: does nothing; in the future possible multiple control fields Protocol: upper layer protocol to which frame delivered (eg, PPP-LCP, IP, IPCP, etc) Lecture 3 #65 PPP Data Frame info: upper layer data being carried check: cyclic redundancy check (CRC) for error detection Lecture 3 #66 Byte Stuffing “data transparency” requirement: data field must be allowed to include flag pattern <01111110> Q: is received <01111110> data or flag? Sender: adds (“stuffs”) extra < 01111101> byte before each < 01111110> or <01111101> data byte Receiver: Receive 01111101 • discard the byte, • Next byte is data Receive 01111110: flag byte Lecture 3 #67 Byte Stuffing flag byte pattern in data to send flag byte pattern plus stuffed byte in transmitted data Lecture 3 #68 PPP Data Control Protocol Before exchanging networklayer data, data link peers must configure PPP link (max. frame length, authentication) learn/configure network layer information for IP: carry IP Control Protocol (IPCP) msgs (protocol field: 8021) to configure/learn IP address Lecture 3 #69 Data Link: Summary principles behind data link layer services: error detection, correction sharing a broadcast channel: multiple access link layer addressing, ARP various link layer technologies Ethernet hubs, bridges, switches IEEE 802.11 LANs PPP Chapter 5 Kurose and Ross Lecture 3 #70 Configuration Messages: BPDU Lecture 3 #71