Lecture Overview : Computer Networking. Applications and Application-Layer Protocols. Client-Server Paradigm

Similar documents
Lecture Overview. Lecture 3 Design Philosophy & Applications. Internet Architecture. Priorities

Page # Lecture Overview. Lecture 3 Design Philosophy & Applications. Internet Architecture. Priorities. Survivability.

Outline Computer Networking. HTTP Basics (Review) How to Mark End of Message? (Review)

Review of Previous Lecture

CMSC 332 Computer Networking Web and FTP

HTTP Reading: Section and COS 461: Computer Networks Spring 2013

Networking. Layered Model. DoD Model. Application Layer. ISO/OSI Model

Layered Model. DoD Model. ISO/OSI Model

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

CS 640: Introduction to Computer Networks. Today s Lecture. Page 1

Overview Content Delivery Computer Networking Lecture 15: The Web Peter Steenkiste. Fall 2016

Applications & Application-Layer Protocols: The Web & HTTP

Chapter 2: Application Layer. Chapter 2 Application Layer. Some network apps. Application architectures. Chapter 2: Application layer

Computer Networks. Wenzhong Li. Nanjing University

Web, HTTP and Web Caching

HyperText Transfer Protocol

Foundations of Telematics

Chapter 2 Application Layer

1-1. Switching Networks (Fall 2010) EE 586 Communication and. September Lecture 10

Application Layer: HTTP

CSC358 Week 2. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

EECS 3214: Computer Network Protocols and Applications

Lecture 04: Application Layer (Part 01) Principles and the World Wide Web (HTTP) Dr. Anis Koubaa

Chapter 2 Application Layer

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

CSC 4900 Computer Networks:

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

Chapter 2 Application Layer

WWW: the http protocol

Module 2 Overview of Computer Networks

Module 2 Overview of. Computer Networks

DATA COMMUNICATOIN NETWORKING

Distributed Systems /640

Last Time Distributed Systems. Goal 1: Survivability. Goals [Clark88] Fate Sharing. Today s Lecture

HTTP and Web Content Delivery

Lecture 11. Transport Layer (cont d) Transport Layer 1

SCS3004 Networking Technologies Application Layer Protocols

CS 43: Computer Networks. HTTP September 10, 2018

Chapter 2 Application Layer. Lecture 4: principles of network applications. Computer Networking: A Top Down Approach

Lecture 6 Application Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

CSC 4900 Computer Networks: End-to-End Design

CMSC 322 Computer Networks Applications and End-To- End

CSC 401 Data and Computer Communications Networks

Last Time. Internet in a Day Day 2 of 1. Today: TCP and Apps

Different Layers Lecture 21

CSCE 463/612 Networks and Distributed Processing Spring 2018

Application Level Protocols

Design Considerations : Computer Networking. Outline

Application Protocols and HTTP

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng.

Chapter 2. Application Layer. Chapter 2: Application Layer. Application layer - Overview. Some network apps. Creating a network appication

Lecture 7b: HTTP. Feb. 24, Internet and Intranet Protocols and Applications

Internet and Intranet Protocols and Applications

Computer Networks. HTTP and more. Jianping Pan Spring /20/17 CSC361 1

Application Layer. Applications and application-layer protocols. Goals:

Lecture 2 Communication services The Trasport Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

CE693: Adv. Computer Networking

416 Distributed Systems. Networks review; Day 2 of 2 Fate sharing, e2e principle And start of RPC Jan 10, 2018

Chapter 2 Application Layer

WEB TECHNOLOGIES CHAPTER 1

Network Applications Principles of Network Applications

Lecture 7 Application Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

CS 43: Computer Networks. Layering & HTTP September 7, 2018

Introduction to the Application Layer. Computer Networks Term B14

Part 1: Introduction. Goal: Review of how the Internet works Overview

World-Wide Web Protocols CS 571 Fall Kenneth L. Calvert All rights reserved

CSE 333 Lecture HTTP

CSCI-1680 WWW Rodrigo Fonseca

Internet Architecture & Performance. What s the Internet: nuts and bolts view

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

Computer Network Midterm Explain Internet protocol stack (1% each layer s name, 1% each layer s functions, 10% total)

Goal and A sample Network App

Review for Internet Introduction

CCNA 1 Chapter 7 v5.0 Exam Answers 2013

Internet Content Distribution

The Application Layer HTTP and FTP

CS 3516: Advanced Computer Networks

Page # Last Time. Lecture 2 Protocol Stacks and Layering. Today s Lecture. Why protocols and layering? What is a Protocol.

Data Networks. Lecture 1: Introduction. September 4, 2008

Internet Technology 3/2/2016

Page 1. Review: Internet Protocol Stack. Transport Layer Services EEC173B/ECS152C. Review: TCP. Transport Layer: Connectionless Service

Chapter 2: Application layer

The Application Layer: SMTP, FTP

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1

Lecture 2 Protocol Stacks. Last Tuesday

416 Distributed Systems. Networks review; Day 1 of 2 Jan 5 + 8, 2018

CS4/MSc Computer Networking. Lecture 3: The Application Layer

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4

CSCI-1680 WWW Rodrigo Fonseca

1. What is a Computer Network? interconnected collection of autonomous computers connected by a communication technology

Application Layer. Pure P2P architecture. Client-server architecture. Processes communicating. Hybrid of client-server and P2P. Creating a network app

PLEASE READ CAREFULLY BEFORE YOU START

Computer Communication Networks Midterm Review

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

CS 428/528 Computer Networks Lecture 01. Yan Wang

Client/Server Computing

13. Internet Applications 최양희서울대학교컴퓨터공학부

Application. Transport. Network. Link. Physical

PLEASE READ CAREFULLY BEFORE YOU START

Computer Communication Networks

Transcription:

Lecture Overview 15-441: Computer Networking Last time: Protocol stacks and layering OSI and TCP/IP models Application requirements Lecture 3: Design Philosophy & Applications Application examples ftp http Internet Architecture & Performance intro Copyright CMU, 2007-2010. 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-layer protocols One piece of an app Define messages exchanged by apps and actions taken User services provided by lower layer protocols application transport network data link physical application transport network data link physical application transport network data link physical Client-Server Paradigm Typical network app has two pieces: client and server Client: application Initiates contact with server transport network ( speaks first ) data link physical Typically requests service from request server, For Web, client is implemented in browser; for e-mail, in mail reader reply Server: Provides requested service to transport network client data link physical e.g., Web server sends requested Web page, mail server delivers e-mail 3 S 10 Lecture 3: Applications 4 application Page 1

Server and Client Network Addressing Analogy Server and Client exchange messages over the network through a common Socket API Telephone Call Professors at CMU Network Programming Applications/Servers Server ports Clients user space 412-268-8000 ext.123 Extension 412-268-8000 ext.654 Web Port 80 Port No. Mail Port 25 TCP/UDP IP Socket API TCP/UDP IP kernel space Telephone No Central Number Exchange Area Code IP Address Network No. Host Number Ethernet Adapter Ethernet Adapter hardware 15-441 Students Clients 5 S 10 Lecture 3: Applications 6 What Service Does an Application Need? Data loss Some apps (e.g., audio) can tolerate some loss Other apps (e.g., file transfer, telnet) require 100% reliable data transfer Timing 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 Transport Service Requirements of Common Apps Application Data loss Bandwidth Time Sensitive file transfer e-mail web documents real-time audio/ video stored audio/video interactive games financial apps no loss no loss no loss loss-tolerant loss-tolerant loss-tolerant no loss elastic elastic elastic audio: 5Kb-1Mb video:10kb-5mb same as above few Kbps elastic no no no yes, 100 s msec yes, few secs yes, 100 s msec yes and no 7 S 10 Lecture 3: Applications 8 Page 2

Other Requirements User Datagram Protocol(UDP): An Analogy 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, UDP Single socket to receive messages No guarantee of delivery Not necessarily in-order delivery Datagram independent packets Must address each packet Postal Mail Single mailbox to receive messages letters Unreliable Not necessarily in-order delivery Each Letters letter sent is independently Must address each reply Example UDP applications Multimedia, voice over IP 9 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 S 10 Example TCP applications Web, Email, Telnet Telephone Call Guaranteed delivery In-order delivery Connection-oriented Setup connection followed by conversation Lecture 3: Applications 11 FTP: The File Transfer Protocol user at host FTP user interface FTP client local file system file transfer FTP server 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 remote file system 12 Page 3

Ftp: Separate Control, Data Connections Ftp Commands, Responses 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. out of band control Data: file data to/from server Ftp server maintains state : current directory, earlier authentication FTP client TCP control connection port 21 TCP data connection port 20 FTP server Sample Commands: sent as ASCII text over control channel USER username PASS password LIST return list of files in current directory RETR filename retrieves (gets) file STOR filename stores (puts) file onto remote host Sample Return Codes 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 13 14 HTTP Basics How to Mark End of Message? 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 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 15 16 Page 4

HTTP Request 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 17 18 HTTP Request HTTP Request Example 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 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 19 20 Page 5

HTTP Response 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 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 21 22 HTTP Response Example Cookies: Keeping state 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.. 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 Example: Susan accesses Internet always from same PC She visits a specific e- commerce 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 23 24 Page 6

Cookies: Keeping State Cookie file ebay: 8734 Cookie file amazon: 1678 ebay: 8734 one week later: Cookie file amazon: 1678 ebay: 8734 client usual http request msg usual http response + Set-cookie: 1678 usual http request msg cookie: 1678 usual http response msg usual http request msg cookie: 1678 usual http response msg Amazon server server creates ID 1678 for user cookiespecific action cookiespecific action entry in backend database access access 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) = ak a x -(a+1) 25 26 HTTP 1.1 - new features Packet Delay 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 Store & Forward Cut-through Prop + xmit 2*(Prop + xmit) 2*prop + xmit 27 When does cut-through matter? Next: Routers have finite speed (processing delay) Routers may buffer packets (queueing delay) 28 Page 7

Packet Delay A Word about Units 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 29 A 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 S 10 To avoid confusion, Lecture use 3: Applications 1 Kbit/second 30 Application-level Delay Some Examples How long does it take to send a 100 Kbit file? Assume a perfect world And a 10 Kbit file Delay of one packet Average sustained throughput Size Delay * + Throughput Units: seconds + bits/(bits/seconds) Throughput Latency 500 µsec 10 msec 100 msec 100 Kbit/s 1 Mbit/s 1.0005 0.1005 0.0105 0.1005 1.01 0.11 0.02 0.11 0.2 1.1 0.11 0.2 100 Mbit/s 0.0006 0.0015 0.0101 0.011 0.1001 0.101 * For minimum sized packet 31 32 Page 8

Some Examples Some Examples How long does it take to send a 100 Kbit file? Assume a perfect world And a 10 Kbit file 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 Throughput Latency 100 Kbit/s 1 Mbit/s 100 Mbit/s 500 µsec 1.0005 0.1005 0.0015 500 µsec 1.0005 0.1005 0.1005 0.0105 0.0015 0.0006 10 msec 1.01 0.11 0.011 10 msec 1.01 0.11 0.02 0.11 0.0101 0.011 100 msec 1.1 0.2 0.101 100 msec 1.1 0.2 0.11 0.2 0.1001 0.101 33 34 Sustained Throughput One more detail: TCP When streaming packets, the network works like a pipeline. All links forward different packets in parallel Throughput is determined by the slowest stage. Called the bottleneck link Does not really matter why the link is slow. Low link bandwidth Many users sharing the link bandwidth TCP connections need to be set up Three Way Handshake : Client Server SYN (Synchronize) SYN/ (Synchronize + Acknowledgement) 50 37 30 104 59 17 267 35 Data 2: TCP transfers start slowly and then ramp up the bandwidth used (so they don t use too much) 36 Page 9

HTTP 0.9/1.0 Single Transfer Example 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 Client opens TCP connection Client sends HTTP request for HTML Client parses HTML Client opens TCP connection 0 RTT 1 RTT 2 RTT Client SYN FIN Server SYN FIN SYN Server reads from disk Client sends HTTP request for image Image begins to arrive 3 RTT 4 RTT SYN Server reads from disk 37 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? 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 40 Page 10

Persistent Connection Solution 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 Client sends HTTP request for HTML 0 RTT 1 RTT Client parses HTML Client sends HTTP request for image Image begins to arrive 2 RTT Client Server Server reads from disk Server reads from disk 41 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 44 Page 11

Bandwidth Sharing Fair Sharing of Bandwidth Bandwidth received on the bottleneck link determines end-to-end throughput. Router before the bottleneck 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. 100 BW Time 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. Users who pay more get more bandwidth Users with a higher rank get more bandwidth Certain classes of applications get priority 100 BW Time 45 46 But It is Not that Simple Today Bottleneck Application layer Each application needs different services e.g., data loss? Elastic? Timing? FTP HTTP Interaction with TCP: Persistant? Pipelining? Delay/Throughput 47 48 Page 12

Goals [Clark88] Other IP Design Weaknesses 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 Weak administration and management tools Incremental deployment difficult at times Result of no centralized control No more flag days 49 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 New Principles? Design for variation in outcome Allow design to be flexible to different uses/results Isolate tussles QoS designs uses separate ToS bits instead of overloading other parts of packet like port number Separate QoS decisions from application/protocol design Provide choice allow all parties to make choices on interactions Creates competition Fear between providers helps shape the tussle 51 52 Page 13

Summary: Internet Architecture Packet-switched datagram network IP is the compatibility layer Hourglass architecture All hosts and routers run IP Stateless architecture no per flow state inside network TCP UDP IP Satellite Ethernet ATM 53 Page 14