Announcements Late homework policy New Add Updated on course website Up to 1 HW can be late for up to 5 days without penalty After that, late HW accepted and graded with discount of 10%/day for up to 5 days Late HW will not be accepted after 5 days from deadline New Add STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path!
Announcements Projects Details on the course website (will be updated) Form project team by Fri Oct 12 If your team wants to work on EV projects, talk to Zach Lee or me ASAP Let us know your background, esp software experience Schedule weekly meetings with TA by Fri Oct 19 Meetings start week 4 (10% of course grade) Project tutorials: Fri Oct 19 class There will be 2 tutorials Network simulator: ANB 105 ACN simulator: ANB 213 STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path!
Recap Sharing Metrics Scalability Layering Application topology Application & technology independence Application topology Little’s law: informal proof
Recap
cs/ee/ids 143 Communication Networks Chapter 3 Ethernet Text: Walrand & Parakh, 2010 Steven Low CMS, EE, Caltech Economic Dispatch in Power Networks with Storage March 10-12, 2010: Workshop on Distributed Decisions via Games and Price Mechanisms, Lund University, Sweden (Anders Rantzer)
Agenda Ethernet: MAC protocols Ethernet: routing protocol History and performance Ethernet: routing protocol Spanning tree protocol
Ethernet Each (layer 2) network full connectivity: every node can reach every other node broadcast capable: every node (inc. router) can broadcast to all other nodes e.g. Ethernet, WiFi, cable network, etc. A key issue: how to share common medium, efficiently & fairly ?
Ethernet Medium Access Control (MAC) protocols
Aloha network (1970) Randomized multiple access Send on frequency f1; receive ack on frequency f2.
Aloha network (1970) Randomized multiple access If an ack is not outstanding, transmit immediately If no ack after timeout, wait a random time and re-transmit
Aloha network (1970) Randomized multiple access Max utilization (prob of success) ~ 1/e ~ 37%
Slotted Aloha utilization Model Slotted time, fixed packet size, n stations 1 slot = 1 pkt transmission time In each slot, each station transmits independently with probability p Prob (slot t has a successful transmission)
Slotted Aloha utilization
Slotted Aloha utilization
Slotted Aloha utilization
Unslotted Aloha utilization Model Fixed packet size, n stations Slotted time of duration t << 1. pkt transmission time lasts 1/t time slots In each t-slot, each station transmits independently with probability p Small t => approximates unslotted operation Prob (slot t has a successful transmission)
Unslotted ALOHA utilization Prob (a pkt transmission started in an arbitrary t-slot by station 1 is successful)
Unslotted ALOHA utilization Prob (a pkt transmission started in an arbitrary t-slot by station 1 is successful)
Unslotted ALOHA utilization
Unslotted ALOHA utilization
Unslotted ALOHA utilization reduces to slotted case If K=1
Unslotted ALOHA utilization
Unslotted ALOHA utilization
Unslotted ALOHA utilization
Cable Ethernet (1973-76) CSMA/CD (carrier sensing multiple access/collision detection) Wait till channel is idle; wait for a random time. Transmit when the channel is idle following the random wait. Abort if collision is detected, and goto 1.
Cable Ethernet (1973-76) Truncated binary exponential backoff Pick X uniformly at random from {0, 1, ..., 2^n-1}, n = min (10, m), m = #collisions. Give up & declare error when m = 16. Wait X x 512 bit times (4,096 bits for 1G) If collide, increment m and repeat.
Cable Ethernet (1973-76) Capture or winner-takes-all effect A station that collides is more likely to pick a larger random backoff time. A station that successfully transmits is more likely to pick a smaller backoff time and hence more likely to successfully transmit again
Hub Ethernet (1980s) CSMA/CD as in Ethernet cable
Hub Ethernet (1980s) A station waits a random multiples of T = 2 PROP before transmitting When n stations transmit independently with prob p, then prob of success is <= 1/e when n is large Hence avg time till first success = e T Utilization = TRANS / (TRANS + (e-1)T) = 1 / (1 + 3.4A), A = PROP/TRAN
Switched Ethernet Ethernet switch eliminates collision, provided switch buffer is big enough.
Ethernet switch: forwarding table (Ethernet) MAC address 48 bit Globally unique to MAC device, location independent (c.f. IP) Broadcast address: 48 ones
Ethernet switch: forwarding table Example: A J Send [J | A | data] to switch S1 S1 looks at table and sends it out on port 4 Etc. What happen if a switch receives a packet for a destination not in its table? e.g. if a new device has been added The switch broadcasts it on all its output ports, except the port on which the packet arrived [simple, not security-conscious] Whenever it gets a packet, it adds the corresponding source address to the table entry that corresponds to the port on which it came. e.g. when switch S1 receives [J | A | data] from port 1, it adds an entry [A=1] to its table. VLAN: network admin can define a subset of links to be a VLAN. Each link belongs to a set of VLANs. Packets are restricted to its own VLAN Benefit: security, service differentiation x y: [ y | x | data ]
Agenda Ethernet: MAC protocols Ethernet: routing protocol History and performance Ethernet: routing protocol Spanning tree protocol
Ethernet bridges/switches Cable Ethernet H1 H2 H3 H4 H1 H2 H4 B2 B3 B4 B5 B1 B6 Switched Ethernet H3 STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path!
Ethernet routing: STP Goal Operation Example Performance STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path! Goal Operation Example Performance
Spanning tree protocol Goal: for all switches in a LAN to compute a shortest-path tree used to route layer-2 packets one tree for entire LAN rooted at the switch with the smallest ID (MAC address) decentralized, asynchronous, robust computation STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path!
Spanning tree protocol Three criteria The root switch always forwards messages on all its ports Each switch computes its shortest path (in #bridges) to root All switches connected to a LAN elect a designated switch for the LAN to send packets towards root switch A switch that is not elected for any of the LANs it is connected to will not receive nor forward any data packet STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path!
Spanning tree protocol Switches send packets asynchronously with [ my ID | current root ID | distance to root ] A switch relays packets whose “current root ID” is the smallest it has seen so far (& smaller than its own “current root ID”), and adds 1 to “distance to root” If the “distances to root” on STP packets received by a switch on all its ports are the same or smaller than what it believes its distance is, then the switch stops forwarding … until protocol converges Completely decentralized, asynchronous, robust STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path!
STP: example I’m 3 I think root is 3 my distance to root is 0 STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path! I think root is 3 my distance to root is 0
STP: example I’m 3 I think root is 3 my distance to root is 0 STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path! I think root is 3 my distance to root is 0
STP: example a new initiation before previous converges STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path!
STP: example a new initiation before previous converges STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path!
STP: example a new initiation before previous converges STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path! During transient, B5 may connect to root B1 either via B3 or B4 – which should B5 use? Ans: use switch with a smaller ID (B3)
STP: example a new initiation before previous converges STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path! B5’s distance to root (B1) is 2 and no greater than “distance to root” on STP packets it received from both its neighbors It stops forwarding (it will operate only as backup)
STP: designated switches STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path! B4 believes its distance to root B1 is 2 The STP packets from both its ports have distances equal or less. So it does not forward and is not a designated switch for neither LAN B3 has smaller ID & connects the same LANs as B4 does
STP: result STP has converged STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path! H1 H2 STP has converged The switches form a tree rooted at switch with smallest ID Every LAN segment is connected to exactly 1 designated switch
STP: result STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path! H1 H2 Neither B4 nor B5 will be involved in forwarding data packets
Spanning tree protocol Performance Unique path between every source-destination pair Can potentially be bad since 2 switches may communicate only via root e.g. in a ring of switches, the switch with the largest ID communicates with root via the longest path Penalty is usually not too bad since it is in a LAN STP: goal STP protocol allows the switches to find the shortest path tree rooted at the switch with the smallest ID (i.e. smallest MAC address on all its interfaces). To break a tie, a switch selects, among interfaces with the same distance to the root, the next hop with the smallest ID. STP: Operation Switches send packets with [my ID | current root ID | distance from current root], *asynchronously*. A switch relays packets whose “current root ID” is the smallest (& smaller than its current root ID) it has seen so far, and the switch adds one to the distance to current root ID. STP: Example Switch B3 starts by sending [3 | 3 | 1] Followed by switch B5, etc. Tie-breaking: When eventually B5 receives from both B3 and B4 packets [3 | 1 | 2] and [4 | 1 | 2], it chooses B3 because it has a smaller ID. STP: What is the performance? Can be bad, e.g., in a ring of switches, the switch with the largest ID communicate with root via *longest* path!