CompSci514/ECE558: Computer Networks Lecture 1: Course Introduction Xiaowei Yang xwy@cs.duke.edu http://www.cs.duke.edu/~xwy
Overview • History of the Internet • What does the Internet look like? • The historic design of the Internet • Next – Design philosophy – End-to-end argument
The History of the Internet Introductory material. An overview lecture that covers Internet related topics, including a definition of the Internet, an overview of its history and growth, and standardization and naming.
Internet History 1961-1972: Early packet-switching principles • 1972: • 1961: Leonard Kleinrock - queueing theory shows – ARPAnet demonstrated effectiveness of packet- publicly switching – NCP (Network Control • 1964: Paul Baran - packet- Protocol) first host-host switching in military nets protocol • No TCP/IP yet • 1967: ARPAnet conceived by Advanced Research Projects – first e-mail program Agency – ARPAnet has 15 nodes • 1969: first ARPAnet node operational
https://www2.cs.duke.edu/courses/fall18/compsci514/slides/IMG_1342.MOV
Internet in 1971
Internet History 1972-1980: Internetworking, new and proprietary nets Cerf and Kahn’s internetworking • 1970: ALOHAnet satellite principles: network in Hawaii • 1973: Metcalfe � s PhD thesis – minimalism, autonomy - no proposes Ethernet internal changes required to • 1974: Cerf and Kahn - interconnect networks architecture for interconnecting – best effort service model networks (Turing award work) – stateless routers • late70 � s: proprietary architectures: DECnet, SNA, – decentralized control XNA define today � s Internet architecture • late 70 � s: switching fixed length packets (ATM precursor) • 1979: ARPAnet has 200 nodes
Internet History 1990, 2000 � s: commercialization, the Web, new apps Late 1990 � s – 2000 � s: • Early 1990 � s: ARPAnet • more killer apps: instant decommissioned messaging, P2P file sharing • 1991: NSF lifts restrictions on commercial use of NSFnet • network security to forefront (decommissioned, 1995) • est. 50 million host, 100 • early 1990s: Web million+ users – hypertext [Bush 1945, • backbone links running at Nelson 1960 � s] Gbps – HTML, HTTP: Berners-Lee – 1994: Mosaic, later Netscape – late 1990 � s: 2000-now: commercialization of the • Cloud computing Web • Mobile computing • Social applications Future: …
Design of the Internet • Review of what the current Internet looks like • Historic design – The original TCP/IP design paper (optional reading) • A protocol for packet network intercommunication by Cerf and Karn, 1974 • An excellent case study • Design Philosophy
What � s the Internet? • The Internet is a large-scale general-purpose computer network. – Run more than one applications • The Internet transfers information between computers. • The Internet is a network of networks . 12
What the Internet looks like Ethernet, CSMA/CD Host Host Bandwidth x Delay Bridges, Switches, email WWW phone... Host Host Wireless TCP Performance Host Spanning Tree SMTP HTTP RTP... Ethernet Host Ethernet Framerelay Host TCP UDP… Host IP Blocks, CIDR, Subnets IP/SONET IP ATM Host Longest Prefix Match, Fragmentation, MTU ethernet PPP… 802.X Host Host Host Ethernet Host CSMA async sonet... Host Host RIP, OSFP copper fiber radio... Distance Vector Modulation Link-State Coding Tier 3 FDMA, TDMA Tier 2 BGP Tier 2 The Internet Tier 1 Tier 1 13 Tier 2
A layered architecture • Many sub-tasks need to be accomplished – Find a path to the destination, reliably transfer information • The complexity of the communication task is reduced by using multiple protocol layers: • Each protocol is implemented independently • Each protocol is responsible for a specific subtask • Protocols are grouped in a hierarchy • The old divide-and-conquer principle! 14
The Internet Protocol Suite • The Internet architecture has Application User-level programs four layers: Application, Transport, Network, and Data Transport Link Layer Operating system Network • Sending or receiving a packet Data Link from end systems (hosts) may involve actions of all four layers. Packet forwarding by (Routers) only involve the bottom two layers. Data Link Sublayer in Local Area Media Access Networks Control (MAC) 15
Functions of the Layers • Data Link Layer: – Service: Reliable transfer of frames over a link Media Access Control on a LAN – Functions: Framing, media access control, error checking • Network Layer: – Service: Move packets from source host to destination host – Functions: Routing, addressing • Transport Layer: – Service: Delivery of data between hosts – Functions: Connection establishment/termination, error control, flow control • Application Layer: – Service: Application specific (delivery of email, retrieval of HTML documents, reliable transfer of file) – Functions: Application specific 16
TCP/IP Suite and OSI Reference Model Application The TCP/IP protocol stack does not Layer define the lower layers of a complete Application Presentation Layer protocol stack Layer Session Layer Transport Transport Layer Layer Network Network Layer Layer (Data) Link (Data) Link Layer Layer Physical Layer OSI TCP/IP Suite Reference 17 Model
Assignment of Protocols to Layers ping Application HTTP Telnet FTP DNS SNMP application Layer Transport TCP UDP Layer Routing Protocols ICMP RIP Network IP PIM IGMP Layer OSPF DHCP Data Link ARP Ethernet Layer 18 Network Interface
An Example 19
A simple TCP/IP Example argon.tcpip-lab.edu neon.tcpip-lab.edu ("Argon") ("Neon") Web request Web page Web client Web server • A user on host argon.tcpip-lab.edu ( � Argon � ) makes web access to URL http://neon. tcpip-lab.edu/index.html. • What actually happens in the network? 20
HTTP Request and HTTP response Argon Neon HTTP request HTTP client HTTP server HTTP response • Web server runs an HTTP server program • HTTP client Web browser runs an HTTP client program • sends an HTTP request to HTTP server • HTTP server responds with HTTP response 21
HTTP Request GET /example.html HTTP/1.1 Accept: image/gif, */* Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 Host: 192.168.123.144 Connection: Keep-Alive 22
HTTP Response HTTP/1.1 200 OK Date: Sat, 25 May 2002 21:10:32 GMT Server: Apache/1.3.19 (Unix) Last-Modified: Sat, 25 May 2002 20:51:33 GMT ETag: "56497-51-3ceff955" Accept-Ranges: bytes Content-Length: 81 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html <HTML> <BODY> <H1>Internet Lab</H1> Click <a href="http://www.tcpip-lab.net/index.html">here</a> for the Internet Lab webpage. </BODY> </HTML> • How does the HTTP request get from Argon to Neon ? 23
From HTTP to TCP Argon Neon HTTP request / HTTP response HTTP client HTTP server TCP client TCP connection TCP server • To send request, HTTP client program establishes an TCP connection to the HTTP server Neon. • The HTTP server at Neon has a TCP server running 24
Resolving hostnames and port numbers • Since TCP does not work with hostnames and also would not know how to find the HTTP server program at Neon, two things must happen: 1. The name � neon.tcpip-lab.edu � must be translated into a 32-bit IP address. 2. The HTTP server at Neon must be identified by a 16-bit port number . 25
Translating a hostname into an IP address neon.tcpip-lab.edu HTTP client DNS Server 128.143.71.21 argon.tcpip-lab.edu 128.143.136.15 • The translation of the hostname neon.tcpip-lab.edu into an IP address is done via a database lookup – gethostbyname(host) • The distributed database used is called the Domain Name System (DNS) • All machines on the Internet have an IP address: argon.tcpip-lab.edu 128.143.137.144 neon.tcpip-lab.edu 128.143.71.21 26
Finding the port number • Note: Most services on the Internet are reachable via well-known ports. E.g. All HTTP servers on the Internet can be reached at port number � 80 � . • So: Argon simply knows the port number of the HTTP server at a remote machine. • On most Unix systems, the well-known ports are listed in a file with name /etc/services. The well-known port numbers of some of the most popular services are: ftp 21 finger 79 telnet 23 http 80 smtp 25 nntp 119 27
Requesting a TCP Connection argon.tcpip-lab.edu connect(s, (struct sockaddr*)&sin, sizeof(sin)) HTTP client Establish a TCP connection to port 80 of 128.143.71.21 TCP client • The HTTP client at argon.tcpip-lab.edu requests the TCP client to establish a connection to port 80 of the machine with address 128.141.71.21 28
Invoking the IP Protocol argon.tcpip-lab.edu TCP client Send an IP datagram to 128.143.71.21 IP • The TCP client at Argon sends a request to establish a connection to port 80 at Neon • This is done by asking its local IP module to send an IP datagram to 128.143.71.21 • (The data portion of the IP datagram contains the request to open a connection) 29
Recommend
More recommend