Missing pieces + Putting the pieces together EE 122, Fall 2013 Sylvia Ratnasamy Material thanks to Ion Stoica, Scott.

Slides:



Advertisements
Similar presentations
Interconnection: Switching and Bridging
Advertisements

Interconnection: Switching and Bridging CS 4251: Computer Networking II Nick Feamster Fall 2008.
Everything.
IP/MAC Address Translation
Communication Networks Recitation 3 Bridges & Spanning trees.
University of Calgary – CPSC 441.  We need to break down big networks to sub-LANs  Limited amount of supportable traffic: on single LAN, all stations.
CSE331: Introduction to Networks and Security Lecture 8 Fall 2002.
Cs/ee 143 Communication Networks Chapter 6 Internetworking Text: Walrand & Parekh, 2010 Steven Low CMS, EE, Caltech.
CMPE 150- Introduction to Computer Networks 1 CMPE 150 Fall 2005 Lecture 19 Introduction to Computer Networks.
Media Access Control (MAC) addresses in the network access layer ▫ Associated w/ network interface card (NIC) ▫ 48 bits or 64 bits IP addresses for the.
Internet Control Protocols Savera Tanwir. Internet Control Protocols ICMP ARP RARP DHCP.
Copyright 2009 Kenneth M. Chipps Ph.D. Host Addressing Last Update
Week 5: Internet Protocol Continue to discuss Ethernet and ARP –MTU –Ethernet and ARP packet format IP: Internet Protocol –Datagram format –IPv4 addressing.
Oct 21, 2004CS573: Network Protocols and Standards1 IP: Addressing, ARP, Routing Network Protocols and Standards Autumn
© 2007 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets with Internet Applications, 4e By Douglas.
Subnetting.
1 Internet Control Protocols Reading: Section 4.1 COS 461: Computer Networks Spring 2006 (MW 1:30-2:50 in Friend 109) Jennifer Rexford Teaching Assistant:
EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao
Chapter 19 Binding Protocol Addresses (ARP) Chapter 20 IP Datagrams and Datagram Forwarding.
Chapter 23: ARP, ICMP, DHCP IS333 Spring 2015.
Switched Ethernet. Announcements HW3 will be pushed out 2-3 days – Both release and due dates – Will post on piazza when we release Get started on project#3!
Everything. MACIP End-host IP: MAC: 11:11:11:11:11 gateway IP: MAC: 22:22:22:22:22 Google server IP: MACIP MACInterfaceMACInterface.
Understanding Networks Charles Zangla. Network Models Before I can explain how connections are made from across the country, I would like to provide you.
Lecture 8 Modeling & Simulation of Communication Networks.
Network Layer (Part IV). Overview A router is a type of internetworking device that passes data packets between networks based on Layer 3 addresses. A.
Support Protocols and Technologies. Topics Filling in the gaps we need to make for IP forwarding work in practice – Getting IP addresses (DHCP) – Mapping.
Network Redundancy Multiple paths may exist between systems. Redundancy is not a requirement of a packet switching network. Redundancy was part of the.
Bootstrap and Autoconfiguration (DHCP)
Network Layer – Subnetting and Control Protocols Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing,
23-Support Protocols and Technologies Dr. John P. Abraham Professor UTPA.
1 Dynamic Host Configuration Protocol (DHCP) Relates to Lab 7. Module about dynamic assignment of IP addresses with DHCP.
Multicasting  A message can be unicast, multicast, or broadcast.
S305 – Network Infrastructure Chapter 5 Network and Transport Layers.
DNS (Domain Name System) Protocol On the Internet, the DNS associates various sorts of information with domain names. A domain name is a meaningful and.
CMPT 471 Networking II Address Resolution IPv4 ARP RARP 1© Janice Regan, 2012.
Transport Layer 3-1 Chapter 4 Network Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012  CPSC.
NUS.SOC.CS2105 Ooi Wei Tsang Application Transport Network Link Physical you are here.
Polytechnic University1 The internetworking solution of the Internet Prof. Malathi Veeraraghavan Elec. & Comp. Engg. Dept/CATT Polytechnic University
Missing pieces + Putting the pieces together CS 168, Fall 2014 Sylvia Ratnasamy Material thanks to Ion Stoica, Scott Shenker, Jennifer Rexford, Nick McKeown,
1 TCP/IP Networking. 2 TCP/IP TCP/IP is the networking protocol suite most commonly used with UNIX, Windows, NT and most other OS’s. TCP/IP defines a.
BAI513 - PROTOCOLS DHCP BAIST – Network Management.
Missing pieces + Putting the pieces together EE 122, Fall 2013 Sylvia Ratnasamy Material thanks to Ion Stoica, Scott.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
Chapter 23: ARP, ICMP, DHCP CS332, IS333 Spring 2014.
Presented by Rebecca Meinhold But How Does the Internet Work?
1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Dynamic Host Configuration Protocol (DHCP)
1 OSI and TCP/IP Models. 2 TCP/IP Encapsulation (Packet) (Frame)
CSIT 220 (Blum)1 ARP Based on Computer Networks and Internets (Comer)
Lecture 8: Internet Control Protocols Reading: Section 4.1 ? CMSC 23300/33300 Computer Networks
Multicasting  A message can be unicast, multicast, or broadcast. Let us clarify these terms as they relate to the Internet.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 Module 10 Routing Fundamentals and Subnets.
Cisco Confidential © 2013 Cisco and/or its affiliates. All rights reserved. 1 Cisco Networking Training (CCENT/CCT/CCNA R&S) Rick Rowe Ron Giannetti.
EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao
Chapter 38 Initialization & Configuration. Bootstrapping occurs during boot up to obtain boot program which may then load operating system may use network.
5: DataLink Layer 5a-1 Bridges and spanning tree protocol Reference: Mainly Peterson-Davie.
BAI513 - PROTOCOLS DHCP BAIST – Network Management.
Copyright © 2006 Heathkit Company, Inc. All Rights Reserved Introduction to Networking Technologies Dynamic Host Configuration Protocol (DHCP)
End-host IP: MAC: 11:11:11:11:11 gateway IP: MAC: 22:22:22:22:22 Google server IP: interne t interface DNS server IP:
Chapter 5 Network and Transport Layers
Scaling the Network Chapters 3-4 Part 2
IP: Addressing, ARP, Routing
MAC Address Tables on Connected Switches
MAC Addresses and ARP 32-bit IP address:
ARP: Address Resolution Protocol
BOOTP and DHCP Objectives
CS 457 – Lecture 8 Switching and Forwarding
CS 457 – Lecture 10 Internetworking and IP
CS 457 – Lecture 11 More IP Networking
TCP/IP Protocol Suite: Review
Chapter 5: Link Layer 5.1 Introduction and services
Presentation transcript:

Missing pieces + Putting the pieces together EE 122, Fall 2013 Sylvia Ratnasamy Material thanks to Ion Stoica, Scott Shenker, Jennifer Rexford, Nick McKeown, 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 – L2 broadcast, to MAC address FF:FF: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 – hard state: allocation is deliberately returned/withdrawn – 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 What happens when host XYZ fails? – refreshes from XYZ stop – server reclaims a.b.c.d after O(lease period) Router XYZ DHCP Server a.b.c.d is mine from (now’, now’+lease) a.b.c.d is XYZ’s from (now, now+c.lease)

Soft state under failure What happens when server fails? – ACKs from server stop – XYZ releases address after O(lease period); send new request – A new DHCP server can come up from a `cold start’ and we’re back on track in ~lease time Router XYZ DHCP Server a.b.c.d is mine from (now, now+lease) a.b.c.d is XYZ’s from (now, now+c.lease)

Soft state under failure What happens if the network fails? – refreshes and ACKs don’t get through – XYZ release address; DHCP server reclaims it Router XYZ DHCP Server a.b.c.d is mine from (now, now+lease) a.b.c.d is XYZ’s from (now, now+c.lease)

Router Host DHCP Server Are we there yet? DNS Server What I learnt from DHCP my IP: netmask: /24 ( ) DNS: router:

Sending Packets Over Link-Layer Link layer only understands MAC addresses – Translate the destination IP address to MAC address – Encapsulate the IP packet inside a link-level frame Router Host DNS D7-FA-20-B0 90-E2-A B IP packet

ARP: Address Resolution Protocol Every host 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 ?” – Receiver responds: “MAC address D7-FA-20-B0” – Sender caches result in its ARP table

What if the destination is remote? Look up the MAC address of the first hop router – uses ARP to find MAC address for first-hop router 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 ? – Also DHCP host DNS... host... router /24 ( ) / router

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 How does host A send an IP packet to host B? A R B

Example: A Sending a Packet to B A R B 1. A sends packet to R. 2. R sends packet to B.

28 Host A Decides to Send Through R A R B Host A constructs an IP packet to send to B –Source , destination Host A has a gateway router R –Used to reach destinations outside of /24 –Address for R learned via DHCP

29 Host A Sends Packet Through R Host A learns the MAC address of R’s interface –ARP request: broadcast request for –ARP response: R responds with E6-E BB-4B Host A encapsulates the packet and sends to R A R B

30 R Decides how to Forward Packet Router R’s adapter receives the packet –R extracts the IP packet from the Ethernet frame –R sees the IP packet is destined to Router R consults its forwarding table –Packet matches /24 via other adapter (port) A R B Two points: Routing table points to this port Destination address is within mask of port’s address (i.e., local)

31 R Sends Packet to B Router R’s learns the MAC address of host B –ARP request: broadcast request for –ARP response: B responds with 49-BD-D2-C7-56-2A Router R encapsulates the packet and sends to B A R 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 Assume: `cold start’ -- nothing cached anywhere Assume: yourDNS on a different subnet from yourDHCP Ignore intra- and interdomain routing protocols Google’s datacenter Dorm You yourDHCP UCB yourDNS R router Count the number of protocols that come into play! Walk through the steps required to download from your laptop Walk through the steps required to download from your laptop

Step 1: Self discovery You use DHCP to discover bootstrap parameters – your IP addr (u.u.u.u) – your DNS server’s IP (u.dns.ip.addr) – R’s IP address (r.r.r.r) –.. Exchange between you and yourDHCP Protocol count = 4 Dorm You yourDHCP R router Ethernet UDP DHCP IP

Next… You are ready to contact  need an IP address for  need to ask google’s DNS server  need to ask my DNS server to ask google’s DNS…  I know my DNS server’s IP addr is u.dns.ip.addr  create a packet to send… Ethernet UDP DNS IP destination MAC? source: u.u.u..u dst: u.dns.ip.addr source: u.u.u..u dst: u.dns.ip.addr

Step 2: Getting out the door You use ARP to discover the MAC address of R Exchange between you and R Protocol count = 5 Dorm You yourDHCP R router Ethernet ARP dst MAC?

Step 3: Send a DNS request Exchange between you and yourDNS Now ready to send that packet Protocol count = 6 Ethernet UDP DNS IP source: u.u.u..u dst: u.dns.ip.addr source: u.u.u..u dst: u.dns.ip.addr R’s MAC You UCB yourDNS R router

Step 4: yourDNS does its thing yourDNS resolves Protocol count = 6 yourDNS root name server top-level name server google’s name server IP address is g.g.g.g You

Google’s datacenter You UCB R Step 5: Getting the content (at last) Exchange between you and google’s server at g.g.g.g Ethernet TCP HTTP IP source: u.u.u..u dst: g.g.g.g source: u.u.u..u dst: g.g.g.g R’s MAC Protocol count = 8

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? switch A B C 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 B B A A C C D D 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 “broadcast storm” if the network contains a cycle of switches

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 49

Another Spanning Tree 50

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

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 55

Learning from Flood Packets 56 Node A Node A can be reached through this port Node A can be reached through this port Once a node has sent a flood message, all other switches know how to reach it…. Node B

Node B Responds 57 Node A Node B can be reached through this port When a node responds, some of the switches learn where it is Node B Node B can be reached through this port Node B can be reached through this port Node B can be reached through this port

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

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 A B C D Packet tells switch how to reach A.

Self Learning: Handling Misses When packet arrives with unfamiliar destination Forward packet out all other ports Response will teach switch about that destination A B 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”