Title: Application Layer Protocols
1Application Layer Protocols
2Lesson Outcomes
- How to define an application layer protocol?
- Understand the design of request/response
protocols - Remote login
- File transfer protocols
- Email protocols
- HTTP
- P2P File-sharing
3Some network apps
- E-mail
- Web
- Instant messaging
- Remote login
- P2P file sharing
- Multi-user network games
- Streaming stored video clips
- Internet telephone
- Real-time video conference
- Massive parallel computing
4Internet apps application, transport protocols
Application layer protocol SMTP RFC
2821 Telnet RFC 854 HTTP RFC 2616 FTP RFC
959 proprietary (e.g. RealNetworks) proprietary (
e.g., Dialpad)
Underlying transport protocol TCP TCP TCP TCP TCP
or UDP typically UDP
Application e-mail remote terminal access Web
file transfer streaming multimedia Internet
telephony
5App-layer protocol defines
- Types of messages exchanged, eg, request
response messages - Syntax of message types what fields in messages
how fields are delineated - Semantics of the fields, ie, meaning of
information in fields - Timing - rules for when and how processes send
respond to messages
- Public-domain protocols
- defined in RFCs
- allows for interoperability
- eg, HTTP, SMTP
- Proprietary protocols
- eg, KaZaA, Skype
6Remote Login(TELNET and SSH)
7Remote Interaction
- Devised when computers used (ASCII) terminals
- Terminal abstraction extended to remote access
over a network
8Client-Server Interaction
- Client
- Invoked by user
- Forms connection to remote server
- Passes keystrokes from users keyboard to server
and displays output from server on users screen - Server
- Accepts connection over the network
- Passes incoming characters to OS as if they were
typed on a local keyboard - Sends output over connection to client
9TELNET
- Standard protocol for remote terminal access over
TCP - Allows a user to log into a computer remotely
- Passes keystrokes directly to remote machine as
if coming from local keyboard - Defines network virtual terminal that provides
standard interface - NVT describes system independent encoding
- TELNET client and server map NVT into local
computers representation - Mechanism that allows client and server to
negotiate options (e.g., character set)
10Illustration Of How NVTAccommodates Heterogeneity
11Secure Remote Login (ssh)
- Alternative to TELNET
- Can be used as a transport layer protocol with
service authentication - User authentication protocol
- Connection protocol
- Multiplexes multiple transfers
- Uses encryption for privacy
12ApplicationsFile Transfer And Access(FTP, TFTP)
13On-Line File Sharing
- Always a popular application
- Two basic paradigms
- Whole-file copying (gets a local copy)
- On-line access
14File Transfer
- Whole file copying
- Client
- Contacts server
- Specifies file
- Specifies transfer direction
- Server
- Maintains set of files on local disk
- Waits for contact
- Honours request from client
15File Transfer Protocol (FTP)
- Major TCP/IP protocol for whole-file copying
- Uses TCP for transport
- FTP client contacts FTP server at port 21
- Features
- Interactive access
- Format specification (ASCII or EBCDIC)
- Authentication control (login and password)
16FTP Process Model
- Separate processes handle
- Interaction with user
- Individual transfer requests
- Data transfer connections created dynamically
when needed - The control connection persists throughout a
session
17Control Connection Vs. Data Connection
- For data transfer, client side becomes server and
server side becomes client - Client
- Creates process to handle data transfer
- Allocates port and sends number to server over
control connection - Process waits for contact
- Server
- Receives request
- Creates process to handle data transfer
- Process contacts client-side
18Out-of-band Control
- Control connection out of band
- FTP server maintains state
- current directory, earlier authentication
- What special relationship is required between FTP
and NAT??
19FTP 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
- 331 Username OK, password required
- 125 data connection already open transfer
starting - 425 Cant open data connection
- 452 Error writing file
20Secure File Transfer Protocols
- Secure Sockets Layer FTP (SSL-FTP)
- Uses secure sockets layer technology
- All transfers are confidential
- Secure File Transfer Program (sftp)
- Almost nothing in common with FTP
- Uses ssh tunnel
- Secure Copy (scp)
- Derivative of Unix remote copy (rcp)
- Uses ssh tunnel
21Trivial File Transfer Protocol (TFTP)
- Alternative to FTP
- Whole-file copying
- Not as much functionality as FTP
- Code is much smaller
- Intended for use on Local Area Network
- Runs over UDP
- Diskless machine can use to obtain image at
bootstrap
22TFTP Packet Types
23TFTP Retransmission
- Symmetric
- both sides implement timeout and retransmission
- Network File System (NFS)
- A protocol for on-line file access, not copying
24ApplicationsElectronic Mail(SMTP, POP, IMAP,
MIME)
25Electronic 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., Eudora, Outlook, elm, Thurderbird, pine
- outgoing, incoming messages stored on server
26Electronic 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
27Electronic Mail SMTP RFC 2821
- uses TCP to reliably transfer email message from
client to server, port 25 - direct transfer sending server to receiving
server - three phases of transfer
- handshaking (greeting)
- transfer of messages
- closure
- command/response interaction
- commands ASCII text
- response status code and phrase
- messages must be in 7-bit ASCII
28Scenario Alice sends message to Bob
- 4) SMTP client sends Alices message over the TCP
connection - 5) Bobs mail server places the message in Bobs
mailbox - 6) Bob invokes his user agent to read message
- 1) Alice uses UA to compose message and to
bob_at_someschool.edu - 2) Alices UA sends message to her mail server
message placed in message queue - 3) Client side of SMTP opens TCP connection with
Bobs mail server
1
2
6
3
4
5
29Sample SMTP interaction
S 220 hamburger.edu SMTP Ready C HELO
crepes.fr S 250 Hello crepes.fr, pleased
to meet you C MAIL FROM ltalice_at_crepes.frgt
S 250 alice_at_crepes.fr... Sender ok
C RCPT TO ltbob_at_hamburger.edugt S 250
bob_at_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
30Try SMTP interaction for yourself
- telnet servername 25
- see 220 reply from server
- enter HELO, MAIL FROM, RCPT TO, DATA, QUIT
commands - above lets you send email without using email
client (reader)
31SMTP final words
- SMTP uses persistent connections
- SMTP requires message (header body) to be in
7-bit ASCII - SMTP server uses CRLF.CRLF to determine end of
message
32Mail message format
- SMTP protocol for exchanging email msgs
- RFC 822 standard for text message format
- header lines, e.g.,
- To
- From
- Subject
- different from SMTP commands!
- body
- the message, ASCII characters only
header
blank line
body
33Multipurpose Internet Mail Extension (MIME)
- Permits nontextual data to be sent in email
- Graphics image
- Voice or video clip
- Sender
- Encodes binary item into printable characters
- Places in email message for transfer
- Receiver
- Receives email message containing encoded item
- Decodes message to extract original binary value
34MIME multimedia extensions
- multimedia mail extension - RFC 2045, 2056
- additional lines in msg header declare MIME
content type and encoding
MIME version
method used to encode data
multimedia data type, subtype, parameter
declaration
encoded data
35Mail access protocols
SMTP
access protocol
receivers mail server
- SMTP delivery/storage to receivers server
- Mail access protocol retrieval from server
- POP Post Office Protocol RFC 1939
- authorization (agent lt--gtserver) and download
- IMAP Internet Mail Access Protocol RFC 1730
- more features (more complex)
- manipulation of stored msgs on server
- HTTP Hotmail , Yahoo! Mail, etc.
36POP3 protocol
S OK POP3 server ready C user bob S OK
C pass hungry S OK user successfully logged
on
- authorization phase
- client commands
- user declare username
- pass password
- server responses
- OK
- -ERR
- transaction phase, client
- list list message numbers
- retr retrieve message by number
- dele delete
- quit
C list S 1 498 S 2 912
S . C retr 1 S ltmessage 1
contentsgt S . C dele 1 C retr
2 S ltmessage 1 contentsgt S .
C dele 2 C quit S OK POP3 server
signing off
37POP3 (more) and IMAP
- More about POP3
- Previous example uses download and delete mode.
- Bob cannot re-read e-mail if he changes client
- Download-and-keep copies of messages on
different clients - 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
38World Wide Web(HTTP)
39World Wide Web
- Distributed hypermedia paradigm
- various forms of information, as data, text,
graphics, video, and audio, are linked together
by hyperlinks - Major service on the Internet
- Use surpassed file transfer in 1995
40Web Page Identifier
- Known as Uniform Resource Locator (URL)
- Encodes
- Access protocol to use
- Domain name of server
- Protocol port number (optional)
- Path through servers file system (optional)
- Parameters (optional)
- Query (optional)
- Format
- http // hostname port / path parameters
? query
41Web Standards
- Separate standards for
- Representation
- Transfer
42Representation
- HyperText Markup Language (HTML)
- Document contains text plus embedded links and
formatting - HTML gives guidelines for display, not details
- Consequence two browsers may choose to display
same document differently
43Transfer
- Used between browser and web server
- Protocol is HyperText Transfer Protocol (HTTP)
- Runs over TCP
HTTP vs SMTP Pull vs push paradigm
44HTTP Characteristics
- Application level
- Request / response paradigm
- Stateless
- Permits bi-directional transfer
- Offers capability negotiation
- Support for caching
- Support for intermediaries (proxy)
45HTTP Operation
- Defines how client requests web pages and how
server transfers web pages to client - Browser sends HTTP requests to which server
replies - Typical request GET used to fetch document
- Example
- GET http//www.it.usyd.edu/current_students/
HTTP/1.1 - Relative URL also permitted
- GET /current_students/ HTTP/1.1
46Error Messages
- HTTP includes set of error responses
- Server can format error as HTML message for user
or use internal form and allow browser to format
message
47Persistent Connections
- HTTP version 1.0 uses one TCP connection per
transfer - Browser forms TCP connection to server
- Browser sends GET request
- Server returns header describing item
- Server returns item
- Server closes connection
- HTTP/1.1 permits connection to persist across
multiple requests - One connection with certain timeout interval
48HTTP Headers
- HTTP uses MIME-like headers to carry meta
information - Both browsers and servers send headers that allow
them to negotiate agreement on the document
representation and encoding to be used
49Headers And Length Encoding
- HTTP headers use same syntax as email headers
- Lines of text followed by blank line
- Lines of text have form keywordinformation
- For persistent connection, header specifies
length (in octets) of data item that follows
Header Meaning
Content-Length Size of item in
octets Content-Type Type of item Content-Encodin
g Encoding used for item Content-Language
Language(s) used in item
50Example Of Header
- Content-Length 34
- Content-Language english
- Content-Encoding ascii
- ltHTMLgt A trivial example. lt/HTMLgt
- Note if length is not known in advance, server
can inform browser that connection will close
following transfer - Connection close
Blank line!
51(No Transcript)
52(No Transcript)
53Conditional Request
- Allows browser to check cached copy for freshness
- Eliminates useless latency
- Sends If-Modified-Since in header of GET request
- Example
- If-Modified-Since Wed, 28 May 2007 080001 GMT
- Avoids transfer if item older than 28 May 2007
54Proxy Servers
- Browser can be configured to contact proxy
- Permits caching for entire organization
- Server can specify maximum number of proxies
along path (including none)
55Caching Of Web Pages
- Caching essential to efficiency
- Server specifies
- Whether page can be cached
- Maximum time page can be kept
- Intermediate caches and browser cache web pages
- Browser can specify maximum age of page (forces
intermediate caches to revalidate)
56P2P file sharing(Gnutella)
57P2P file sharing
- Alice chooses one of the peers, Bob.
- File is copied from Bobs PC to Alices notebook
HTTP - While Alice downloads, other users download from
Alice - Alices peer is both a Web client and a transient
Web server - All peers are servers highly scalable!
- Example
- Alice runs P2P client application on her notebook
computer - Intermittently connects to Internet gets new IP
address for each connection - Asks for Hey Jude
- Application displays other peers that have copy
of Hey Jude.
58Query flooding Gnutella
- fully distributed
- no central server
- public domain protocol
- many Gnutella clients implementing protocol
- overlay network graph
- edge between peer X and Y if theres a TCP
connection - all active peers and edges is overlay net
- Edge is not a physical link
- Given peer will typically be connected with lt 10
overlay neighbors
59Gnutella protocol
File transfer HTTP
- Query messagesent over existing TCPconnections
- peers forwardQuery message
- QueryHit sent over reversepath
Scalability limited scopeflooding
60Gnutella Peer joining
- Joining peer X must find some other peer in
Gnutella network use list of candidate peers - X sequentially attempts to make TCP with peers on
list until connection setup with Y - X sends Ping message to Y Y forwards Ping
message. - All peers receiving Ping message respond with
Pong message - X receives many Pong messages. It can then setup
additional TCP connections
61Summary
- typical request/reply message exchange
- client requests info or service
- server responds with data, status code
- message formats
- headers fields giving info about data
- data info being communicated
- control vs. data msgs
- in-band, out-of-band
- centralized vs. decentralized
- stateless vs. stateful
- The End!