Application Layer Protocols - PowerPoint PPT Presentation

1 / 61
About This Presentation
Title:

Application Layer Protocols

Description:

C: HELO crepes.fr. S: 250 Hello crepes.fr, pleased to meet you. C: ... Subject: Picture of yummy crepe. MIME-Version: 1.0. Content-Transfer-Encoding: base64 ... – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 62
Provided by: univ98
Category:

less

Transcript and Presenter's Notes

Title: Application Layer Protocols


1
Application Layer Protocols
  • NETS3303/3603
  • Week 12

2
Lesson 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

3
Some 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

4
Internet 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
5
App-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

6
Remote Login(TELNET and SSH)
7
Remote Interaction
  • Devised when computers used (ASCII) terminals
  • Terminal abstraction extended to remote access
    over a network

8
Client-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

9
TELNET
  • 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)

10
Illustration Of How NVTAccommodates Heterogeneity
11
Secure 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

12
ApplicationsFile Transfer And Access(FTP, TFTP)
13
On-Line File Sharing
  • Always a popular application
  • Two basic paradigms
  • Whole-file copying (gets a local copy)
  • On-line access

14
File 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

15
File 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)

16
FTP 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

17
Control 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

18
Out-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??

19
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
  • 331 Username OK, password required
  • 125 data connection already open transfer
    starting
  • 425 Cant open data connection
  • 452 Error writing file

20
Secure 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

21
Trivial 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

22
TFTP Packet Types
23
TFTP Retransmission
  • Symmetric
  • both sides implement timeout and retransmission
  • Network File System (NFS)
  • A protocol for on-line file access, not copying

24
ApplicationsElectronic Mail(SMTP, POP, IMAP,
MIME)
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., Eudora, Outlook, elm, Thurderbird, pine
  • outgoing, incoming messages stored on server

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

27
Electronic 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

28
Scenario 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
29
Sample 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
30
Try 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)

31
SMTP 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

32
Mail 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
33
Multipurpose 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

34
MIME 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
35
Mail 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.

36
POP3 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
37
POP3 (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

38
World Wide Web(HTTP)
39
World 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

40
Web 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

41
Web Standards
  • Separate standards for
  • Representation
  • Transfer

42
Representation
  • 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

43
Transfer
  • Used between browser and web server
  • Protocol is HyperText Transfer Protocol (HTTP)
  • Runs over TCP

HTTP vs SMTP Pull vs push paradigm
44
HTTP Characteristics
  • Application level
  • Request / response paradigm
  • Stateless
  • Permits bi-directional transfer
  • Offers capability negotiation
  • Support for caching
  • Support for intermediaries (proxy)

45
HTTP 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

46
Error 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

47
Persistent 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

48
HTTP 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

49
Headers 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
50
Example 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)
53
Conditional 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

54
Proxy Servers
  • Browser can be configured to contact proxy
  • Permits caching for entire organization
  • Server can specify maximum number of proxies
    along path (including none)

55
Caching 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)

56
P2P file sharing(Gnutella)
57
P2P 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.

58
Query 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

59
Gnutella protocol
File transfer HTTP
  • Query messagesent over existing TCPconnections
  • peers forwardQuery message
  • QueryHit sent over reversepath

Scalability limited scopeflooding
60
Gnutella 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

61
Summary
  • 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!
Write a Comment
User Comments (0)
About PowerShow.com