Application Layer We will learn about protocols by examining popular application-level protocols ...
-
date post
19-Dec-2015 -
Category
Documents
-
view
235 -
download
1
Transcript of Application Layer We will learn about protocols by examining popular application-level protocols ...
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
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