Professional Documents
Culture Documents
Ajay Kumar Assistant Professor I Computr Science
Ajay Kumar Assistant Professor I Computr Science
Ajay Kumar Assistant Professor I Computr Science
ASSISTANT PROFESSOR I
COMPUTR SCIENCE
1
Chapter 5
Application Layer
2
Chapter 2: Application layer
3
Processes communicating
host or host or
server server
Process:
program running within a host controlled by
app developer
process process
5
Transport service requirements of common apps
6
World Wide Web:WWW
7
World wide web:WWW
Architecture of WWW
• WWW is basically a distributed client-server service.
• These services are usually distributed over many
locations called sites or websites.
• From the user's point of view web consists of a vast
worldwide collection of documents called web pages.
These web pages reside on different sites or machines
all over the world.
• Each web page can contain link to other pages any
where in the world. By clicking on such link user can
access another web page.
• Such a text or image that enables the user to link to
another web page is called hyperlink.
8
World wide web:WWW
1
DNS services
• hostname to IP address translation
• host aliasing
• Canonical, alias names
• mail server aliasing
• load distribution
• replicated Web servers: set of IP addresses for one canonical name
11
Distributed, Hierarchical Database
Root DNS Servers
1
HTTP overview
Web page consists of base HTML-file
which includes several referenced
objects
HT Each object is addressable by a URL
TP
r
equ
PC running HT est
TP
Explorer res
pon
se HTTP: hypertext transfer protocol
Web’s application layer protocol
est client/server model
q u
P re se Server
T o n client: browser that requests, receives,
HT r es
p running
T TP Apache Web “displays” Web objects
H
server server: Web server sends objects in
response to requests
Mac running uses TCP
Navigator
is “stateless”
1
HTTP connections
1
Non-Persistent HTTP: Response time
Definition of RTT: time for a small
packet to travel from client to
server and back.
initiate TCP
connection
Response time: RTT
1
Persistent HTTP
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
HTTP messages
two types of HTTP messages: request, response
HTTP request message:
ASCII (human-readable format)
1
Method types
HTTP/1.0 HTTP/1.1
GET • GET, POST, HEAD
request an object from server • PUT
POST • uploads file in entity body
upload information using to path specified in URL
forms field
HEAD • DELETE
asks server to leave requested • deletes file specified in the
object out of response URL field
1
Cookies: Keeping state
1
Web caches (proxy server)
Goal: satisfy client request without involving origin server
• user sets browser: Web origin
accesses via cache server
2
FTP: the file transfer protocol
2
FTP: separate control, data connections
TCP control connection
port 21
• FTP client contacts FTP server at port
21
• client authorized over TCP data connection
FTP control FTP
port 20
connection client server
• client browses remote directory by
sending commands over control connection.
• when server receives file transfer command, server opens 2nd TCP connection
(for file) to client
• after transferring one file, server closes data connection.
• server opens another TCP data connection to transfer another file.
• control connection: “out of band”
• FTP server maintains “state”: current directory, earlier authentication
2
FTP commands, responses
Sample commands:
• sent as ASCII text over control channel
• USER username
• PASS password
• LIST return list of file in current directory
• RETR filename retrieves (gets) file
• STOR filename stores (puts) file onto remote host
Sample return codes
• status code and phrase (as in HTTP)
• 331 Username OK, password required
• 125 data connection already open; transfer starting
• 425 Can’t open data connection
• 452 Error writing file
2
FTP issues
2
Electronic Mail: mail servers
user
Mail Servers agent
• mailbox contains incoming mail
user
messages for user server
agent
• message queue of outgoing (to be
SMTP
sent) mail messages mail
server user
SMTP agent
• SMTP protocol between mail servers
to send email messages SMTP
user
• client: sending mail server mail
agent
server
• “server”: receiving mail server
user
agent
user
agent
2
Electronic Mail: SMTP [RFC 2821]
2
Scenario: Alice sends message to Bob
1) Alice uses UA to compose message and “to”
bob@someschool.edu
2) Alice’s UA sends message to her mail server; message placed in
message queue
3) Client side of SMTP opens TCP connection with Bob’s mail server
4) SMTP client sends Alice’s message over the TCP connection
5) Bob’s mail server places the message in Bob’s mailbox
6) Bob invokes his user agent to read message
1 mail
mail
server user
user server
2 agent
agent 3 6
4 5
2
Sample SMTP interaction
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection
3
SMTP: final words
3
Mail message format
• body
body
• the “message”,
ASCII characters only
3
Message format: multimedia extensions
• MIME: multimedia mail extension, RFC 2045, 2056
• additional lines in msg header declare MIME content type
From: alice@crepes.fr
MIME version To: bob@hamburger.edu
Subject: Picture of yummy crepe.
method used MIME-Version: 1.0
to encode data Content-Transfer-Encoding: base64
Content-Type: image/jpeg
multimedia data
type, subtype, base64 encoded data .....
parameter declaration .........................
......base64 encoded data
encoded data
3
Mail access protocols
3
POP3 protocol
S: +OK POP3 server ready
C: user bob
authorization phase S: +OK
C: pass hungry
• client commands: S: +OK user successfully logged on
• user: declare username
C: list
• pass: password S: 1 498
• server responses S: 2 912
S: .
• +OK
C: retr 1
• -ERR S: <message 1 contents>
transaction phase, client: S: .
C: dele 1
• list: list message numbers C: retr 2
• retr: retrieve message by S: <message 1 contents>
number S: .
C: dele 2
• dele: delete
C: quit
• quit S: +OK POP3 server signing off
3
POP3 (more) and IMAP
3
Try SMTP interaction for yourself:
• telnet servername 25
above lets you send email without using email client (reader)