Missing pieces Putting the pieces together EE 122
- Slides: 68
Missing pieces + Putting the pieces together EE 122, Fall 2013 Sylvia Ratnasamy http: //inst. eecs. berkeley. edu/~ee 122/ Material thanks to Ion Stoica, Scott Shenker, Jennifer Rexford, Nick Mc. Keown, and many other colleagues
Today • Missing pieces – DHCP – ARP • Putting the pieces together – “What happens when I click on a link? ” • More missing pieces
Naming • Application layer: URLs and domain names – names “resources” -- hosts, content, program – (recall: mixes the what and where of an object) • Network layer: IP addresses – host’s network location • Link layer: MAC addresses – host identifier • Use all three for end-to-end communication!
Discovery • A host is “born” knowing only its MAC address • Must discover lots of information before it can communicate with a remote host B – what is my IP address? – what is B’s IP address? (remote) – what is B’s MAC address? (if B is local) – what is my first-hop router’s address? (if B is not local) –…
ARP and DHCP • Link layer discovery protocols – “Address Resolution Protocol”, “Dynamic Host Configuration Protocol” – confined to a single local-area network (LAN) – rely on broadcast capability of a LAN Hosts Router
ARP and DHCP • Link layer discovery protocols • Serve two functions – Discovery of local end-hosts • for communication between hosts on the same LAN
ARP and DHCP • Link layer discovery protocols • Serve two functions – Discovery of local end-hosts – Bootstrap communication with remote hosts • what’s my IP address? • who/where is my local DNS server? • who/where is my first hop router?
DHCP • “Dynamic Host Configuration Protocol” – defined in RFC 2131 • A host uses DHCP to discover – its own IP address – its netmask – IP address(es) for its DNS name server(s) – IP address(es) for its first-hop “default” router(s)
DHCP: operation 1. One or more local DHCP servers maintain required information – IP address pool, netmask, DNS servers, etc. – application that listens on UDP port 67
DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client broadcasts a DHCP discovery message – L 2 broadcast, to MAC address FF: FF: FF: FF
DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client broadcasts a DHCP discovery message 3. One or more DHCP servers responds with a DHCP “offer” message – proposed IP address for client, lease time – other parameters
DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client broadcasts a DHCP discovery message 3. One or more DHCP servers responds with a DHCP “offer” message 4. Client broadcasts a DHCP request message – specifies which offer it wants – echoes accepted parameters – other DHCP servers learn they were not chosen
DHCP: operation 1. One or more local DHCP servers maintain required information 2. Client broadcasts a DHCP discovery message 3. One or more DHCP servers responds with a DHCP “offer” message 4. Client broadcasts a DHCP request message 5. Selected DHCP server responds with an ACK (DHCP “relay agents” used when the DHCP server isn’t on the same broadcast domain -- see text)
DHCP uses “soft state” • Soft state: if not refreshed, state is forgotten – contrast hard state: allocation is explicitly returned/reclaimed – used to track address allocation in DHCP • Implementation – – – address allocations are associated with a lease period server sets a timer associated with the record of allocation client must request a refresh before lease period expires server resets timer when a refresh arrives; sends ACK server reclaims allocated address when timer expires • Simple, yet robust under failure – state always fixes itself in (small constant of) lease time
Soft state under failure a. b. c. d is XYZ’s from (now, now+lease) a. b. c. d is mine from (now, now+lease) DHCP Server XYZ Router • What happens when host XYZ fails? – refreshes from XYZ stop – server reclaims a. b. c. d after ~lease period
Soft state under failure a. b. c. d is XYZ’s from (now, now+lease) a. b. c. d is mine from (now, now+lease) DHCP Server XYZ Router • What happens when server fails? – ACKs from server stop – XYZ releases address after ~lease period; sends new request – A new DHCP server can come up from a `cold start’ and we’re back on track in ~lease time
Soft state under failure a. b. c. d is XYZ’s from (now, now+lease) a. b. c. d is mine from (now, now+lease) DHCP Server XYZ Router • What happens if the network fails? – refreshes and ACKs don’t get through – XYZ release address; DHCP server reclaims it
Are we there yet? What I learnt from DHCP my IP: 1. 2. 3. 48 netmask: 1. 2. 3. 0/24 (255. 0) DNS: 1. 2. 3. 156 router: 1. 2. 3. 19 DHCP Server DNS Server Host Router Host
Sending Packets Over Link-Layer 1. 2. 3. 48 Host IP packet 1. 2. 3. 53 Host 90 -E 2 -A 1 -09 -66 -1 B 1. 2. 3. 156 DNS 58 -23 -D 7 -FA-20 -B 0 1. 2. 3. 156 Router • Link layer only understands MAC addresses – Translate the destination IP address to MAC address – Encapsulate the IP packet inside a link-level frame
ARP: Address Resolution Protocol • Every node maintains an ARP table – list of (IP address MAC address) pairs • Consult the table when sending a packet – Map destination IP address to destination MAC address – Encapsulate the (IP) data packet with MAC header; transmit • But: what if IP address not in the table? – Sender broadcasts: “Who has IP address 1. 2. 3. 156? ” – Receiver responds: “MAC address 58 -23 -D 7 -FA-20 -B 0” – Sender caches result in its ARP table
What if the destination is remote? • Look up the MAC address of the first hop router – 1. 2. 3. 48 uses ARP to find MAC address for first-hop router 1. 2. 3. 19 rather than ultimate destination IP address • How does the red host know the destination is not local? – Uses netmask (discovered via DHCP) • How does the red host know about 1. 2. 3. 19? – Also DHCP 1. 2. 3. 0/24 (255. 0) 1. 2. 3. 156 1. 2. 3. 48 host . . . DNS host 1. 2. 3. 19 router . . . 5. 6. 7. 0/24 host
Security Analysis of ARP • Impersonation – Any node that hears request can answer … – … and can say whatever they want • Actual legit receiver never sees a problem – Because even though later packets carry its IP address, its NIC doesn’t capture them since not its MAC address
Steps in Sending a Packet What do hosts need to know? And how do they find out?
Steps in reaching a Host • First look up destination’s IP address • Need to know where local DNS server is – DHCP • Also needs to know its own IP address – DHCP
Sending a Packet • On same subnet: – Use MAC address of destination. – ARP • On some other subnet: – Use MAC address of first-hop router. – DHCP + ARP • And how can a host tell whether destination is on same or other subnet? – Use the netmask – DHCP
Example: A Sending a Packet to B A R B How does host A send an IP packet to host B?
Example: A Sending a Packet to B A R 1. A sends packet to R. 2. R sends packet to B. B
Host A Decides to Send Through R • Host A constructs an IP packet to send to B – Source 111, destination 222 • Host A has a gateway router R – Used to reach destinations outside of 111. 0/24 – Address 111. 110 for R learned via DHCP A R 28 B
Host A Sends Packet Through R • Host A learns the MAC address of R’s interface – ARP request: broadcast request for 111. 110 – ARP response: R responds with E 6 -E 9 -00 -17 -BB-4 B • Host A encapsulates the packet and sends to R A R 29 B
Two points: R Decides how to to. Forward • Routing table points this port • Destination address is within • Router R’s adapter receives the packet maskthe of IPport’s (i. e. , local) – R extracts packetaddress from the Ethernet frame Packet – R sees the IP packet is destined to 222 • Router R consults its forwarding table – Packet matches 222. 0/24 via other adapter A R 30 B
R Sends Packet to B • Router R’s learns the MAC address of host B – ARP request: broadcast request for 222 – ARP response: B responds with 49 -BD-D 2 -C 7 -56 -2 A • Router R encapsulates the packet and sends to B A R 31 B
Key Ideas in Both ARP and DHCP • Broadcasting: used for initial bootstrap • Caching: remember the past for a while – Store the information you learn to reduce overhead – Remember your own address & other host’s addresses – Key optimization for performance • Soft state: eventually forget the past – Associate a time-to-live field with the information – … and either refresh or discard the information – Key for robustness
Discovery mechanisms We’ve seen two broad approaches – Broadcast (ARP, DHCP) • flooding doesn’t scale • no centralized point of failure • zero configuration – Directory service (DNS) • no flooding • root of the directory is vulnerable (caching is key) • needs configuration to bootstrap (local, root servers, etc. ) Can we get the best of both? – Internet-scale yet zero config?
• Are we there yet? – Yes!
Putting the pieces together Walk through the steps required to download www. google. com/index. html from your laptop your. DNS your. DHCP Google’s datacenter You R router Dorm UCB Count the number of protocols that come into play! • Assume: `cold start’ -- nothing cached anywhere • Assume: your. DNS on a different subnet from your. DHCP • Ignore intra- and interdomain routing protocols
placeholder…
Recap: Name discovery/resolution • MAC addresses? – my own: hardcoded – others: ARP (given IP address) • IP addresses? – my own: DHCP – others: DNS (given domain name) • how do I bootstrap DNS communication? (DHCP) • Domain names? – search engines
Switched Ethernet
Why Switched Ethernet? B A C switch D • Enables concurrent communication • Host A can talk to C, while B talks to D • No collisions no need for CSMA, CD • No constraints on link lengths, etc.
Switched Ethernet • Constraints (for backward compatibility) • same framing (MAC address structure, headers) • maintain plug-n-play aspect • (Old) Ethernet achieved plug-n-play by leveraging a broadcast medium • how do we do this in a switched topology? • Natural first thought: flood (to mimic broadcast)
Problem: Flooding can lead to loops Example: A wants to broadcast a message - A sends packet to 1 1 Floods to 2 and 4 2 Floods to B and 3 4 Floods to D and 3 3 Floods packet from 2 to C and 4 3 Floods packet from 4 to C and 2 4 Floods packet from 3 to D and 1 2 Floods packet from 3 to B and 1 1 Floods packet from 2 to A and 4 1 Floods packet from 4 to B and 2 …. A 1 B 2 4 3 C - A “broadcast storm” if the network contains a cycle of switches D
Easiest Way to Avoid Loops • Use a topology where loops are impossible! • Take arbitrary topology • Build spanning tree (algorithm covered later) – Sub-graph that covers all vertices but contains no cycles – Ignore all links not on the spanning tree • Only one path to destinations on spanning trees – So don’t have to worry about loops!
Consider graph
A Spanning Tree 44
Another Spanning Tree 45
Flooding on a Spanning Tree • Switches flood using the following rule: – (Ignoring all ports not on spanning tree!) • Originating switch sends “flood” packet out all ports • When a “flood” packet arrives on one incoming port, send it out all other ports
Flooding on Spanning Tree
Flooding on Spanning Tree
But isn’t flooding wasteful? • Yes, but we can use it to bootstrap more efficient forwarding • Idea: watch the packets going by, and learn from that – There is a single path between any two nodes – If node A sees a packet from node B come in on a particular port, it knows what port to use to reach B!
Nodes can “learn” routing tables • Switch can learn how to reach nodes by remembering where flooding packets came from! • If flood packet from Node A entered switch from port 4, then switch uses port 4 to reach Node A 50
Learning from Flood Packets Node A can be reached through this port Node B Node A 51 Once a node has sent a flood message, all other switches know how to reach it….
Node B Responds Node B can be reached through this port Node B Node A 52 When a node responds, some of the switches learn where it is
General Approach • Flood first packet to node you are trying to reach • All switches learn where you are • When destination responds, some switches learn where it is… – Only some switches, because packet to you follows direct path, and is not flooded • The decision to flood or not is done on a switchby-switch basis….
Self-Learning Switch When a packet arrives • Inspect source MAC address, associate with incoming port • Store mapping in the switch table • Use time-to-live field to eventually forget mapping Packet tells switch how to reach A. B A C D
Self Learning: Handling Misses When packet arrives with unfamiliar destination • Forward packet out all other ports • Response will teach switch about that destination B A C D
Summary of Learning Approach • Avoids loop by restricting to spanning tree • This makes flooding possible • Flooding allows packet to reach destination • And in the process switches learn how to reach source of flood • No route “computation”
Last Piece: Building the Spanning Tree • Distributed • No global information • Must adapt when failures occur
What Do We Know? • Shortest paths to (or from) a node form a tree – Covers all nodes in the graph – No shortest path can have a cycle
Algorithm Has Two Aspects • Pick a root: – This will be the destination to which shortest paths go – Pick the one with the smallest identifier (MAC addr. ) • Compute shortest paths to the root – Only keep the links on shortest-paths – Break ties by picking the lowest neighbor switch addr • Ethernet’s spanning tree construction does both with a single algorithm
Constructing a Spanning Tree • Switches need to elect a root – The switch w/ smallest identifier (MAC addr) • Each switch determines if each interface root is on the shortest path from the root – Excludes it from the tree if not • Messages (Y, d, X) – From node X – Proposing Y as the root – And the distance is d One hop Three hops
Steps in Spanning Tree Algorithm • Initially, each switch proposes itself as the root – Example: switch X announces (X, 0, X) • Switches update their view of the root – Upon receiving message (Y, d, Z) from Z, check Y’s id – If Y’s id < current root: set root = Y • Switches compute their distance from the root – Add 1 to the distance received from a neighbor – exclude links not on shortest path to the root • If root or shortest distance to it changed, “flood” updated message (Y, d+1, X)
Example From Switch #4’s Viewpoint • Switch #4 thinks it is the root – Sends (4, 0, 4) message to 2 and 7 1 • Then, switch #4 hears from #2 – Receives (2, 0, 2) message from 2 – … and thinks that #2 is the root – And realizes it is just one hop away • Then, switch #4 hears from #7 – – Receives (2, 1, 7) from 7 And realizes this is a longer path So, prefers its own one-hop path And removes 4 -7 link from the tree 3 5 2 4 7 6
Example From Switch #4’s Viewpoint • Switch #2 hears about switch #1 – Switch 2 hears (1, 1, 3) from 3 – Switch 2 starts treating 1 as root – And sends (1, 2, 2) to neighbors 1 3 5 • Switch #4 hears from switch #2 – Switch 4 starts treating 1 as root – And sends (1, 3, 4) to neighbors 2 4 7 6
Links on spanning tree • • • 3 -1 5 -1 6 -1 2 -3 4 -2 7 -2 1 3 5 2 4 7 6
Now which ones are on the spanning tree? • • • 2 is new root 3 -2 6 -2 4 -2 7 -2 5 -6 3 5 2 4 7 6
Robust Spanning Tree Algorithm • Algorithm must react to failures – Failure of the root node • Need to elect a new root, with the next lowest identifier – Failure of other switches and links • Need to recompute the spanning tree • Root switch continues sending messages – Periodically re-announcing itself as the root (1, 0, 1) – Other switches continue forwarding messages • Detecting failures through timeout (soft state) – If no word from root, time out and claim to be the root!
Problems with Spanning Tree? • Delay in reestablishing spanning tree – Network is “down” until spanning tree rebuilt • Much of the network bandwidth goes unused – Forwarding is only over the spanning tree • Many ongoing efforts to fix these problems in datacenter networks (next lecture)
Schedule • Nov 18: Security part I (Vern Paxson) • Nov 20: Switched Ethernet (contd. ) and Datacenters (me) • Nov 25: Security part II (Vern) • Nov 27: Thanksgiving • Dec 2: SDN (Scott Shenker) + HKN survey • Dec 4: Final review
- Puts the pieces together if in use maybe
- Putting the pieces together case study answer key
- Practice putting it all together part 1 fill in the blank
- Putting things together is called
- Letters put together
- Putting two words together
- Package mypackage; class first { /* class body */ }
- Example of bridge in introduction
- Strategic organization speech
- Putting it all together
- Putting it all together motion answer key
- Opvoedbelasting
- Psalm 68 5
- Ee 122
- Put to death the old man
- Polynomial standard form
- Cartel de horario de trabajo lottt
- Ece 122
- Negative tu command escoger
- Project evaluation and control
- Putting prevention into practice
- Psalm 122 i was glad
- Nec 250 122
- Linear actuator frc
- Hyponomy
- Ece 122
- Putting objects in perspective
- A traffic light weighing 122 n hangs from a cable
- Long term impacts of the industrial revolution
- Abseetism
- Enterprise
- Putting the enterprise into the enterprise system
- Psalm 122:1-9
- Putting-out system
- Convenio 122 oit
- Nec 250 122
- Putting on the new man
- Ee 122
- Putting it into practice
- A process in sculpture putting additional parts
- Ee dns server
- Ee 122
- Homework 122
- Oncology nursing society putting evidence into practice
- 건설업 gdp 비중
- François quesnay
- Putting stance width
- Ivy tech finite math
- Harga 3 lusin pensil rp45.000
- Notice to amend assessment
- Ordering fractions
- Psalm 24:5-6
- Putting-out system
- Proletarianization ap euro
- Class f airspace
- Ion stoica
- 122design
- Putting zone
- Putting principles into practice
- Eecs 122
- The order of putting on ppe
- Texto en 3ra persona
- Nearest ten thousand
- Psalm 84 the passion translation
- Eecs 122
- In ip addressing, an address beginning with 122 is
- Putting people first 2007
- You buy a package of 122 smarties
- Non physical fences example