application layer we will learn about protocols by examining popular application-level protocols ...

32
Application Layer We will learn about protocols by examining popular application-level protocols HTTP FTP SMTP / POP3 / IMAP Focus on client-server model Web HTML applicat ion transpor t network data link physical applicat ion transpor t network data link physical applicat ion transpor t network data link physical 1-1 1-1 Lecture 4

Post on 19-Dec-2015

235 views

Category:

Documents


1 download

TRANSCRIPT

Application Layer We will learn about protocols by examining

popular application-level protocols HTTP FTP SMTP / POP3 / IMAP

Focus on client-server model Web HTML

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

1-11-1Lecture 4

Client-server architecture

server: always-on host permanent IP address

clients: communicate with server may be intermittently

connected may have dynamic IP

addresses do not communicate

directly with each other

client/server

1-21-2Lecture 4

Web and HTTPFirst some jargon What is WWW? Web page consists of objects Objects can be HTML file, JPEG image,

JavaScript, video file,… Web page consists of base HTML-file which

includes several referenced objects Each object is addressable by a URL Example URL:

www.someschool.edu/someDept/pic.jpg

host name path name

1-31-3Lecture 4

HTTP overview

HTTP: hypertext transfer protocol Web’s application layer

protocol

Resources to be accessed by HTTP are identified using Uniform Resource Identifiers (URIs)—or, more specifically, Uniform Resource Locators (URLs)

PC runningExplorer

Server running

Apache Webserver

Mac runningNavigator

HTTP request

HTTP request

HTTP response

HTTP response

1-41-4Lecture 4

HTTP overview (continued)

HTTP requires guarantee: HTTP (app.) runs over TCP (transport) client initiates TCP connection (creates socket) to server,

port 80 server accepts TCP connection from client HTTP messages (application-layer protocol messages)

exchanged between browser (HTTP client) and Web server (HTTP server)

TCP connection closed

1-51-5Lecture 4

HTTP connections

Nonpersistent HTTP At most one object is

sent over a TCP connection.

Persistent HTTP Multiple objects can

be sent over single TCP connection between client and server.

1-61-6Lecture 4

Nonpersistent HTTPSuppose user enters URL www.someSchool.edu/someDepartment/home.index

1a. HTTP client initiates TCP connection to HTTP server (process) at www.someSchool.edu on port 80

2. HTTP client sends HTTP request message (containing URL) into TCP connection socket. Message indicates that client wants object someDepartment/home.index

1b. HTTP server at host www.someSchool.edu waiting for TCP connection at port 80. “accepts” connection, notifying client

3. HTTP server receives request message, forms response message containing requested object, and sends message into its socket

time

(contains text, references to 10

jpeg images)

1-71-7Lecture 4

Nonpersistent HTTP (cont.)

5. HTTP client receives response message containing html file, displays html. Parsing html file, finds 10 referenced jpeg objects

6. Steps 1-5 repeated for each of 10 jpeg objects

4. HTTP server closes TCP connection.

time

1-81-8Lecture 4

Non-Persistent HTTP: Response timeDefinition of RTT: time for a

small packet to travel from client to server and back.

Response time: one RTT to initiate TCP

connection one RTT for HTTP request

and first few bytes of HTTP response to return

file transmission timetotal = 2RTT+transmit time

time to transmit file

initiate TCPconnection

RTT

requestfile

RTT

filereceived

time time

1-91-9Lecture 4

Persistent HTTP

Nonpersistent HTTP issues: requires 2 RTTs per object OS overhead for each TCP

connection

Improved version: browsers often open

parallel TCP connections to fetch referenced objects

Persistent HTTP server leaves connection

open after sending response

subsequent HTTP messages between same client/server sent over open connection

client sends requests as soon as it encounters a referenced object

as little as one RTT for all the referenced objects

1-101-10Lecture 4

Numerical Example

1-111-11Lecture 4

How to speed up Internet access?

An example: average object size = 100,000 bits

avg. request rate from institution’s browsers to origin servers = 15/sec

Internet delay from institutional router to any origin server and back to router = 2 sec

Consequences utilization on LAN = 15% utilization on access link = 100% total delay = Internet delay +

access delay + LAN delay = 2 sec + seconds + milliseconds Huge delay

originservers

public Internet

institutionalnetwork 10 Mbps LAN

1.5 Mbps access link

1-121-12Lecture 4

How to speed up Internet access? (cont)possible upgrade increase bandwidth of

access link to, say, 10 Mbps

consequence utilization on LAN = 15% utilization on access link =

15% Total delay = Internet delay +

access delay + LAN delay = 2 sec + msecs + msecs

often a costly upgrade

originservers

public Internet

institutionalnetwork 10 Mbps LAN

10 Mbps access link

1-131-13Lecture 4

A better solution: Web Cache

Install web cache suppose hit rate is 0.4

consequence 40% requests will be

satisfied almost immediately

60% requests satisfied by origin server

utilization of access link reduced to 60%, resulting in negligible delays

originservers

public Internet

institutionalnetwork 10 Mbps LAN

1.5 Mbps access link

institutionalcache

1-141-14Lecture 4

Web caches (proxy server)

user sets browser: Web accesses via cache

browser sends all HTTP requests to cache object in cache: cache

returns object else cache requests

object from origin server, then returns object to client

Goal: satisfy client request without involving origin server

client

Proxyserver

client

HTTP request

HTTP response

HTTP request HTTP request

origin server

origin server

HTTP response HTTP response

1-151-15Lecture 4

More about Web caching

Why Web caching? reduce response time

for client request reduce traffic on an

institution’s access link.

Internet dense with caches: enables “poor” content providers to effectively deliver content

client

Proxyserver

client

HTTP request

HTTP response

HTTP request HTTP request

origin server

origin server

HTTP response HTTP response

1-161-16Lecture 4

HTTP overview (continued)

If HTTP is “stateless”, how does it remember our session information?

HTTP Cookies

1-171-17Lecture 4

HTTP is “stateless” server maintains no information about

past client requests

User-server state: cookies

Many major Web sites use cookies

1) cookie file kept on user’s host, managed by user’s browser

2) back-end database at Web site

Cookies are not cache!

Example: When initial HTTP

requests arrives at site, site creates: unique ID entry in backend

database for ID

1-181-18Lecture 4

Cookies: keeping “state” (cont.)

client server

usual http response msg

usual http response msg

cookie file

one week later:

usual http request msg

cookie: 1678cookie-specificaction

access

usual http request msg

Amazon servercreates ID

1678 for usercreate entry

usual http response Set-cookie: 1678

amazon 1678

usual http request msg

cookie: 1678cookie-spectificaction

accessamazon 1678

backenddatabase

1-191-19Lecture 4

Cookies (continued)

What cookies can bring:

Authorization Previous session

(e.g., shopping carts)

Cookies and privacy: cookies permit sites

to learn a lot about you!!!

Security???

aside

Remember HTTP is “stateless”

1-201-20Lecture 4

Category of cookies

First party cookies Same domain

Third party cookies Different domain than what is being shown Mostly used for tracking users browsing websites

(spyware)

Cookies are not malwares but they can violate privacy rules

1-211-21Lecture 4

Application layer

2.1 Web browsing and HTTP 2.2 File transferring and FTP (File Transfer

Protocol) 2.3 Email and SMTP

Lecture 4 22

FTP: the file transfer protocol

transfer file to/from remote host client/server model

client: side that initiates transfer (either to/from remote)

server: remote host

ftp server: port 21

file transfer FTPserver

FTPuser

interface

FTPclient

local filesystem

remote filesystem

user at host

Lecture 4 23

FTP: separate control, data connections

1. FTP client contacts FTP server at port 21

2. client authorized over control connection

3. client browses remote directory by sending commands over control connection.

4. when server receives file transfer command, server opens 2nd TCP connection (for file) to client

5. after transferring one file, server closes data connection.

FTPclient

FTPserver

TCP control connection

port 21

TCP data connectionport 20

Lecture 4 24

Application layer

2.1 Web browsing and HTTP 2.2 File transferring and FTP 2.3 Email and SMTP (Simple Mail Transfer

Protocol)

Lecture 4 25

Electronic Mail

Three major components: user agents mail servers simple mail transfer

protocol: SMTP

User Agent a.k.a. “mail reader” composing, editing, reading

mail messages e.g., Outlook, Mozilla

Thunderbird outgoing, incoming

messages stored on server

user mailbox

outgoing message queue

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

Lecture 4 26

Electronic Mail: mail servers

Mail Servers mailbox contains

incoming messages for user

message queue of outgoing (to be sent) mail messages

SMTP protocol between mail servers to send email messages client: sending mail

server “server”: receiving

mail server

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

Lecture 4 27

Scenario: Alice sends message to Bob1) Alice uses UA to compose

message and “to” [email protected]

2) Alice’s UA sends message to her mail server;

3) Message placed in message queue

4) Client side of SMTP opens TCP connection with Bob’s mail server and sends Alice’s message

5) Bob’s mail server places the message in Bob’s mailbox

6) Bob invokes his user agent to read message

useragent

mailserver

mailserver user

agent

1

2 3 4 56

Lecture 4 28

SMTP: comparison with HTTP

SMTP uses persistent connections

Comparison with HTTP: HTTP: pull SMTP: push

HTTP: port 80 SMTP: port 25

Both require guarantee Both use TCP connection

Lecture 4 29

Mail access protocols

useragent

sender’s mail server

useragent

SMTP SMTP accessprotocol

receiver’s mail server

• Post Office Protocol (POP3)

• Internet Message Access Protocol (IMAP)

Lecture 4 30

POP3 and IMAP: ComparisonPOP3 Uses “download and

delete” mode. Bob cannot re-read

e-mail if he changes client

POP3 is “stateless” across sessions

IMAP Keep all messages in

one place: the server Allows user to

organize messages in folders

IMAP keeps user state across sessions: names of folders and

mappings between message IDs and folder name

Lecture 4 31

Reading : comparison among the protocols

HTTP FTP

1-32Lecture 4

SMTP