15-441: Computer Networking Lecture 3: Design Philosophy & Applications Copyright © CMU, 2007-2010. Lecture Overview • Last time: • Protocol stacks and layering • OSI and TCP/IP models • Application requirements • Application examples • ftp • http • Internet Architecture & Performance intro S’ 10 Lecture 3: Applications 2 Applications and Application-Layer Protocols • Application: communicating, distributed processes • Running in network hosts in “user space” • Exchange messages to implement app • e.g., email, file transfer, the Web application transport network data link physical • Application-layer protocols • One “piece” of an app • Define messages exchanged by apps and actions taken • User services provided by lower layer protocols S’ 10 application transport network data link physical Lecture 3: Applications application transport network data link physical 3 Client-Server Paradigm Typical network app has two pieces: client and server Client: • Initiates contact with server (“speaks first”) • Typically requests service from server, • For Web, client is implemented in browser; for e-mail, in mail reader application transport network data link physical request Server: • Provides requested service to client • e.g., Web server sends requested Web page, mail server delivers e-mail S’ 10 Lecture 3: Applications reply application transport network data link physical 4 Server and Client Server and Client exchange messages over the network through a common Socket API Clients Server TCP/UDP user space ports TCP/UDP Socket API IP IP Ethernet Adapter Ethernet Adapter S’ 10 Lecture 3: Applications kernel space hardware 5 Network Addressing Analogy Telephone Call Network Programming Professors at CMU 412-268-8000 ext.123 S’ 10 Applications/Servers 412-268-8000 ext.654 Web Port 80 Mail Port 25 Extension Port No. Telephone No Central Number Exchange Area Code IP Address Network No. Host Number 15-441 Students Clients Lecture 3: Applications 6 What Service Does an Application Need? Data loss Timing • Some apps (e.g., audio) can tolerate some loss • Other apps (e.g., file transfer, telnet) require 100% reliable data transfer • Some apps (e.g., Internet telephony, interactive games) require low delay to be “effective” Bandwidth • Some apps (e.g., multimedia) require minimum amount of bandwidth to be “effective” • Other apps (“elastic apps”) make use of whatever bandwidth they get S’ 10 Lecture 3: Applications 7 Transport Service Requirements of Common Apps Application file transfer e-mail web documents real-time audio/ video stored audio/video interactive games financial apps S’ 10 Data loss Bandwidth Time Sensitive no loss no loss no loss loss-tolerant elastic elastic elastic audio: 5Kb-1Mb video:10Kb-5Mb same as above few Kbps elastic no no no yes, 100’s msec loss-tolerant loss-tolerant no loss Lecture 3: Applications yes, few secs yes, 100’s msec yes and no 8 Other Requirements • Network reliability • Network service must always be available • Security: privacy, denial of service, authentication, … • Scalability. • Scale to large numbers of users, traffic flows, … • Manageability: monitoring, control, … S’ 10 Lecture 3: Applications 9 User Datagram Protocol(UDP): An Analogy • • • • • UDP Single socket to receive messages No guarantee of delivery Not necessarily in-order delivery Datagram – independent packets Must address each packet Postal Mail Postal Mail • Single mailbox to receive letters messages • Unreliable • Not necessarily in-order delivery • Letters sentisindependently Each letter independent • Must address each reply Example UDP applications Multimedia, voice over IP S’ 10 Lecture 3: Applications 10 Transmission Control Protocol (TCP): An Analogy TCP • Reliable – guarantee delivery • Byte stream – in-order delivery • Connection-oriented – single socket per connection • Setup connection followed by data transfer • • • • Telephone Call Guaranteed delivery In-order delivery Connection-oriented Setup connection followed by conversation Example TCP applications Web, Email, Telnet S’ 10 Lecture 3: Applications 11 FTP: The File Transfer Protocol FTP user interface user at host FTP client file transfer FTP server local file system remote file system • Transfer file to/from remote host • Client/server model • Client: side that initiates transfer (either to/from remote) • Server: remote host • ftp: RFC 959 • ftp server: port 21 S’ 10 Lecture 3: Applications 12 Ftp: Separate Control, Data Connections • Ftp client contacts ftp server at port 21, specifying TCP as transport protocol • Two parallel TCP connections opened: • Control: exchange commands, responses between client, server. FTP client “out of band control” • TCP control connection port 21 Data: file data to/from server TCP data connection port 20 FTP server • Ftp server maintains “state”: current directory, earlier authentication S’ 10 Lecture 3: Applications 13 Ftp Commands, Responses Sample Commands: Sample Return Codes • sent as ASCII text over control channel • USER username • PASS password • LIST return list of files in current directory • RETR filename retrieves (gets) file • status code and phrase • 331 Username OK, password required • 125 data connection already open; transfer starting • 425 Can’t open data connection • 452 Error writing file • STOR filename stores (puts) file onto remote host S’ 10 Lecture 3: Applications 14 HTTP Basics • HTTP layered over bidirectional byte stream • Almost always TCP • Interaction • Client sends request to server, followed by response from server to client • Requests/responses are encoded in text • Stateless • Server maintains no information about past client requests S’ 10 Lecture 3: Applications 15 How to Mark End of Message? • Size of message Content-Length • Must know size of transfer in advance • Delimiter MIME style Content-Type • Server must “escape” delimiter in content • Close connection • Only server can do this S’ 10 Lecture 3: Applications 16 HTTP Request S’ 10 Lecture 3: Applications 17 HTTP Request • Request line • Method • GET – return URI • HEAD – return headers only of GET response • POST – send data to the server (forms, etc.) • URI • E.g. http://www.intel-iris.net/index.html with a proxy • E.g. /index.html if no proxy • HTTP version S’ 10 Lecture 3: Applications 18 HTTP Request • Request headers • • • • • • Authorization – authentication info Acceptable document types/encodings From – user email If-Modified-Since Referrer – what caused this page to be requested User-Agent – client software • Blank-line • Body S’ 10 Lecture 3: Applications 19 HTTP Request Example GET / HTTP/1.1 Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Host: www.intel-iris.net Connection: Keep-Alive S’ 10 Lecture 3: Applications 20 HTTP Response • Status-line • • HTTP version 3 digit response code • 1XX – informational • 2XX – success • 200 OK • 3XX – redirection • • • 301 Moved Permanently 303 Moved Temporarily 304 Not Modified • 4XX – client error • 404 Not Found • 5XX – server error • • 505 HTTP Version Not Supported Reason phrase S’ 10 Lecture 3: Applications 21 HTTP Response • Headers • • • • • • • • • Location – for redirection Server – server software WWW-Authenticate – request for authentication Allow – list of methods supported (get, head, etc) Content-Encoding – E.g x-gzip Content-Length Content-Type Expires Last-Modified • Blank-line • Body S’ 10 Lecture 3: Applications 22 HTTP Response Example HTTP/1.1 200 OK Date: Tue, 27 Mar 2001 03:49:38 GMT Server: Apache/1.3.14 (Unix) (Red-Hat/Linux) mod_ssl/2.7.1 OpenSSL/0.9.5a DAV/1.0.2 PHP/4.0.1pl2 mod_perl/1.24 Last-Modified: Mon, 29 Jan 2001 17:54:18 GMT ETag: "7a11f-10ed-3a75ae4a" Accept-Ranges: bytes Content-Length: 4333 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html ….. S’ 10 Lecture 3: Applications 23 Cookies: Keeping “state” Many major Web sites use cookies Four components: 1) Cookie header line in the HTTP response message 2) Cookie header line in HTTP request message 3) Cookie file kept on user’s host and managed by user’s browser 4) Back-end database at Web site S’ 10 Example: • • • Susan accesses Internet always from same PC She visits a specific ecommerce site for the first time When initial HTTP requests arrives at site, site creates a unique ID and creates an entry in backend database for ID Lecture 3: Applications 24 Cookies: Keeping “State” client Cookie file Amazon server usual http request msg usual http response + ebay: 8734 Cookie file amazon: 1678 ebay: 8734 Set-cookie: 1678 usual http request msg cookie: 1678 usual http response msg server creates ID 1678 for user cookiespecific action one week later: Cookie file amazon: 1678 ebay: 8734 S’ 10 usual http request msg cookie: 1678 usual http response msg Lecture 3: Applications cookiespecific action 25 Typical Workload (Web Pages) • Multiple (typically small) objects per page • File sizes • Why different than request sizes? • Also heavy-tailed • Pareto distribution for tail • Lognormal for body of distribution • Embedded references • Number of embedded objects = pareto – p(x) = akax-(a+1) S’ 10 Lecture 3: Applications 26 HTTP 1.1 - new features • Newer versions of HTTP add several new features (persistent connections, pipelined transfers) to speed things up. • Let’s detour into some performance evaluation and then look at those features S’ 10 Lecture 3: Applications 27 Packet Delay • Sum of a number of different delay components. • Propagation delay on each link. • Proportional to the length of the link • Transmission delay on each link. • Proportional to the packet size and 1/link speed • Processing delay on each router. • Depends on the speed of the router • Queuing delay on each router. • Depends on the traffic load and queue size D B C B A A S’ 10 Lecture 3: Applications 29 A Word about Units • What do “Kilo” and “Mega” mean? • Depends on context • Storage works in powers of two. • 1 Byte = 8 bits • 1 KByte = 1024 Bytes • 1 MByte = 1024 Kbytes • Networks work in decimal units. • Network hardware sends bits, not Bytes • 1 Kbps = 1000 bits per second 1 Kbit/second S’•10To avoid confusion, Lectureuse 3: Applications 30 Application-level Delay Delay of one packet Delay* Average sustained throughput Size + Throughput Units: seconds + bits/(bits/seconds) * For minimum sized packet S’ 10 Lecture 3: Applications 31 Some Examples • How long does it take to send a 100 Kbit file? • • Assume a perfect world And a 10 Kbit file Throughput Latency 100 Kbit/s 1 Mbit/s 100 Mbit/s 500 msec 1.0005 0.1005 0.0105 0.1005 0.0006 0.0015 10 msec 1.01 0.11 0.02 0.11 0.0101 0.011 100 msec 0.2 1.1 0.11 0.2 0.1001 0.101 S’ 10 Lecture 3: Applications 32 Sustained Throughput • When streaming packets, the network works like a pipeline. • • Throughput is determined by the slowest stage. • • All links forward different packets in parallel Called the bottleneck link Does not really matter why the link is slow. • • Low link bandwidth Many users sharing the link bandwidth 50 S’ 10 37 30 104 59 Lecture 3: Applications 17 267 35 One more detail: TCP • TCP connections need to be set up • “Three Way Handshake”: Client Server SYN (Synchronize) SYN/ACK (Synchronize + Acknowledgement) ACK …Data… 2: TCP transfers start slowly and then ramp up the bandwidth used (so Lecture they3:don’t use too much) S’ 10 Applications 36 HTTP 0.9/1.0 • One request/response per TCP connection • Simple to implement • Disadvantages • Multiple connection setups three-way handshake each time • Several extra round trips added to transfer • Multiple slow starts S’ 10 Lecture 3: Applications 37 Single Transfer Example Client SYN 0 RTT Client opens TCP connection 1 RTT Client sends HTTP request for HTML SYN DAT ACK 2 RTT DAT FIN Server reads from disk FIN ACK 3 RTT Client sends HTTP request for image 4 RTT SYN SYN ACK DAT ACK S’ 10 ACK ACK Client parses HTML Client opens TCP connection Image begins to arrive Server Server reads from disk DAT Lecture 3: Applications 38 Performance Issues • Short transfers are hard on TCP • Stuck in slow start • Loss recovery is poor when windows are small • Lots of extra connections • Increases server state/processing • Servers also hang on to connection state after the connection is closed • Why must server keep these? • Tends to be an order of magnitude greater than # of active connections, why? S’ 10 Lecture 3: Applications 39 Netscape Solution • Mosaic (original popular Web browser) fetched one object at a time! • Netscape uses multiple concurrent connections to improve response time • Different parts of Web page arrive independently • Can grab more of the network bandwidth than other users • Doesn’t necessarily improve response time • TCP loss recovery ends up being timeout dominated because windows are small S’ 10 Lecture 3: Applications 40 Persistent Connection Solution • Multiplex multiple transfers onto one TCP connection • How to identify requests/responses • Delimiter Server must examine response for delimiter string • Content-length and delimiter Must know size of transfer in advance • Block-based transmission send in multiple length delimited blocks • Store-and-forward wait for entire response and then use content-length • Solution use existing methods and close connection otherwise S’ 10 Lecture 3: Applications 41 Persistent Connection Solution Server Client 0 RTT Client sends HTTP request for HTML DAT ACK DAT 1 RTT Client parses HTML Client sends HTTP request for image Server reads from disk ACK DAT ACK DAT Server reads from disk 2 RTT Image begins to arrive S’ 10 Lecture 3: Applications 42 Remaining Problems • Serialized transmission • Much of the useful information in first few bytes • May be better to get the 1st 1/4 of all images than one complete image (e.g., progressive JPEG) • Can “packetize” transfer over TCP • Could use range requests • Application specific solution to transport protocol problems. :( • Solve the problem at the transport layer • Could fix TCP so it works well with multiple simultaneous connections S’ 10 • More difficult to deploy Lecture 3: Applications 43 Back to performance • We examined delay, • But what about throughput? • Important factors: • Link capacity • Other traffic S’ 10 Lecture 3: Applications 44 Bandwidth Sharing • Bandwidth received on the bottleneck link determines BW end-to-end throughput. • Router before the bottleneck 100 link decides how much bandwidth each user gets. • Users that try to send at a higher rate will see packet loss • User bandwidth can fluctuate quickly as flows are added or end, or as flows change their transmit rate. S’ 10 Lecture 3: Applications Time 45 Fair Sharing of Bandwidth • All else being equal, fair means that users get equal treatment. • Sounds fair • When things are not equal, we need a policy that determines who gets how much bandwidth. • • • S’ 10 BW 100 Users who pay more get more bandwidth Users with a higher “rank” get more bandwidth Certain classes of applications get priority Lecture 3: Applications Time 46 But It is Not that Simple Bottleneck S’ 10 Lecture 3: Applications 47 Today • Application layer • Each application needs different services e.g., data loss? Elastic? Timing? • FTP • HTTP • Interaction with TCP: Persistant? Pipelining? • Delay/Throughput S’ 10 Lecture 3: Applications 48 Goals [Clark88] 0 Connect existing networks initially ARPANET and ARPA packet radio network 1. Survivability ensure communication service even in the presence of network and router failures 2. Support multiple types of services 3. Must accommodate a variety of networks 4. Allow distributed management 5. Allow host attachment with a low level of effort 6. Be cost effective 7. Allow resource accountability S’ 10 Lecture 3: Applications 49 Other IP Design Weaknesses • Weak administration and management tools • Incremental deployment difficult at times • Result of no centralized control • No more “flag” days S’ 10 Lecture 3: Applications 50 Changes Over Time New Principles? • Developed in simpler times • Common goals, consistent vision • With success came multiple goals – examples: • ISPs must talk to provide connectivity but are fierce competitors • Privacy of users vs. government’s need to monitor • User’s desire to exchange files vs. copyright owners • Must deal with the tussle between concerns in design • Provide choice allow all parties to make choices on interactions • Creates competition • Fear between providers helps shape the tussle S’ 10 Lecture 3: Applications 51 Summary: Internet Architecture • Packet-switched datagram network • IP is the “compatibility layer” • Hourglass architecture • All hosts and routers run IP • Stateless architecture TCP UDP IP Satellite Ethernet ATM • no per flow state inside network S’ 10 Lecture 3: Applications 53