Document Sample
HTML Powered By Docstoc
					CS352- Application
   Level Protocols

       CS 352
  Rutgers University
Application-Level Protocols
    HTTP (web)
    FTP (file transfer)
    SMTP (mail)
    DNS (name lookup)
    Not really applications by OSI standards, but
     higher than level 4.
         Level 5 or 6?

CS352 Fall 2005                                      2
    Representation at different levels
    ASCII protocols
         Text-based
         How Messages are structured
         Request/response nature of these protocols
    Name Lookup
         Division of concerns (e.g. zones)
         Name to number mapping
         Reverse map
    Caching
CS352 Fall 2005                                        3
Application-Level overview
    Layer-4 provides a byte-stream
         Infinite, ordered stream of 8-bit bytes
    HTTP, SMTP, FTP use text messages built on layer-
     4 byte streams
         “simple ASCII protocols”
    Messages are a sequence of text-based commands
         Like Java string, but each character is in 7 or 8-bit ASCII,
          not 16-bit Unicode
         Control and data typically separated by a “return” (e.g.,
          control/line feed pair of bytes)

CS352 Fall 2005                                                          4
Representation by Level
                  Host A                                      Host B
    ASCII Text Strings     Layer 7
                                     “GET index.html”         Layer 7

                           Layer 6                            Layer 6

                           Layer 5                            Layer 5

            Byte Stream    Layer 4   71,69,84,32,105,110 …    Layer 4

      Discrete Packets     Layer 3   71,69,84    32,105,110   Layer 3

      Discrete Packets     Layer 2   71,69,84    32,105,110   Layer 2

         Bit Sequence                1000111, 1000101, …
                           Layer 1                            Layer 1
CS352 Fall 2005                                                         5
                                      Physical Medium
HTTP (Hyper Text
Transfer Protocol)
    Application Protocol for browsers, web-servers
    Simple ASCII protocol
    Additionally, HTTP has a notion of invoking
     “methods” on a named resources
    Resource can be anything named in a Uniform
     Resource Locator (URL)
         Most often, an HTML file (but doesn’t have to be!)
         sometimes it’s the output of a program

CS352 Fall 2005                                                7
URL Naming
    What does a URL refer to?
         HTML files?
         PDF documents
         Runnable programs (scripts)
         Java objects + methods?

CS352 Fall 2005                         8
Path of an HTTP request
                  Client                DNS Server


CS352 Fall 2005
                      Client – Server Architecture            9
HTTP Protocol Summary

    Client connects to server
    Client sends HTTP message request
         With GET, POST or HEAD methods
    Server sends HTTP message as a response

CS352 Fall 2005                                10
HTTP Messages

1.       initial line
             method or response code + version
2.       zero or more header lines
     •        Information about message content
3.       a blank line
4.       optional message body
     •        a file, or client input, or server output
CS352 Fall 2005                                           11
HTTP request message: general format

CS352 Fall 2005                        12
Common Response codes

2XX success codes
  200 OK
3XX redirection codes
  301 moved
4XX client errors
  404 not found
5XX server errors
  502 service overloaded
CS352 Fall 2005            13
Example Client Message

GET /newacct.html HTTP/1.0
User-Agent: Mozilla-linux/4.7
 (blank line here)

CS352 Fall 2005                 14
Example Server Response

HTTP/1.0 404 Not Found
(blank line here)

CS352 Fall 2005           15
Example Client Message

                  GET /newaccount.html HTTP/1.0
                  User-Agent: Mozilla-linux/4.7
                   (blank line here)

CS352 Fall 2005                                   16
Example Server Response
 HTTP/1.1 200 OK                         response code
 Date: Sun, 17 Sep 2000 23:12:51 GMT
 Server: Apache/1.3.3 (Unix)
 Last-Modified: Wed, 30 Aug 2000 02:12:01 GMT
 ETag: "1ac6-9c1-39ac6d71"
 Accept-Ranges: bytes
 Content-Length: 2497
 Connection: close
 Content-Type: text/html

 <html>   Blank line separating header/body
 <title>Building new accounts</title>
 <img src="images/sample.jpg">
CS352 Fall 2005                                           17
MIME Headers
    Responses from servers to complete GET requests contain MIME
    MIME = Multipurpose Internet Mail Extensions
    MIME allows media types other than simple ASCII text to be encoded
     into a message
    The “Content-Type:” line in the MIME header indicates what type of
     data (type/subtype) is contained in the message
         Examples:
             Content-Type: text/html
             Content-Type: Image/GIF

CS352 Fall 2005                                                           18
POST Method

    What a browser submits in when a form is
     sent to the server
    Stylized way of passing form data
    2 ways to encode form data:
         “Fat URL” via GET
             for older systems that didn’t support POST
         POST method

CS352 Fall 2005                                            19
POST Requests
    Most commonly used by browsers to send large “form”
     responses to servers
    Forms are web pages that contain fields that the browser user
     can edit or change

CS352 Fall 2005                                                      20
POST Requests                         (cont’d)

                  POST /index.html HTTP/1.1


CS352 Fall 2005                                                21
Encoding form data with POST

    General form is:
         &variable1=value1&variable2=value2…
    Spaces changed to “+”
    Other characters encoded(I.e. escaped) via

CS352 Fall 2005                                   22
Example: Client POST request
POST /cgi-bin/rats.cgi HTTP/1.0
Referer: http://nes:8192/cgi-bin/rats.cgi
Connection: Keep-Alive
User-Agent: Mozilla/4.73 [en] (X11; U; Linux 2.2.12-20 i686)
Host: nes:8192
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
   image/png, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Content-type: application/x-www-form-urlencoded
Content-length: 93

CS352 Fall 2005                                                23
       HTTP in context
                     Client                                          Server
                    W.X.Y.Z                                        A.B.C.D:80
                                                         ss= serverSocket(port 80);
          cc = socket(A.B.C.D, 80);
                                                         sc = ss.accept;
          out.print(“GET /newaccount.html http/1.0)”);

                                                         read input from socket
                                                         parse header
                                                         read data
                                                         find resource
                                                         build response header
                                                         send resource
                                                         write to socket
                   read header
                   read input
       CS352   Fall 2005                                                          24
                   display HTML
Why loading pages seems
    Potential problems
         Client is overloaded
         DNS takes a long time
         Network overloaded
             Dropped packets => TCP windows
         Large pages
         Server is overloaded
    Solutions: proxy servers, “Flow” servers

CS352 Fall 2005                                 25
  Caching Proxies

                               GET foo.html

GET foo.html                                      Web


  CS352 Fall 2005                                          26
“Flow” Approach

Re-write URLs in web pages
Point URL to “nearest” server for the data
         HTML from main server
         Images, sound, animations point to closer servers
         Requires knowledge of network topology!
         Used by Akamai

CS352 Fall 2005                                           27
Flow Approach (cont)




CS352 Fall 2005                    Client          28
HTTP 1.0
    Simple protocol
    Client issues 1 operation per TCP connection
             Connnect(); Get index.html ; close()
             Connect(); Get image01.html; close () …
    How long does it take to retrieve a whole
         Concurrency by using multiple connections can
          speed this up, but…

CS352 Fall 2005                                           29
HTTP 1.1
    Client keeps connection open to server
    Makes multiple requests per connection
         Get foo.html, get image02.gif ….
         Length of time socket stays up?
    # of open connections on server?
         1.0 allows server to close connections faster
         Not clear if 1.1 is better from the server’s

CS352 Fall 2005                                           30
Web Server Scripting
    A URL may refer to a static web page or a server-side script
      Script is just a program that is run in response to a HTTP request

    Server-side scripts produce web page content as output
       This is what a” dynamic” web page is
    Standard argument passing convention between the web server
     and the program: Common Gateway Interface (CGI)
    CGI scripts may be written in any language (Perl Python, sh,
     csh, Java.)
    CGI scripts are commonly used to produce responses to Web
     page form input from client browsers

CS352 Fall 2005                                                         31
Client Side Embedded Web Page
Scripts and Programs
    Web pages may also contain scripts or programs within the
     HTML code to be run on the client
    Unlike server scripts, web page scripts and programs run on the
     browser machine’s processor, not on the server’s processor
    Examples:
      Javascript

      VBScript

      Java applets

    Example non-trivial program:
      Takes Rutgers campus bus positions as input

      Client side plots different routes on a map

CS352 Fall 2005                                                        32
HTML (Hyper Text Markup
    The text is surrounded by tags which
     describe the formatting and layout of the text
     on the browser window
    Allows for data input also – using FORMS
    Documentations/Tutorials
    View source code of any page you visit in the
CS352 Fall 2005                                       33
SMTP (Simple Mail
Transfer Protocol)
    Email is transferred from one host to another using the
      Simple Mail Transfer Protocol (SMTP)
    Like HTTP, SMTP has a similar ASCII command and reply set to
     transfer messages between machines
      Think of a set of request strings and reply strings sent over the
    SMTP transfers occur between:
      sending host and dedicated email server
      dedicated email servers
    They do not occur between receiving hosts and email servers
      These are POP or IMAP protocols

CS352 Fall 2005                                                        35
SMTP Protocol
                      220 SMTP service ready
                     250 Hello, pleased to meet you
                     250 <>… Sender ok
 RCPT TO: <>
                     250 <>… Recipient ok
                     354 Enter mail, end with “.” on a line by itself
 Subject: Please fetch me a pail of water

  Jill, I’m not feeling up to hiking today. Will you please fetch me a pail of water?
                        250 message accepted
CS352 Fall 2005                                                                         36
                        221 closing connection
SMTP Direct Mode
     Direct mode:
         Sending email from to
       SMTP Messages
                  town.                           Email
                   com                            Server
                              SMTP Responses   for first finds IP address for email server using
  DNS request (type=MS) opens TCP connection on SMTP port 25 and
  initiates SMTP protocol to transfer email message
CS352 Fall 2005                                                     37
SMTP Relay Mode
     Relay mode:
         Sending email from to
                  town.         Email           Email
                   com          Server          Server

                              for   for is configured to send all email messages through a
  local email server
  The local email server buffers email messages and forwards
  them to other email servers
CS352 Fall 2005                                                 38
Retrieving Email from a
    Users retrieve email from their assigned
     email server
    Email retrieval does NOT use the SMTP
    3 common protocols for retrieval
         Email server adds received messages to a file
          stored on a shared file system (e.g., /var/mail/jill)
         Email downloaded via the POP3 protocol
         Email accessed via the IMAP protocol

CS352 Fall 2005                                                   39
FTP (File Transfer
        Protocol )
    Download/upload files between a client and server
         One of the first Internet protocols
    More complex than SMTP
         ASCII control connection
         Separate data connection performs presentation functions
           E.g, formats and converts data depending on type

    Sends passwords in plain ASCII text
         Eavesdropper can recover passwords
         Fatal flaw, turned off at a lot of sites
         Replaced with scp, sftp instead

CS352 Fall 2005                                                      41
  FTP Client/Server
                     Client Program

 User                    Interface         Server Program

                     Client protocol       Server protocol
                       interpreter           interpreter

client file         Client data transfer      Server data
  system                 function          Transfer function
  CS352 Fall 2005                                       server file

Sample FTP Command Set

LIST              list directory
GET               get a file (download)
MGET              get multiple files
STOR              store (upload) a file
TYPE              set the data transfer type
USER              set the username
QUIT              End the session

CS352 Fall 2005                                43
Sample FTP Replies

200    Command OK
214    Help Message
331    Username OK, password required
425    Can’t open data connection
452 Error writing file
500 Syntax error (unrecognized command)
502    Unimplemented MODE

CS352 Fall 2005                           44
Sample FTP Session
   Connected to
   220 FTP server (Version wu-2.6.2(9) Thu Feb 7 13:31:16 EST
   Name ( anonymous
   331 Guest login ok, send your complete e-mail address as password.
   230 Guest login ok, access restrictions apply.
   Remote system type is UNIX.
   ftp> cd /pub/redhat/linux/9/en/os/i386/images
   ftp> get bootdisk.img
   local: bootdisk.img remote: bootdisk.img
   227 Entering Passive Mode (165,230,246,3,149,67)
   150 Opening BINARY mode data connection for bootdisk.img (1474560 bytes).
   226 Transfer complete.
   1474560 bytes received in 00:01 (767.79 KB/s)
CS352 Fall 2005                                                                 45
   ftp> quit
Domain Name System
    Domain Name System (DNS)
    Problem statement:
         Average brain can easily remember 7 digits
         On average, IP addresses have 12 digits
         We need an easier way to remember IP addresses
    Solution:
         Use alphanumeric names to refer to hosts
         Add a distributed, hierarchical protocol (called DNS) to map
          between alphanumeric host names and binary IP
         We call this Address Resolution

CS352 Fall 2005                                                     47
Domain Name Hierarchy

                  com   edu            net      gov    int   mil   org   ae   ...   us   ...   zw

         yahoo    cnn   rutgers          yale

                                                                         Country Domains

                                  cs             eng

                            Generic Domains
CS352 Fall 2005                                                                                     48
Domain Name Management
    The domain name hierarchy is divided into zones
      Zone: A separate portion of the DNS hierarchy

      No two zones should overlap

    Name servers
      In each zone, there is a primary name server and one
       or more secondary name servers
      Name servers contain two kinds of address mappings:
             Authoritative mappings: For hosts within the zone
             Cached mappings: For previously requested mappings
              to hosts not in the zone

CS352 Fall 2005                                                    49
                  Domain Name Hierarchy

                  com   edu            net      gov    int   mil   org   ae   ...   us   ...   zw

         yahoo    cnn   rutgers          yale

                                  cs             eng

CS352 Fall 2005                                                                                     50
DNS Protocol
    When client wants to know an IP address for a host
      Client sends a DNS query to the primary name server
       in its zone
      If name server contains the mapping, it returns the IP
       address to the client
      Otherwise, the name server forwards the request to
       the root name server
      The request works its way down the tree toward the
       host until it reaches a name server with the correct

CS352 Fall 2005                                             51
DNS Protocol


Scenario:                    1                        8 tries to
resolve an IP address for
                             2                        7
using a recursive query

                             3                        6


                             4                        5

CS352 Fall 2005                                           52
DNS Protocol
Another Example


Scenario:                            1                 2 tries to
                                 3   4
resolve an IP address for
using an iterative query
                             5                                 6


                             7                                 8

CS352 Fall 2005                                                    53
DNS Packets
    Clients communicate with DNS servers using either TCP or UDP
     on port 53

         0                                           15 16                                 31

                   Transaction Identification                              Flags
                     Number of Questions                            Number of Answer RRs
                  Number of Authoritative RRs                   Number of Additional RRs
                                                (variable length)

                                     Answer Resource Records
                                                (variable length)

                                  Authoritative Resource Records
                                                (variable length)

                                    Additional Resource Records
CS352 Fall 2005                                 (variable length)                               54
DNS Packet Fields
    Transaction Identification: Random number used to match client queries with
     name server responses
    Flags:

                   1         4         1   1   1   1       3             4

                   QR      opcode     AA TC RD RA       (unused)        rcode

         QR: 0=Query, 1=Response
         opcode: 0=standard query, 1=inverse query, 2=status request
         AA: Authoritative answer
         TC: Truncated DNS packet
         RD: Recursion desired
         RA: Recursion available
         rcode: Return code. 0=no error, 3=name error

CS352 Fall 2005                                                                 55
DNS Packet Fields                              (cont’d)

    Transaction Identification: Random number used to match client queries with
     name server responses
    Number of Questions: Number of DNS queries in the packet
         Not supported in many DNS servers!
    Number of Answer RRs: Number of non-authoritative DNS responses in the
    Number of Authoritative RRs: Number of authoritative DNS responses in the
    Number of Additional RRs: Number of other DNS responses in the packet
     (usually contains other DNS servers in domain)
    Questions & Answers: Variable length fields to store DNS queries and DNS
     server responses

CS352 Fall 2005                                                                  56
DNS Queries
          DNS Packet Question field contains a sequence of queries:

                                  Query name
                                  (variable length)

                    Query Type                        Query Class

  Query Name: Contains an encoded form of the name for which we are
  seeking an IP address
  Query Type: 1=IP address, 2=name server, 12=pointer record, etc.
  Query Class: 1=Internet address

CS352 Fall 2005                                                       57
Encoding Query Names
    DNS queries must be encoded in a special
         Divide host address into segments whenever a
          period appears
         For each segment, store a byte representing the
          length of the segment followed by the letters in
          the segment
         Store a zero byte at the end of the query

CS352 Fall 2005                                              58
Encoding Query Names


                                remus     rutgers       edu

                  5   r   e m u s 7   r   u   t   g e   r   s 3 e d u 0

CS352 Fall 2005                                                                        59
      NOTE: These count fields are not the ASCII characters “5”, “7”, “3” and “0”!!!
DNS Responses
       DNS Packet RR fields contain a sequence of resource records:

                                         Domain name
                                         (variable length)

                         Type                                       Class
                  Resource data length                       Resource Data
                                                              (variable length)

      Domain Name: Encoded domain name for query
      Type & Class: Same as for query (1=IP; 1=Internet)
      Time-to-Live: How long this responses will be useful
      Resource Data: Contains the four-byte IP address

CS352 Fall 2005                                                                   60
DNS Caching
    Going to the root server and then down the
     tree every time we need to resolve an
     address is inefficient
    Introduce address caching at name servers
         Store host-to-IP-address mappings from recently
          requested host names at name server
         When the same address is requested later, use
          the cached version at the local name server
          instead of recursively querying other name
          servers again
CS352 Fall 2005                                             61
 DNS Caching


First time:               1                        8   Later: tries has
to resolve an IP                                       been cached at ns-lcsr.
address for
                          2                        7                             (and    1                       2
using a recursive query                                any other host that
                           uses ns-lcsr) will
                                                       receive the cached IP
                          3                        6   address for

                          4                        5

 CS352 Fall 2005                                                                                             62
Interface to DNS
The “dig” and “nslookup” programs provide an
  interface to DNS


CS352 Fall 2005                                63
Bootstrapping DNS
    How does a host contact the name server if
     all it has is the name and no IP address?
    IP address of at least 1 nameserver must be
     given a priori
             or with another protocol (DHCP, bootp)

         File /etc/resolv.conf in unix

         Start -> settings-> control panel-> network ->TCP/IP ->
          properties   in windows

CS352 Fall 2005                                                     64
Default Domains
    When Host issues a query to DNS server,
     can add the default domain.
    Default domain added to end of ever DNS
         E.g.: default domain is
         Machine “eden” automatically extended to

CS352 Fall 2005                                      65
Reverse DNS
    We have the IP address, but want the name
    Use DNS to perform the lookup function
    Special domain, “” domain for
     reverse lookups
         Internet address is reversed in the lookup
         E.g. == remus
         Follows least-> most specific convention

CS352 Fall 2005                                        66

Shared By: