Application Protocols SMTP and others Electronic Mail SMTP

Document Sample
Application Protocols SMTP and others Electronic Mail SMTP Powered By Docstoc
					                                                                               Electronic Mail

 4: Application Protocols:
     SMTP and others

                      Last Modified:
                   2/3/2003 8:07:08 PM

                                                   2: Application Layer    1                                                       2: Application Layer      2

Electronic Mail                                                outgoing
                                                          message queue        Electronic Mail: mail servers
                                                            user mailbox
Three major components:                   agent                                Mail Servers                                 user
❒ user agents                     mail                                         ❒ mailbox contains incoming
                                                                 user                                              mail
❒ mail servers                   server                                          messages (yet to be read)        server
❒ simple mail transfer
                                                                                 for user                                                           agent

  protocol: smtp
                                           SMTP         mail                   ❒ message queue of outgoing                  SMTP            mail
                                                       server       user         (to be sent) mail messages                                server          user
User Agent                    SMTP                                 agent         (if message cannot be
                                                                                 delivered will stay in queue)   SMTP                                     agent
❒ a.k.a. “mail reader”
❒ composing, editing, reading
                                           SMTP                                ❒ smtp protocol between mail                 SMTP
                                 mail                            user            servers to send email                                               user
  mail messages                                                 agent                                              mail
                                server                                           messages                         server                            agent
❒ e.g., Eudora, Outlook, elm,
                                                                                  ❍ Mail server is an SMTP
  Netscape Messenger                        user
                                                                                     client when sending mail                user
❒ outgoing, incoming messages              agent                                                                            agent
                                  user                                            ❍ Mail server is an SMTP
  stored on server                                                                                                  user
                                  agent                                              server” when receiving        agent
                                                   2: Application Layer    3                                                       2: Application Layer      4

Electronic Mail: smtp [RFC 2821]                                               SMTP History
❒ Uses tcp to reliably transfer email msg from
                                                                               ❒ SMTP has been around a long time
  client to server, port 25
❒ direct transfer: sending server to receiving                                    ❍ RFC    done in 1982
  server                                                                          ❍ In   use well before that
❒ three phases of transfer
   ❍ handshaking (greeting)
                                                                               ❒ Messages must be in 7-bit ASCII
   ❍ transfer of messages                                                        (made sense in text-based early days)
   ❍ closure
                                                                               ❒ Requires encoding for binary data
❒ command/response interaction
   ❍ commands: ASCII text
                                                                                 (jpegs, etc.) in 7-bit ASCII (yuck!)
   ❍ response: status code and phrase
   ❍ Much like HTTP
                                                   2: Application Layer    5                                                       2: Application Layer      6
                                                                      try smtp interaction for yourself:
Sample smtp interaction
 S:    220
 C:    HELO                                                 ❒ telnet servername 25
 S:    250 Hello, pleased to meet you
 C:    MAIL FROM: <>                                   ❒ see 220 reply from server
 S:    250 Sender ok                               ❒ enter HELO, MAIL FROM, RCPT TO, DATA, QUIT
 C:    RCPT TO: <>
 S:    250 ... Recipient ok
 C:    DATA                                                           above lets you send email without using email client
 S:    354 Enter mail, end with "." on a line by itself                 (reader)
 C:    Do you like ketchup?
 C:      How about pickles?                                           ❒ How do you know the right server name?
       250 Message accepted for delivery
                                                                      Trace it – does your mail data go in the
 C:    QUIT                                                             clear?
 S:    221 closing connection

                                          2: Application Layer    7                                               2: Application Layer     8

What is missing?                                                      Mail message format
                                                                                                      SMTP Data
❒ Some commands processed by SMTP protocol                            smtp: protocol for exchanging
  mirror mail headers we are used to seeing in our                      email msgs                      Message headers
                                                                      RFC 2822: standard for text                                        blank
  email messages (To, From, …), but are not the                                                                                           line
                                                                        message format (format of
  same things                                                           data from smtp
❒ Email headers (To, From, CC, Subject, Date, ..) are                   perspective)
  considered part of the data by SMTP and are not                     ❒ header lines, e.g.,               Message body
  processed SMTP server at all!                                          ❍   To:
❒ Email headers are processed by the mail reader                         ❍   CC:
  software and ignored by SMTP                                           ❍
                                                                         different from SMTP
   ❍   How is Bcc implemented?                                              commands!
❒ Another example of “protocol” layering (like HTML                   ❒ body
  and HTTP)                                                              ❍   the “message”, ASCII
                                                                             characters only

                                          2: Application Layer    9                                               2: Application Layer     10

Sample smtp interaction                                               SMTP format
S: 220
C: HELO                                                     ❒ SMTP requires that message (header & body) be
S: 250 Hello, pleased to meet you
C: MAIL FROM: <>                                         in 7-bit ascii
S: 250 Sender ok                                   ❒ Certain character strings are not permitted in
C: RCPT TO: <>
S: 250 ... Recipient ok                               message (e.g., CRLF.CRLF). Thus message has to
C: DATA                                                                 be encoded (usually into either base-64 or
S: 354 Enter mail, end with "." on a line by itself                     quoted printable)
C: To:
C: Subject: dinner preferences                                        ❒ SMTP server uses CRLF.CRLF to determine end
C: From:                                                of message
C: Do you like ketchup?
C:    How about pickles?
C: .
S: 250 Message accepted for delivery
S: 221 closing connection
                                          2: Application Layer   11                                               2: Application Layer     12
   What about sending pictures and other                                                                                      MIME types: Extensible
   binary data?                                                                                                               Content-Type: type/subtype; parameters
   ❒ Don’t try this by hand ☺
   ❒ MIME: multimedia mail extension, RFC 2045, 2056
                                                                                                                              Text                         Video
                                                                                                                              ❒ example subtypes: plain,   ❒ example subtypes: mpeg,
   ❒ additional lines in msg header declare MIME content
                                                                                                                                html                         quicktime
          MIME version                                                                                                        Image
                                                                                                                              ❒ example subtypes: jpeg,
                                                            Subject: Picture of yummy crepe.
           method used                                      MIME-Version: 1.0                                                   gif                        ❒ other data that must be
         to encode data                                     Content-Transfer-Encoding: base64                                                                processed by reader
                                                                                                                                                             before “viewable”
     multimedia data
                                                            Content-Type: image/jpeg
      type, subtype,                                                                                                                                       ❒ example subtypes:
                                                            base64 encoded data .....                                         ❒ example subtypes: basic
parameter declaration                                                                                                           (8-bit mu-law encoded),      msword, octet-stream
                                                            ......base64 encoded data                                           32kadpcm (32 kbps
            encoded data                                                                                                        coding)

                                                                                                  2: Application Layer   13                                               2: Application Layer   14

   Multipart Type
                                                                                                                              Spam/forged mail
         Subject: Picture of yummy crepe.
         MIME-Version: 1.0
         Content-Type: multipart/mixed; boundary=98766789
                                                                                                                              ❒ “Received:” and “MessageID” headers are
         Content-Transfer-Encoding: quoted-printable
                                                                                                                                part of the data
         Content-Type: text/plain                                                                                                ❍   Accurate and helpful from legitimate servers
         Dear Bob,                                                                                                                   and user agents
                                                                                                                              ❒ Start with a legitimate server you trust
         Please find a picture of a crepe.
                                                                                                                                ❍ Don’t relay messages from a site outside your
         Content-Transfer-Encoding: base64
         Content-Type: image/jpeg
                                                                                                                                  domain to another host outside your domain
         base64 encoded data .....
         .........................                                                                                              ❍ Verify the Mail From field (resolvable domain
         ......base64 encoded data                                                                                                and matching IP address)
                                                                                                                                ❍ Refuse traffic from known spammers

                                                                                                  2: Application Layer   15                                               2: Application Layer   16

   Sample Spam                                                                                                                Tracking and Reporting Spam
                                                                                                                              ❒ Record IP address of sender and time and
   From Sat Sep 4 16:55:41 1999
   Received: from cs2.CS.Berkeley.EDU (cs2.CS.Berkeley.EDU [])
   by mnemosyne.CS.Berkeley.EDU (8.9.1a/) with ESMTP id QAA20836 for <jnm@mailspool.CS.Berkeley.EDU>;
   Sat, 4 Sep 1999 16:55:38 -0700 (PDT)

   Received: from ( [])
                                                                                                                                date of message transfer
                                                                                                                              ❒ Spamcop uses a combination of tools like
   by cs2.CS.Berkeley.EDU (8.9.1a/8.6.6.Beta11) with ESMTP id LAA18735 for <>; Sat, 4
   Sep 1999 16:55:04 -0700 (PDT)

   Received: from ( [])
   by (8.8.7/8.8.7) with SMTP id PAA20074; Sat, 4 Sep 1999 19:54:21 -0400 (EDT)
                                                                                                                                dig, nslookup and finger to cross-check all
   Received: from ( [])                                                     the information in an email header and find
   by (8.8.8/8.8.8) with SMTP id RAA04617; Sat, 4 Sep 1999 19:53:33 -0400 (EDT)
                                                                                                                                the email address of the system
                                                                                                                                administrator responsible for the network
   Received: by with Internet Mail Service (
   id Q19G494F; Sat, 4 Sep 1999 19:53:25 -0400 (EDT) Date: Sat, 4 Sep 1999 19:53:23 -0400 (EDT)
   From: Charles Lewis <>
   Subject: You'll never believe this!
   Message-ID: <>
                                                                                                                                from which the mail was sent
                                                                                                                              ❒ postmaster@domain or abuse@domain
   Mime-Version: 1.0
   Content-Type: text/plain; charset=us-ascii

   You won't believe this, but some company just paid me to surf the web! Check out...

                                                                                                  2: Application Layer   17                                               2: Application Layer   18
Multiple recipients                                                  Email viruses
❒ When you send mail to your outgoing mail                           ❒ Often attachments which once opened run
  server, transfer one copy of message                                 with the users full privileges and corrupt
  regardless of how many recipients                                    the system on which mail is read
   ❍   Great for spammers                                            ❒ Viruses tend to target Windows as it is the
❒ Mail servers could play the same trick                               platform used by the majority of people
  ❍ Look at RCPT to list
  ❍ If more than one recipient per destination mail
    server then transfer just one mail
❒ Could also send one copy per recipient
   ❍ Recommended configuration?

                                         2: Application Layer   19                                                          2: Application Layer   20

SMTP vs HTTP                                                         Outgoing Mail Server?
                                                                     ❒ Why not just SMTP server on local
❒ Smtp: persistent connections like HTTP 1.1                             machine?
                                                                     ❒ “Push not pull” means your PC must be
❒ Both have ASCII command/response
  interaction, status codes                                              constantly on to accept “push”

❒ http: each object is encapsulated in its own
  response message
❒ smtp: multiple objects message sent in a
  multipart message
❒ http: pull; smtp: push
                                         2: Application Layer   21                                                          2: Application Layer   22

SMTP = outgoing                                                      Incoming mail?
                                                                                      SMTP          SMTP              POP3 or
❒ Notice we didn’t see any SMTP commands                                       user
                                                                                                                       IMAP       agent
  to “get” or “retrieve” mail                                                 agent

❒ SMTP is for outgoing mail only                                                        sender’s mail   receiver’s mail
                                                                                           server           server
❒ How do we get mail?
                                                                     ❒ Mailbox file
   ❍ Early days: log on to server and read mail from
                                                                         POP: Post Office Protocol [RFC 1939] authorization (agent <-
     a mailbox = file on server                                      ❒
                                                                         ->server) and download
   ❍ How many people still read mail that way? (I do                 ❒   IMAP: Internet Mail Access Protocol [RFC 1730] more
     ☺)                                                                  features (more complex) manipulation of stored messages
   ❍ Today many people read mail on their PC
                                                                         on server
                                                                     ❒   HTTP: Hotmail , Yahoo! Mail, etc.
   ❍ How do they get their mail from the mail                             ❍ Why not use HTTP to transfer random things like email?
     server?                                                              ❍ Convenient – don’t need mail reader just the ubiquitous web
                                         2: Application Layer   23
                                                                     ❒ Other?                                               2: Application Layer   24
                                                                                     try POP interaction for yourself:
POP3 protocol                             S:   +OK POP3 server ready
                                          C:   user alice
authorization phase                       S:   +OK
                                                                                     ❒ telnet servername 110
                                          C:   pass hungry
❒ client commands:
                                          S:   +OK user successfully logged     on   ❒ see “OK POP3 server ready” reply from server
    ❍user: declare username
   ❍ pass: password
                                          C:   list                                  ❒ enter user, pass, list, retr, dele commands
                                          S:   1 498
❒ server responses                        S:   2 912
   ❍ +OK                                  S:   .                                     above lets you send get you own email without using
   ❍ -ERR                                 C:   retr 1                                  email client (reader)
transaction phase, client:                S:
                                               <message 1 contents>
❒ list: list message numbers
❒ retr: retrieve message by
                                               dele 1
                                               retr 2                                Trace it – do your password and mail data go
  number                                  S:   <message 1 contents>                    in the clear?
❒ dele: delete                            S:   .
❒ Quit                                    C:   dele 2                                Do you configure your mail reader to pop mail
                                          C:   quit                                    every X minutes? Same as announcing your
                                          S:   +OK POP3 server signing off
                                                                                       password regularly!
                                                        2: Application Layer   25                                              2: Application Layer   26

IMAP                                                                                 IMAP con’t
❒ Allows user to set up and maintain multiple folders                                ❒ During an IMAP connection, the server
  (for sorting mail) on the remote server                                              transitions between multiple states
❒ Can get headers for and manipulate messages                                           ❍ Initially non-authenticated
  without downloading them (can even download
                                                                                        ❍ Authenticated
  individual MIME attachments)
    ❍   Don’t pay cost to download over slow link                                       ❍ Selected – folder selected and operations on

    ❍   Don’t leave them on insecure computers                                            messages permitted
❒ Stateful protocol - stores per user information                                       ❍ Finally, Logout state

   about folders and the status of the messages in
    ❍   Folder information, actual messages
    ❍   Seen, Deleted, Answered flags per message
                                                        2: Application Layer   27                                              2: Application Layer   28

Authentication in IMAP                                                               Authentication in IMAP (cont)
❒ Client requests a certain AUTHENTICATION method
        C: A001 AUTHENTICATE KERBEROS_V4                                             ❒ Client can try various authentication
                                                                                       mechanisms in decreasing order of
❒ If server implements that authentication mechanism then it will
  authenticate via that method                                                         preference looking for one the server
        S: + AmFYig==
           N3/IJmrMG+25a4DT+nZImJjnTNHJUtxAA+o0KPKfH                                 ❒ In the worst case, a client may
        S: + or//EoAADZI=                                                              authenticate with plain text login
        C: DiAF5A4gA+oOIALuBkAAmw==
        S: A001 OK Kerberos V4 authentication successful                                 C: a001 LOGIN SMITH SESAME
                                                                                         S: a001 OK LOGIN completed
❒ Sever can respond with NO if it does not support that
  authentication mechanism
        S: A001 NO authenticate failure

                                                        2: Application Layer   29                                              2: Application Layer   30
Once authenticated, client can:                                                Pop vs IMAP
❒ SELECT a mailbox                                                             ❒ Similarities
   C: A142 SELECT INBOX                                                           ❍ Mail delivered to a shared, constanly connected server
   S: * 172 EXISTS S: * 1 RECENT                                                  ❍ New mail accessible anywhere in network on a variety of
   S: * OK [UNSEEN 12] Message 12 is first unseen                                   platforms
   S: * OK [UIDVALIDITY 3857529045] UIDs valid                                    ❍ For access only, Need SMTP to send mail
   S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
                                                                               ❒ Differences
   S: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
                                                                                  ❍ POP simpler and more established (more clients and
   S: A142 OK [READ-WRITE] SELECT completed
                                                                                    servers that support it)
❒ CREATE, RENAME or DELETE mailboxes
                                                                                  ❍ IMAP is stateful protocol with more features; POP uses
❒ FETCH messages from a mailbox                                                     less server resources
❒ SEARCH through messages                                                         ❍ IMAP = prioritize download time; POP = shorter overall
❒ APPEND messages to a mailbox                                                      connection time

                                                   2: Application Layer   31                                                                2: Application Layer   32

Network News                                                                   What is Usenet?
                                                                               ❒ Reading/posting to Usenet newsgroups

     Thanks to Jeffrey Vinocur (NNTP presentation, Spring 2002)                ❒ Conceptually: a semi-organized collection of forums
                                                                                 (“newsgroups”) for public discussion

                                                                               ❒ Technically: a system for distributing email-like

                                                   2: Application Layer   33                                                                2: Application Layer   34

Usenet Messages
                                                                               From: (A Meowbot)
                                                                               Subject: Why?
❒ Format: like email, but a bit stricter and with some extra
                                                                               Date: Sun, 27 Jan 2002 23:25:52 +0000 (UTC)
                                                                               Organization: a tyranny of meowing fascist censor cabalists
  headers (e.g., Newsgroups) – we don’t care about this today,                 Lines: 4
  except for two important headers                                             Approved: nope.

❒ Message-ID: unlike email, every message truly needs to
                                                                               Message-ID: <>
                                                                               X-Trace: 1012173952 6565 (27 Jan
  have a globally unique identifier                                                     2002 23:25:52 GMT)

❒ Path: we’ll see this header later
                                                                               X-Meow: Wouf
                                                                               Mail-Copies-To: nobody
                                                                               X-No-Repost: yes

                                                                               Because we like you.

                                                   2: Application Layer   35                                                                2: Application Layer   36
Network Topology                                                                          So I post…then what?
❒ Users connect to a local site                                                           ❒ The goal is for every article to make it to
❒ Each site may have several servers for                                                    every server in the world – the “floodfill”
   better throughput                                                                        model
❒ Sites are connected by (manually-                                                       ❒ This can be as fast as a few seconds or as
  requested and -configured) peering links to                                               long as a few days (normally a few hours)
  other sites
❒ Major sites have hundreds of peers

                                                              2: Application Layer   37                                                     2: Application Layer     38

 Serious bandwidth
                                                                         CAIDA (1999)     An article arrives…
                                                                                          This can be either a new post from a user or an
                                                                                          article being “fed” from a peering server.

                                                                                          1. The server’s “name” added to the Path
                                                                                             header (history of where the article has
                                                                                          2. The server stores the article so users
                                                                                             can read it
                                                                                          3. For each of the server’s peers, determine
                                                                                             if the peer has seen the article already
                                                                                             (first check for peer’s name in Path
                                                                                             header, then ask the peer about the
                                                                                          4. Send the article to peers who do not have
                                                              2: Application Layer   39                                                     2: Application Layer     40

                                                                                           Usenet, 1980                                                Credit:

Path headers and Message-IDs
                                                                                                                                                       Mark Horton

❒ Let’s trace an article. The initial component (at
   the end!) of the Path header marks the original                                                               reed    phs
   posting server; then the originating server adds                                                                   \ / \
   its name:                                                                                                     uok---duke-unc
                                                                                                                      / \
Path:!not-for-meow                                                                          research vax135
❒ Then this article gets fed to a another server and                                                             ucbvax
   then add their hostname:

❒ And then it gets fed to another server…

                                                              2: Application Layer   41                                                     2: Application Layer     42
Usenet, 1981                                                     Credit:
                                                                 ucbvax!mark        Usenet, 1993                                                       Credit:
                                                                                                                                                       Brian Reid

                  (Misc)         ! (NC)       (Misc)
         decvax sii reed phs--unc--grumpy duke34 utzoo cincy teklabs
            ! ! !     !     !    !             !        !      !      !
            ! +--+----+-----+-+--+-------------+-------+------+       !
            !                 !                                       !
            !               duke                                      !
            !                 !                                       !
            !          +------+---+-----------------------+--------+ !
            !          !          !                        !        ! !
   ucbopt   ! hocsr--mhtsa----research    mh135a         harpo-----chico
      :     !          ! !                   !
   ucbcory !           ! eagle    ihnss   vax135 (Bell Labs)
(UCB) :     !          ! !         !         !
      :    @                 !        !                ! (Silicon Valley)
   ucbarpa @      (UCSD) sdcsvax      !              menlo70--hao
      :    @     sdcattb-----+        !                   !    !
   ucbonyx @                 +-----ucsfcgl              sytek sri-unix
           @     phonlab-----+
       cca-unix           sdcarl
                                                   !-        Uucp links
                                                   :         Berknet links
                                                   @         Arpanet links

                                                      2: Application Layer     43                                                           2: Application Layer    44

Usenet today                                                     Credit:
                                                                 Karl L. Swartz

❒ 1.4 million articles
❒ ~ 360 GB daily
❒ Over a 100 Mbit/sec
  link is > 8 hours!

                                                                                         Usenet is like a herd of performing elephants with
                                                                                       diarrhea – massive, difficult to redirect, awe-inspiring,
                                                                                       entertaining, and a source of mind-boggling amounts of
                                                                                                 excrement when you least expect it.
                                                                                            – Professor Gene Spafford, Purdue University

                                                      2: Application Layer     45                                                           2: Application Layer    46

FTP                                                                                 ftp: the file transfer protocol

                                                                                                      FTP                   file transfer
                                                                                                              FTP                            FTP
                                                                                                      user   client                         server
                                                                                         at host               local file                            remote file
                                                                                                               system                                system

                                                                                      ❒ transfer file to/from remote host
                                                                                      ❒ client/server model
                                                                                         ❍ client: side that initiates transfer (either to/from
                                                                                         ❍ server: remote host
                                                                                      ❒ ftp: RFC 959
                                                                                      ❒ ftp server: port 21

                                                      2: Application Layer     47                                                           2: Application Layer    48
ftp: separate control, data connections                                         ftp commands, responses
❒ ftp client contacts ftp server                                                Sample commands:                 Sample return codes
  at port 21, specifying TCP as                                                 ❒ sent as ASCII text over
  transport protocol                                                                                             ❒ status code and phrase (as
                                            TCP control connection
                                                                                  control channel                   in http)
❒ two parallel TCP connections
                                                   port 21                      ❒ USER username
  opened (both full duplex):                                                                                     ❒ 331 Username OK,
                                                                                ❒ PASS password (sent               password required
   ❍ control: exchange
                                                                                  in clear text!)
      commands, responses                   TCP data connection                                                  ❒ 125 data connection
      between client, server.       FTP          port 20             FTP        ❒ LIST return list of file in      already open;
        “out of band control”      client                           server        current directory                transfer starting
   ❍ data: file data to/from                                                    ❒ RETR filename retrieves        ❒ 425 Can’t open data
      server, can be used in                                                      (gets) file                      connection
      either direction, need not                                                ❒ STOR filename stores           ❒ 452 Error writing
      always exist                                                                (puts) file onto remote          file
❒ ftp server maintains “state”:                                                   host
  current directory, earlier
                                                    2: Application Layer   49                                                      2: Application Layer   50

FTP Connection                                                                  FTP Model                                      Ftp client

❒ Client connects to port 21 on server; this                                        FTP server                                  Interface
    established the control channel
❒   Over the control channel, the client specifies the                                Server                                       User
                                                                                     Protocol      FTP Commands/ Replies         Protocol
    characteristics including IP address and port                                  Interpreter                                 Interpreter
    number for data connection (note: needn’t be on
    the same machine as the client )                                                                                              User
❒   Can ask server to set up a passive connection for                                  Data                                      Data
    the data port as well (good for getting around                                   Transfer          Data Connection          Transfer
    firewalls)                                                                       Process
❒   Server tries to connect to data port as specified
    by client
    Once established data connection can be used in                                                                            File System
❒                                                                                   File System
    both directions
                                                    2: Application Layer   51                                                      2: Application Layer   52

Multimedia Applications                                                         Multimedia Applications
                                                                                ❒ Audio/video conferencing, streaming audio, etc.
                                                                                   ❍ On-demand playback: could download before beginning
                                                                                     playback; could support rewind, fast forward etc.; start-
                                                                                     up time and RTT not very important
                                                                                   ❍ Live transmission: usually broadcast from one source like
                                                                                     TV or radio; much like on demand; no rewind or fast
                                                                                     forward; more sensitive to delay (how close to live?)
                                                                                   ❍ Conferencing: interactive, start-up time and RTT matter
                                                                                ❒ Examples: vic (video conferencing), vat (audio
                                                                                  conferencing), RealAudio, Quicktime,

                                                    2: Application Layer   53                                                      2: Application Layer   54
                                                                        Real-time Transport Protocol
Requirements of multimedia
❒ Several methods for compressing and encoding                          ❒ TCP overhead to high; UDP not good enough
    voice/video; sender and receiver negotiate                          ❒ Initially, each application had its own protocol,
❒   Ability to display stream (at degraded quality)                       implementing only those parts of TCP it really
    with lost packets                                                     needed on top of UDP
❒   Ability to specify the timing requirements                          ❒ RTP offers generalized real time transport
    between packets of related data for smooth                            services
    playback                                                               ❍   Thin protocol; Runs on top of UDP
❒   Frame boundary indication                                              ❍   Implements functionality commonly needed by multimedia
                                                                               applications - timing reconstruction, loss detection,
❒   Synchronization of related audio and video                                 security and content identification
    streams                                                                ❍   RFC 1889
❒   No retransmission of lost packets

                                            2: Application Layer   55                                                    2: Application Layer   56

                                                                        Real-time Streaming Protocol
Realtime Transport (?) Protocol
                                                                        (RTSP )
❒ Is this an application level protocol or a                            ❒ Network “Remote Control”
                                                                          ❍ Like FTP has data channel and control channel; RTSP is
    transport protocol?                                                     the control channel for streaming audio/video
    ❍   Done at application level                                         ❍ Not used to deliver data; often uses RTP for the data
    ❍   If TCP implemented at application level (good
                                                                        ❒ Establishes and controls audio and video delivery
        project ☺), does that make it an application
                                                                           ❍ Single or multiple audio/video streams (time
        level protocol or a transport level protocol?                        synchronization if desired)
❒ Where is the right place to put these                                    ❍ Live feeds or stored clips

    features?                                                           ❒ Industry consortium announced in 1996 – since
                                                                           ❍   Mostly development continued on proprietary versions:
                                                                               Real Network’s (originally Progressive Networks)
                                                                               RealMedia, RealAudio and RealPlayer , Quicktime,
                                            2: Application Layer   57                                                    2: Application Layer   58

RTSP Requests                                                           Trying RTSP
❒ DESCRIBE – description of presentation                                ❒ telnet servername 554
❒ OPTIONS - get supported methods; capability
    announcements                                                       C: DESCRIBE rtsp://streamserver/rafile.rm RTSP/1.0\n\n
❒ SETUP – establish a new session
                                                                        S: RTSP/1.0 200
❒ PLAY – start playback/streaming; reposition
❒ ANNOUNCE – change description of presentation
❒ RECORD – start recording
❒ REDIRECT – redirect client to a new server; for
    load balancing
❒ PAUSE –stop delivery but keep state
❒ TEARDOWN – stop delivery, remove state

                                            2: Application Layer   59                                                    2: Application Layer   60
Trying RTSP (2)                                                               RTSP vs HTTP
C: SETUP rtsp:// RTSP/1.0                      ❒ RTSP actually derived from HTTP
Transport: rtp/udp; compression; port=3056; mode=PLAY                            ❍ Avoid mistakes (like always specify full URI)
S: RTSP/1.0 200 1 OK
                                                                                 ❍ More methods of course
Session 4231
C: PLAY rtsp:// RTSP/1.0               ❒ RTSP server needs to maintain state from SETUP
Session: 4231                                                                   to control PLAY command; HTTP server is
Range: npt=0-                                                                   stateless (uses cookies to trick client into
C: PAUSE rtsp://                         remembering it)
                                                                              ❒ Data can be delivered in or out of band with RTSP;
Session: 4231
Range: npt=37
                                                                                HTTP data delivered in band
C: TEARDOWN rtsp://                    ❒ RTSP is a symmetric protocol (client and server
   RTSP/1.0                                                                     can both isssue requests); HTTP client issues
Session: 4231                                                                   requests
S: 200 3 OK
                                                                                 ❍   Ex. server can announce new available streams (audio
                                                                                     from a new participant in a conference)
                                                  2: Application Layer   61                                                      2: Application Layer   62

Session Description Formats                                                   SDP example
❒ Format for describing the number and                                           session (v 0)(o mhandley 2890844526 2890842807 IN IP4
  sources for all streams in a presentation                                      (s Sd seminar)(i A seminar on the session description protocol)
❒ May offer alternatives                                                         (u
   ❍   Different audio channels in various languages                              (e (Mark Handley))
                                                                                 (c IN IP4 2873397496 2873404696)
   ❍   Different quality of audio/video for various BW
                                                                                 (a recvonly) (all (media (m audio 3456 VAT PCMU))
                                                                                  (media (m video 2232 RTP H261))
❒ Specify timing requirements between                                            (media (m whiteboard 32416 UDP WB)(orient portrait)) ))
  various streams
❒ Examples: SDF, SDP                                                                                       From:

                                                  2: Application Layer   63                                                      2: Application Layer   64

From URL in web page to
                                                                              Alternative: HTTP Streaming
streaming audio/video
<EMBED SRC=“http://server/foo.sdf” TYPE =                                     ❒ Many sites simply send audio and video over HTTP
  “application/x-audio”>                                                      ❒ When object arrives will be opened by appropriate
❒ HTTP gets session or presentation description file                            application just like Doc files or PDF files
  ( not part of RTSP) from a web server
                                                                              ❒ Estimate when it is safe to begin playback without
❒ Presentation Description indicates RTSP server to
                                                                                the playback outpacing the download
   ❍   Note: RTSP is presentation description format neutral                  ❒ Download mode and a limited streaming mode can
❒ RTSP sets up a stream to control delivery                                     be supported this way
❒ RTSP used to indicate server that will actually                                ❍   Rewind? Fast forward?
  stream the data and by what protocol                                           ❍   Can support full streaming if delays ok
   ❍   Ex. specify an RTP server to deliver the data
❒ Note: possibly 3 servers involved!

                                                  2: Application Layer   65                                                      2: Application Layer   66
Audio and Video on the                                                       More Application Level
Internet                                                                     Protocols?
❒ Quicktime                                                                  ❒ Telnet, Rlogin, SNMP (Simple Network
  ❍ HTTP streaming or RTP and RTSP                                             Management Protocol), Instant Messenger
❒ RealServer                                                                   (AIM), DHCP (BOOTP) , RPC, NFS,
   ❍ one control channel: RTSP over TCP                                        X,Finger, Whois,IDENT…………………..
   ❍ one data channel: PNA (Progressive Networks Audio)                      ❒ You now know how to investigate any of
     over UDP (?)
                                                                               these on your own
   ❍ Also can use RTSP to interleave data and control onto
     one TCP channel (common configuration)                                    ❍   RFCs for open protocols, Run apps and trace
                                                                                   them, Get client/server source,…
❒ WindowsMedia
  ❍ Similar to RealPlayer: control channel and data channel
                                                                             ❒ It would be a lot more fun to learn more
  ❍ Harder to find details of protocols (surprise, surprise)                   than application level protocols though,
  ❍ But formats are not compatible (surprise, surprise)                        right?
                                                 2: Application Layer   67                                            2: Application Layer   68

Roadmap                                                                      Outtakes
❒ We’ve looked at a bunch of application level
  protocols (HTTP, DNS, SMTP, POP, IMAP, NNTP,
  RTP, ..) – Lessons?
   ❍   Many were human readable – why?
   ❍   High level examples of protocol layering (SMTP, HTTP)
   ❍   Some ran on TCP, some on UDP, one on both – why?
   ❍   Used telnet/nslookup to interact with these protocols
       more directly
   ❍   Traced them (What went in clear text?!)
❒ Food-for-thought: Design a “Telephone Protocol”
❒ Next.. How would we implement an application level
  protocol ourselves?
   ❍   Socket API
❒ After that down to transport layer
                                                 2: Application Layer   69                                            2: Application Layer   70

                                                                             Real Time Control Protocol
telnet source
❒ We’ve been using telnet to examine various                                 ❒ Real-time conferencing of groups of any
  application protocols                                                        size within an internet.
❒ telnet basically opens a TCP connection to                                 ❒ Provides source identification, quality-of-
  the specified port                                                           service feedback from receivers to the
❒ Getting the telnet source and examining it                                   multicast group, synchronization of
  would be a good exercise                                                     different media streams

                                                 2: Application Layer   71                                            2: Application Layer   72
ReSerVation Protocol (RSVP)
❒ Host can use to request specific quality of service
  from the network for a specific flow of data
❒ Must be processed and honored at each router to
  be meaningful
   ❍   Works much like dynamic routing protocols; messages
       processed by applications at user level
   ❍   If a flow is “admitted” then resource reservation
       decisions will be made in form of packet classifier and
       schedulers that will prioritize the use of resources
❒ Cisco’s take on RSVP

                                                   2: Application Layer   73

Shared By: