COS 561: Advanced Computer Networks

Slides:



Advertisements
Similar presentations
Review r Error Detection: CRC r Multiple access protocols m Slotted ALOHA m CSMA/CD r Homework 3 out r Project 3 out, link state only. Some slides are.
Advertisements

© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
TCP/IP Jennifer Rexford Advanced Computer Networks Tuesdays/Thursdays 1:30pm-2:50pm.
Oct 21, 2004CS573: Network Protocols and Standards1 IP: Addressing, ARP, Routing Network Protocols and Standards Autumn
5-1 Data Link Layer r Today, we will study the data link layer… r This is the last layer in the network protocol stack we will study in this class…
Mike Freedman Fall 2012 (TTh 1:30-2:50 in COS 402) COS 561: Advanced Computer Networks The Host.
Process-to-Process Delivery:
Midterm Review - Network Layers. Computer 1Computer 2 2.
1 IP: putting it all together Part 2 G53ACC Chris Greenhalgh.
Fall 2005Computer Networks20-1 Chapter 20. Network Layer Protocols: ARP, IPv4, ICMPv4, IPv6, and ICMPv ARP 20.2 IP 20.3 ICMP 20.4 IPv6.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
Fundamentals of Computer Networks ECE 478/578 Lecture #19: Transport Layer Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
1 The Internet and Networked Multimedia. 2 Layering  Internet protocols are designed to work in layers, with each layer building on the facilities provided.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
ECE 526 – Network Processing Systems Design Networking: protocols and packet format Chapter 3: D. E. Comer Fall 2008.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
CCNA 3 Week 4 Switching Concepts. Copyright © 2005 University of Bolton Introduction Lan design has moved away from using shared media, hubs and repeaters.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
Data Link Layer Moving Frames. Link Layer Protocols: ethernet, wireless, Token Ring and PPP Has node-to-node job of moving network layer.
1 Network Administration Module 3 ARP/RARP. 2 Address Resolution The problem Physical networks use physical addresses, not IP addresses Need the physical.
Lecture 4 Overview. Ethernet Data Link Layer protocol Ethernet (IEEE 802.3) is widely used Supported by a variety of physical layer implementations Multi-access.
1 OSI and TCP/IP Models. 2 TCP/IP Encapsulation (Packet) (Frame)
1 CSE524: Lecture 2 Internet protocols in a nutshell (Protocols in practice)
Transport Protocols.
5: DataLink Layer5-1 Virtualization of networks Virtualization of resources: powerful abstraction in systems engineering: r computing examples: virtual.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
1 Chapter 24 Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
Introduction to Networks
Computer Communication Networks
Virtualization of networks
IP: Addressing, ARP, Routing
Chapter 9: Transport Layer
Chapter 4: Network Layer
Chapter 3 outline 3.1 Transport-layer services
Instructor Materials Chapter 9: Transport Layer
A quick intro to networking
Chapter 5 Network and Transport Layers
COS 561: Advanced Computer Networks
Scaling the Network: The Internet Protocol
Click to edit Master subtitle style
Process-to-Process Delivery, TCP and UDP protocols
06- Transport Layer Transport Layer.
PART 5 Transport Layer Computer Networks.
TCP/IP Transmission Control Protocol / Internet Protocol
Understand the OSI Model Part 2
Subject Name: Computer Communication Networks Subject Code: 10EC71
CS 457 – Lecture 10 Internetworking and IP
Transport Layer Unit 5.
Introduction to Networks
Data Link Issues Relates to Lab 2.
Process-to-Process Delivery:
Wide Area Networks and Internet CT1403
CS 457 – Lecture 11 More IP Networking
TCP/IP Protocol Suite: Review
TCP/IP Protocol Suite: Review
CPEG514 Advanced Computer Networkst
CS4470 Computer Networking Protocols
Scaling the Network: The Internet Protocol
Internet Architecture
ECSE-4670: Computer Communication Networks (CCN)
An Engineering Approach to Computer Networking
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
LAN Addresses and ARP IP address: drives the packet to destination network LAN (or MAC or Physical) address: drives the packet to the destination node’s.
Computer Networks Protocols
Based on notes from D. Hollinger
Congestion Michael Freedman COS 461: Computer Networks
Internet Architecture
Presentation transcript:

COS 561: Advanced Computer Networks The Host Jennifer Rexford Fall 2017 (TTh 1:30-2:50pm in CS 105) COS 561: Advanced Computer Networks http://www.cs.princeton.edu/courses/archive/fall17/cos561/

Host-Network Division of Labor Best-effort packet delivery Between two (or more) end-point addresses Hosts Everything else host host network

The Role of the End Host Network discovery and bootstrapping How does the host join the network? How does the host get an address? Interface to networked applications What interface to higher-level applications? How does the host realize that abstraction? Distributed resource sharing What roles does the host play in network resource allocation decisions?

Network Discovery and Bootstrapping

Relationship Between Layers name link session address path

Three Kinds of Identifiers Host Name IP Address MAC Address Example www.cs.princeton.edu 128.112.7.156 00-15-C5-49-04-A9 Size Hierarchical, human readable, variable length Hierarchical, machine readable, 32 bits (in IPv4) Flat, machine readable, 48 bits Read by Humans, hosts IP routers Switches in LAN Allocation, top-level Domain, assigned by registrar (e.g., for .edu) Variable-length prefixes, assigned by ICANN, RIR, or ISP Fixed-sized blocks, assigned by IEEE to vendors (e.g., Dell) Allocation, low-level Host name, local administrator Interface, by DHCP or an administrator Interface, by vendor whois –h whois.arin.net 128.112.155.165 http://standards.ieee.org/regauth/oui/oui.txt Why both MAC and IP: Need identifier to use in bootstrap process IP address is topology-dependent, so cannot keep when host moves - LAN was meant to handle many different network protocols (not just IP)

Learning a Host’s Address me you adapter adapter Who am I? Hard-wired: MAC address Static configuration: IP interface configuration Dynamically learned: IP address configured by DHCP Who are you? Hard-wired: IP address in a URL, or in the code Dynamically looked up: ARP or DNS

Mapping Between Identifiers Dynamic Host Configuration Protocol (DHCP) Given a MAC address, assign a unique IP address … and tell host other stuff about the Local Area Network To automate the boot-strapping process Address Resolution Protocol (ARP) Given an IP address, provide the MAC address To enable communication within the Local Area Network Domain Name System (DNS) Given a host name, provide the IP address Given an IP address, provide the host name

Dynamic Host Configuration Protocol DHCP discover (broadcast) arriving client DHCP server DHCP offer Host learns IP address, Subnet mask, Gateway address, DNS server(s), and a lease time. DHCP request (broadcast) DHCP ACK

Address Resolution Protocol (ARP) Every host 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 the IP address is not in the table? Sender broadcasts: “Who has IP address 1.2.3.156?” Receiver responds: “MAC address 58-23-D7-FA-20-B0” Sender caches the result in its ARP table

authoritative DNS server Domain Name System root DNS server Host at cis.poly.edu wants IP address for gaia.cs.umass.edu 2 3 TLD DNS server 4 local DNS server dns.poly.edu 5 7 6 1 8 authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu Recursive query: #1 Iterative queries: #2, 4, 6 gaia.cs.umass.edu

Questions Should addresses correspond to the interface (point of attachment) or to the host? Why do we have all three identifiers? Do we need all three? What should be done to prevent spoofing of addresses?

Interface to Applications

Socket Abstraction socket socket Best-effort packet delivery is a clumsy abstraction Applications typically want higher-level abstractions Messages, uncorrupted data, reliable in-order delivery Applications communicate using “sockets” Stream socket: reliable stream of bytes (like a file) Message socket: unreliable message delivery User process User process socket socket Operating System Operating System

Two Basic Transport Features Demultiplexing: port numbers Error detection: checksums Server host 128.2.194.242 Service request for 128.2.194.242:80 (i.e., the Web server) Client host Web server (port 80) Client OS Echo server (port 7) IP payload detect corruption

Two Main Transport Layers User Datagram Protocol (UDP) Just provides demultiplexing and error detection Header fields: port numbers, checksum, and length Low overhead, good for query/response and multimedia Transmission Control Protocol (TCP) Adds support for a “stream of bytes” abstraction Retransmitting lost or corrupted data Putting out-of-order data back in order Preventing overflow of the receiver buffer Adapting the sending rate to alleviate congestion Higher overhead, good for most stateful applications

Questions Is a socket between two IP addresses the right abstraction? Mobile hosts? Replicated services? What does the network know about the traffic? Inferring the application from the port numbers? Is end-to-end error detection and correction the right model? High loss environments? Expense of retransmitting over the entire path?

Distributed Resource Sharing

Resource Allocation Challenges Best-effort network easily becomes overloaded No mechanism to “block” excess calls Instead excess packets are simply dropped Examples Shared Ethernet medium: frame collisions Ethernet switches and IP routers: full packet buffers Quickly leads to congestion collapse “congestion collapse” Goodput Increase in load that results in a decrease in useful work done. Load

End Hosts Adjusting to Congestion End hosts adapt their sending rates In response to network conditions Learning that the network is congested Shared Ethernet: carrier sense multiple access Seeing your own frame collide with others IP network: observing your end-to-end performance Packet delay or loss over the end-to-end path Adapting to congestion Slowing down the sending rate, for the greater good But, host doesn’t know how bad things might be…

Ethernet Back-off Mechanism Carrier sense: wait for link to be idle If idle, start sending; if not, wait until idle Collision detection: listen while transmitting If collision: abort transmission, and send jam signal Exponential back-off: wait before retransmitting Wait random time, exponentially larger on each retry

TCP Congestion Control Additive increase, multiplicative decrease On packet loss, divide congestion window in half On success for last window, increase window linearly Window Loss halved t Other mechanisms: slow start, fast retransmit vs. timeout loss, etc.

Questions What role should the network play in resource allocation? Explicit feedback to the end hosts? Enforcing an explicit rate allocation? What is a good definition of fairness? What about hosts who cheat to hog resources? How to detect cheating? How to prevent/punish? What about wireless networks? Difficulty of detecting collisions Loss caused by interference, not just congestion

“A Protocol for Packet Network Intercommunication” (IEEE Trans “A Protocol for Packet Network Intercommunication” (IEEE Trans. on Communications, May 1974) Vint Cerf and Bob Kahn Written when Vint Cerf was an assistant professor at Stanford, and Bob Kahn was working at ARPA.

Life in the 1970s… Multiple unconnected networks Heterogeneous designs ARPAnet, data-over-cable, packet satellite (Aloha), packet radio, … Heterogeneous designs Addressing, max packet size, handling of lost/corrupted data, fault detection, routing, … ARPAnet satellite net

Handling Heterogeneity Where to handle heterogeneity? Application process? End hosts? Packet switches? Compatible process and host conventions Obviate the need to support all combinations Retain the unique features of each network Avoid changing the local network components Introduce the notion of a gateway

Internetwork Layer and Gateways Internetwork appears as a single, uniform entity Despite the heterogeneity of the local networks Network of networks “Embed internetwork packets in local packet format or extract them” Route (at internetwork level) to next gateway gateway ARPAnet satellite net

Internetwork Packet Format internetwork header local header source address dest. seq. # byte count flag field text checksum Internetwork header in standard format Interpreted by the gateways and end hosts Source and destination addresses Uniformly and uniquely identify every host Ensure proper sequencing of the data Include a sequence number and byte count Enable detection of corrupted text Checksum for an end-to-end check on the text

Process-Level Communication Enable pairs of processes to communicate Full duplex Unbounded but finite-length messages E.g., keystrokes or a file Key ideas Port numbers to (de)multiplex packets Breaking messages into segments Sequence numbers and reassembly Retransmission and duplicate detection Window-based flow control

Discussion What did they get right? What did they miss? Which ideas were key to the Internet’s success? Which decisions still seem right today? What did they miss? Which ideas had to be added later? Which decisions seem wrong in hindsight? What would you do in a clean-slate design? If your goal wasn’t to support communication between disparate packet-switched networks Would you do anything differently?

J. Saltzer, D. Reed, and D. Clark “End-to-End Arguments in System Design” (ACM Trans. on Computer Systems, November 1984) J. Saltzer, D. Reed, and D. Clark

End-to-End Argument Operations should occur only at the end points … unless needed for performance optimization 2 4 3 1 5 Many things can go wrong: disk errors, software errors, hardware errors, communication errors, …

Trade-Offs Put functionality at each hop All applications pay the price End systems still need to check for errors Place functionality only at the ends Slower error detection End-to-end retransmission wastes bandwidth Compromise solution? Reliable end-to-end transport protocol (TCP) Plus file checksums to detect file-system errors

Discussion When should the network support a function anyway? E.g., link-layer retransmission in wireless networks? Who’s interests are served by the e2e argument? How does a network operator influence the network without violating the e2e argument? Does the design of IP and TCP make it hard to violate the e2e argument? E.g., middlebox functionality like NATs, firewalls, proxies Should the e2e argument apply to routing?