Docstoc

Naming

Document Sample
Naming Powered By Docstoc
					CSS432 Applications
    Textbook Ch 9.1

 Professor: Munehiro Fukuda




        CSS432: Applications   1
          Applications
   Client – Server Paradigm
         Client: initiates contact with server         Client                     Server
         Server: provides client with a
          response                                     outlook                    mail/web
   Applications use their corresponding               browser                    server
    protocol
                                                  SMTP, HTTP, FTP              SMTP, HTTP, FTP
       Defined in RFC by Internet
        Engineering Task Force
        (http://www.ietf.org/)                           socket                     socket
       Implemented on top of TCP or UDP
                                                       TCP with                   TCP with
                                                       buffers,                   buffers,
Applications             Protoc   RFC      Port        variables                  variables
                         ol
                                                                    Internet
Name service             DNS      1035     53
Email                    SMTP     821      25
                         IMAP              143
Web                      HTTP     2616     80
File transfer            FTP      959      21
Remote terminal          telnet   854      23
access
                                           CSS432: Applications                          2
                                                                                 DNS

    Name Service
Name                                                       Value
• Variable length and mnemonic
                                  Name Server              • System-provided fixed value
• Location independent                                     • Location dependent


   Hosts
    cheltenham.cs.princeton.edu                         192.12.69.17
    192.12.69.17                               80:23:A8:33:5B:9F

   Files
    /usr/llp/tmp/foo                           (server, inode)
   Users
    Larry Peterson                             llp@cs.princeton.edu
                                               (UID + host IP)
                                 CSS432: Applications                             3
                                                                          DNS

        Name service (cont)
   lpr/a2ps commands
                                          User                1
                        2
                        uw1-320-p1           lpr –Puw1-320-p1 manual.ps

               Name                       lpr
               server                    program

                        216.186.75.218           216.186.75.218   4
                        3
                                          TCP

                                                 216.186.75.218   5

                                            IP

   Unix system call
       struct hostent h = gethostbyname( const char *hostname );
       *(struct in_addr *)*h->h_addr_list; // returns IP list

                                  CSS432: Applications                     4
                                                                                                      DNS
  Domain Naming System
    Hierarchy
                         edu             com          gov            mil         org       net   uk   fr


                 washington … mit    cisco … yahoo nasa …nsf     arpa …navy   acm … ieee


       bothell     cs      u


uw1-320-00   medusa homer      goodall



    Name
             uw1-320-00.bothell.washington.edu
             (Currently, uw1-320-00.uwb.edu)




                                          CSS432: Applications                                             5
                                                                                                          DNS

  Name Servers                                                                              administrative
                                                                                            unit
    Partition hierarchy into zones
     Network Information Center manages

                         edu             com          gov            mil          org       net     uk   fr


                 washington … mit    cisco … yahoo nasa …nsf     arpa …navy    acm … ieee


       bothell     cs      u Managed by UW C&C


uw1-320-00   medusa homer      goodall                                                 Root
                                                                                     name server

    Each zone implemented by
     two or more name servers                                           washington
                                                                       name server
                                                                                        …            Cisco
                                                                                                   name server



                                                              bothell      …       cs
                                                            name server         name server


                                          CSS432: Applications                                                6
                                                                 DNS

    Resource Records
   Each name server maintains a collection of resource
    records
         (Name, Value, Type, Class, TTL)
   Name/Value: not necessarily host names to IP addresses
   Type
       A: Value returns IP address
       NS: Value returns the corresponding name server’s name
       CNAME: Value returns aliases.
       MX: Value returns the domain name of this host’s mail
   Class: IN (Internet class)
   TTL: how long the resource record is valid


                             CSS432: Applications                 7
                                                         DNS
    Name Servers From Root to
    Bottom Level
   Find a root name server
       dig edu ns
            edu a.gtld-server.net NS IN
            a.gtld-server.net 192.5.6.30 A IN
   Find uwb.edu’s name servers
       dig @192.5.6.30 uwb.edu ns
            uwb.edu, dns2.uwb.edu NS IN
            uwb.edu, dns4.uwb.edu NS IN
            dns2.uwb.edu 69.91.206.28 A
            dns4.uwb.edu 69.91.206.29 A
   Find mercury.uwb.edu
       dig @69.91.206.28 metis.uwb.edu A
            metis.uwb.edu 69.91.206.17 A
                                  CSS432: Applications    8
                                                                                                  DNS

    Name Resolution
                                                                                                  Root
   Client                                                                            2
                                                                                                  name
      Initialized with its local name server’s                                                   server
        address
                                                                                              3
      appends its domain name to a given
        name before a submission.
                                                                                       4
                             1
                             cicada.cs.princeton.edu   Local        cicada.cs.princeton.edu Princeton
                    Client                             name                                   name
                                 192.12.69.60          server   cs.princeton.edu, 192.12.69.5 server
                                 8                                                        5
   Local server
      needs to know root at only one place
       (not each host).                                                                   6

      caches recent responses from                                                                CS
                                                                                                  name
       remote servers.                                                            7               server




                               CSS432: Applications                                                 9
                                                                                             Email

Electronic Mail (SMTP, MIME, IMAP)
   user agents (client)
      a.k.a. “mail reader”
      composing, editing, reading mail messages
      e.g., Eudora, Outlook, elm, Netscape Messenger, Thunderbird
   mail servers (server)
      outgoing, incoming messages stored on server


                       SMTP                                                   IMAP
               user                                                                  user
               agent                                                                 agent

                        mail server           mail server       mail server

               user      outgoing              outgoing          outgoing            user
               agent     mail queue            mail queue        mail queue          agent


                         User mailbox                            User mailbox


               user                                                                  user
               agent
                                SMTP/TCP                    SMTP/TCP                 agent
                                        CSS432: Applications                                 10
                                                                     Email

    SMTP
   TCP port 25 – Persistent connection
   Email sending protocol
      From User agent to his/her local mail server
      From a local to an intermediate/destination mail server (direct
       transfer)
      From an intermediate to a destination server (relay)
   Three phases of transfer
      Handshaking: HELO
      Transfer of messages: MAIL FROM, RCPT TO, and DATA
      Closure: QUIT
   Command/response interaction
      Commands: ASCII text
      Response: status code and phrase


                             CSS432: Applications                        11
                                                                          Email

    SMTP Example
[mfukuda@uw1-320-20]$ telnet smtp.washington.edu 25
Trying 140.142.33.9…
Connected to smpt.washington.edu (140.142.33.9).
Escape character is „^]‟.
220 smtp.washington.edu ESMTP Sendmail 8.12.11+UW04.02/8.12.11+UW04.02; Sat, 21
Feb 2004 20:00:56 -0800
HELO mfukuda
250 smtp.washington.edu Hello UW1-320-20.bothell.washington.edu [216.186.75.195]
, pleased to meet you
MAIL FROM:mfukuda@u.washington.edu
250 2.1.0 <mfukuda@u.washington.edu>... Sender ok
RCPT TO:MunehiroFukuda@yahoo.net
250 2.1.5 MunehiroFukuda@yahoo.net... Recipient ok
DATA
354 Enter mail, end with “.” on a line by iteself
Blah blah blah…
…etc. etc. etc.
.
250 2.0.0 i1M40uc3013699 Message accepted fro delivery
QUIT
221 2.0.0 smtp.washington.edu closing connection
Connection closed by foreign host.
[mfukuda@uw1-320-20]$ _

                                CSS432: Applications                       12
                                                                      Email

RFC 822 Message Format
                                                        Header
                                           To:
   Header                                 Subject:
                                           Date:
      A series of line<crlf>s             From:
                                           Received:
   Body                                               A blank line
      ASCII characters only.
   Then, what about
    multimedia information?
                                                          Body




                          CSS432: Applications                        13
                                                                                             Email

         MIME
      MIME: multimedia mail extension, RFC 2045, 2056
      Additional lines in msg header declare MIME content type
                           MIME-Version: 1.0
                           Content-Type: multipart/mixed; boundary=“-------417CA6E2DE4ABCAFBC5”
                           From: mfukuda@u.washington.edu
                           To: css432a_au04@u.washington.edu Carry more than one data type
                           Subject: promised material
                           Date: Mon, 01 Apr 2004 12:34:56 -0800

                           -------417CA6E2DE4ABCAFBC5
                           Content-Type: text/plain; charset=us-ascii    Type of the data
                           Content-Transfer-Encoding: 7bit
                                                               How the data is encoded
                           Dear CSS432 students,
                           Here is the jpeg image and draft report I promised.
                           -- Fukuda
Definitions for content types                                      3bytes = 3 * 8bits = 24bits = 4 *
                           -------417CA6E2DE4ABCAFBC5             6bit-chars, each mapped onto one
                           Content-Type: image/jpeg                       of 64 ASCII chars
                           Content-Transfer-Encoding: base64              (A~Z,a~z,0~9,+,/)
                           … Unreadable encoding of a jpeg figure

                           -------417CA6E2DE4ABCAFBC5

                           Content-Type: application/postscript; name=“draft.ps”
                           Content-Transfer-Encoding: 7bit

                           … Readable encoding of a postscript document
                                       CSS432: Applications                                   14
                                                                                            Email

Mail Reader - IMAP
                                                TCP to 143
                              Connection established


                                    Server greeting
                     Server: OK                  Server: PREAUTH              Server: BYE

         Not authenticated
Client LOGOUT   Client: LOGIN or AUTHENTICATE


                            Authenticated                     Client: CLOSE
                    Client LOGOUT      Client SELECT or EXAMINE

                                     Selected         Client: FETCH, STORE,
                                                      DELETE, EXPUNGE
                                            Client LOGOUT

                                         Logout

                          Both sides close the connection
                                    CSS432: Applications                                    15
                                                                                               FTP

File Transfer Protocol
                FTP
                       FTP               TCP port 21 for control (persistent)    FTP
                user
                       client                                                   server
             interface                   TCP port 20 for data transfer
                                         (not persistent)

                            local                                                   remote
                             f ile                                                    f ile
                           system                                                   system




   Transfer file to/from remote host
   Client/server model
      Client: initiates a control TCP connection to a server on port 21.
      Client: sends a user ID and password as part of FTP commands.
      Server: authorizes the client
      Client: opens a data TCP connection to a server on port 20.
      Server: maintains state: current directory, earlier authentication.
   A ftp client is allowed to initiate a transfer between two ftp servers.
                                     CSS432: Applications                                     16
                                                                                     FTP

    FTP Commands
   <CRLF> delimits each command (and reply).
   Commands consist of four uppercase ASCII characters, some with
    optional arguments:
       USER username : sends a user identification to server.
       PASS password : sends the user password to the server.
       PASV: requests the server to send back its IP and port on which it listens
        to a data TCP connection from the user.
       LIST : ask the server to send back its current directory contents through
        the data connection.
       RETR filename : gets a file from the current remote directory.
       STOR filename : stores a file into the current remote directory.
   Each command is followed by a reply:
       331 Username OK, password required
       125 Data connection already open; transfer starting
       425 Can't open data connection
       452 Error writing file


                                  CSS432: Applications                          17
                                                                        FTP

   FTP Example
[mfukuda@uw1-320-20]$ telnet ftp.tripod.com 21
Trying 209.202.240.80…
Connected to ftp.tripod.com (209.202.240.80).
Escape character is „^]‟.
220 Welcome to Tripod FTP.
USER css432
331 Username set to css432. Now enter your password.
PASS ********
230 User „css432‟ logged on.
LIST
425 Can‟t open data connection for LIST.
PASV
227 Entering Passiv Mode (209,202,240,80,195,210)
// Open another xterm and telnet 209.202.240.80 50130 (=195*256+210)
// Trying 209.202.240.80…
// Connected to ftp.tripod.com (209.202.240.80).
// Escape character is „^]‟.
// drwxr-xr-x   1 css432   Tripod          0 Sep 15 21:22 cgi-bin
// -rw-r--r--   1 css432   Tripod      26169 Sep 16 18:28 ttcp.c
// -rw-r--r--   1 css432   Tripod       8236 Sep 15 21:22 index.htm
// drwxr-xr-x   1 css432   Tripod          0 Sep 16 18:33 project
// Connection closed by foreign host.
LIST
150 Opening ASCII mode data connection for LIST.
226 Transfer complete.
QUIT
221 Goodbye
Connection closed by foreign host.
[mfukuda@uw1-320-20]$ _
                                      CSS432: Applications             18
FTP passive mode
                             TCP port 21 for control (persistent)
                         Client request: connect( ), USER, PASS, LIST
 FTP                                                                           FTP
           Server Reply: 220 server ready, 331 send password, 230 login ok,
 client                                                                       server
           425 connection timeout

                            TCP port 20 for data transfer (one time)




                             TCP port 21 for control (persistent)
                    Client request: connect( ), USER, PASS, PASV, LIST
 FTP                                                                           FTP
          Server Reply: 220 server ready, 331 send password, 230 login ok,
 client                                                                       server
          227 Entering Passive Mode (140,142,12,173,195,54), 226 complete
            TCP port 195*256 + 54 = 49974 for data transfer (one time)

                                          data


                                 CSS432: Applications                                  19
     FTP proxy command
(3’) 227 Entering Passive Mode
(140,142,12,173,195,54)                        FTP
                                               client

                  (1) USER, PASS, SYST                     (2) USER, PASS, SYST
                (3) TYPE I, PASV
                                                          (4) TYPE I, PORT (140,142,12,173,195,54),
              (5) RETR file                               STOR file



                                 ftp> open server1                …(1)
                                 ftp> proxy open server2          …(2)
                                 ftp> proxy get file              …(3)~(5)
      FTP                                                                               FTP
     Server                                                                            Server
       1            TCP port 195*256 + 54 = 49974 for data transfer (one time)           2

                                               data



                                           CSS432: Applications                                   20
                                                                        Web

World Wide Web - HTTP
            TCP port 80 (one-time connection)       HTTP
 Netscape
                       HTTP request                 server
                        HTTP response




                                                        /public_html



  IE


                Hypertext Transfer Protocol: one-
                 time TCP port 80 connection for
                 each response/reply
                client: Browser requests, receives,
                 and displays Web objects
                server: Web server sends objects in
                 response to the request
                             CSS432: Applications                      21
                                                                                  Web

    HTTP Commands
   Client
      Initiates a TCP connection to a server on port 80.
      Sends an HTTP request over this TCP connection
            OPTIONS:          request information about available options
            GET:              retrieve document identified in URL
            HEAD: retrieve document metainformation in URL
            POST: give inofrmation (annotation, servlet invocation) to server
            PUT:              store document under specified URL
            DELETE, TRACE, CONNECT
      Receives an HTTP response
   Server
      Accepts a TCP connection from a client on port 80.
      Receives an HTTP request
      Returns an HTTP response and disconnects the connection.
            1xx: Informational
            2xx: success
            3xx: Redirection
            4xx: Client error
            5xx: Server error
                                       CSS432: Applications                      22
                                                                           Web

  HTTP Example

[mfukuda@uw1-320-20]$ telnet www.washington.edu 80
Trying 140.142.11.167...
Connected to www.washington.edu (140.142.11.167).
Escape character is '^]'.
GET
HTTP/1.1 200 OK
Date: Sun, 22 Feb 2004 09:06:17 GMT
Server: Apache/1.3.28 (Unix) PHP/4.3.3 mod_perl/1.29 mod_backhand/1.2.2
Connection: close
Content-type: text/html

<!doctype html public “-//W3C/DTD HTML 4.0 Transitional//EN”>
<html><head> … </body></html>

Connection closed by foreign host.
[mfukuda@uw1-320-20]$ _




                              CSS432: Applications                        23
                                                                                  Web

Performance Improvement in Web
   Persistent TCP connections
       Advantages
            Eliminate the connection setup overhead
            Eliminate repetitions of slow start phase
       Disadvantages
            Need to know the time period of connection – server times out the
             connection.
   Caching
       Recently access pages can be cached at browsers and ISPs
       Advantages
            Reduce the number of HTTP accesses
       Disadvantages
            Need to purge out-of-date version of pages – use expiration date
             and cache directives to cache or not to cache a given page



                                  CSS432: Applications                           24
   Reviews
     RFC
     Naming   service: DNS
     Email: SMTP, MIME, and IMAP
     File transfer: FTP
     WWW: HTTP
   Exercises: try the following examples by yourself.
     Slide p8 (DNS)
     Slide p12 (SMTP)
     Slide p18 (FTP)
     Slide p21 (HTTP)



                         CSS432: Applications       25

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:11
posted:6/6/2011
language:English
pages:25