1 1 Internet Control Protocols!EE 122: Intro to Communication Networks Fall 2009 Prof. Vern Paxson [email protected] Materials with thanks to Jennifer Rexford, Ion Stoica, and colleagues at Princeton and UC Berkeley 2 Goals of Todayʼs Lecture!• Bootstrapping an end host – Learning its own configuration parameters (DHCP) – Learning the link-layer addresses of other nodes (ARP) • Network control messages – Error/status reporting – Monitoring – Internet Control Message Protocol (ICMP) – Exploiting ICMP for discovering Internet path properties o Largest packet that can be sent w/o fragmenting (PMTU) o Route taking by packets through the network (traceroute) 3 How To Bootstrap an End Host?!• What IP address the host should use? • What DNS server(s) to use? • How to tell which destinations are local? • How do we address them using local network? • How to send packets to remote destinations? host!host! DNS!...!host!host! DNS!...!router! router!1.2.3.0/23 5.6.7.0/24 1.2.3.7 1.2.3.156 ??? 1.2.3.19 router!4 Avoiding Manual Configuration!• Dynamic Host Configuration Protocol (DHCP) – End host learns how to send packets – Learn IP address, DNS servers, “gateway”, what’s local • Address Resolution Protocol (ARP) – For local destinations, learn mapping between IP address and MAC address host!host! DNS!...!host!host! DNS!...!router! router!1.2.3.0/23 255.255.254.0 5.6.7.0/24 1.2.3.7 1.2.3.156 1.2.3.48 1.2.3.19 router!1A-2F-BB-76-09-AD2 5 Key Ideas in Both Protocols!• Broadcasting: when in doubt, shout! – Broadcast query to all hosts in the local-area-network – … when you don’t know how to identify the right one • Caching: remember the past for a while – Store the information you learn to reduce overhead – Remember your own address & other host’s addresses • 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 in the face of unpredictable change 6 MAC Address vs. IP Address!• MAC addresses – Hard-coded in read-only memory when adaptor is built – Like a social security number – Flat name space of 48 bits (e.g., 00-0E-9B-6E-49-76) – Portable, and can stay the same as the host moves – Used to get packet between interfaces on same network • IP addresses – Configured, or learned dynamically – Like a postal mailing address – Hierarchical name space of 32 bits (e.g., 12.178.66.9) – Not portable, and depends on where the host is attached – Used to get a packet to destination IP subnet 7 Bootstrapping Problem!• Host doesn’t have an IP address yet – So, host doesn’t know what source address to use • Host doesn’t know who to ask for an IP address – So, host doesn’t know what destination address to use • Solution: shout to “discover” server that can help – Broadcast a server-discovery message (ff:ff:ff:ff:ff:ff) – Server(s) sends a reply offering an address host!host! host!...!DHCP server!8 Response from the DHCP Server!• DHCP “offer” message from the server – Configuration parameters (proposed IP address, mask, gateway router, DNS server, ...) – Lease time (duration the information remains valid) • Multiple servers may respond – Multiple servers on the same broadcast network – Each may respond with an offer • Accepting one of the offers – Client sends a DHCP “request” echoing the parameters – The DHCP server responds with an “ACK” to confirm – … and the other servers see they were not chosen3 9 Dynamic Host Configuration Protocol!arriving#client!DHCP server!203.1.2.5!DHCP discover!(broadcast)!DHCP offer!DHCP request!DHCP ACK!(broadcast)!10 Soft State: Refresh or Forget!• Why is a lease time necessary? – Client can release the IP address (DHCP RELEASE) o E.g., “ipconfig /release” at the DOS prompt o E.g., clean shutdown of the computer – But, host might not release the address o E.g., the host crashes (blue screen of death!) o E.g., buggy client software o E.g., you shut your laptop off and put it in your backpack – And you don’t want the address to be allocated forever • Performance trade-offs – Short lease time: returns inactive addresses quickly – Long lease time: avoids overhead of frequent renewals & lessens frequency of lease being denied 11 So, Now the Host Knows Things!• IP address • Mask • Gateway router • DNS server • And can send packets to other IP addresses • But: how to use the local network to do this? 12 Figuring Out Where To Send Locally!• Two cases: – Destination is on the local network o So need to address it directly – Destination is not local (“remote”) o Need to figure out the first “hop” on the local network • Determining if it’s local: use the netmask – E.g., mask destination IP address w/ 255.255.254.0 – Is it the same value as when we mask our own address? o Yes = local o No = remote host!host! DNS!...!host!host! DNS!...!router! router!1.2.3.0/23 255.255.254.0 5.6.7.0/24 1.2.3.7 1.2.3.156 1.2.3.48 1.2.3.19 router!1A-2F-BB-76-09-AD4 13 Where To Send Locally, conʼt!• If it’s remote, look up first hop in (very small) local routing table – E.g., by default, route via 1.2.3.19 – Now do to the local case but for 1.2.3.19 rather than ultimate destination IP address • For the local case, need to determine the destination’s MAC address host!host! DNS!...!host!host! DNS!...!router! router!1.2.3.0/23 255.255.254.0 5.6.7.0/24 1.2.3.7 1.2.3.156 1.2.3.48 1.2.3.19 router!1A-2F-BB-76-09-AD 14 Sending Packets Over a Link!• Adaptors only understand MAC addresses – Translate the destination IP address to MAC address – Encapsulate the IP packet inside a link-level frame host!host! DNS!...!1.2.3.156 router!1.2.3.53 1.2.3.53 1.2.3.156 IP packet!15 Address Resolution Protocol!• Every node maintains an ARP table – <IP address, MAC address> pair • Consult the table when sending a packet – Map destination IP address to destination MAC address – Encapsulate and transmit the data packet • But: what if IP address not in the table? – Sender broadcasts: “Who has IP address 1.2.3.156?” – Receiver
View Full Document