1 / 42

CSS432 Applications Textbook Ch 9.1 and 9.3.1

This article explains the implementation and hierarchy of the DNS (Domain Name System), which is a critical service for translating host names into IP addresses. Learn about zones, name servers, and how the DNS hierarchy is structured.

stevene
Télécharger la présentation

CSS432 Applications Textbook Ch 9.1 and 9.3.1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSS432 ApplicationsTextbook Ch 9.1 and 9.3.1 Prof. Athirai Irissappane http://courses.washington.edu/css432/athirai/ athirai@uw.edu CSS432: Applications

  2. mail/web server outlook browser TCP with buffers, variables TCP with buffers, variables Applications Client Server • Client – Server Paradigm • Client: initiates contact with server • Server: provides client with a response • Applications use their corresponding protocol • Defined in RFC by Internet Engineering Task Force (http://www.ietf.org/) • Implemented on top of TCP or UDP SMTP, HTTP, FTP SMTP, HTTP, FTP socket socket Internet CSS432: Applications

  3. DNS • Domain Name System (DNS)—not an application that users normally invoke explicitly, but rather a service that almost all other applications depend upon. • This is because the name service is used to translate host names into host addresses; the existence of such an application allows the users of other applications to refer to remote hosts by name rather than by address.

  4. Name Service (DNS) • While perfectly suited for processing by routers, addresses are not exactly user-friendly. • It is for this reason that a unique name is also typically assigned to each host in a network. • Host names differ from host addresses in two important ways. • First, they are usually of variable length and mnemonic, thereby making them easier for humans to remember. • Second, names typically contain no information that helps the network locate (route packets toward) the host. Addresses can have routing information embedded in them

  5. Name Service (DNS) • We first introduce some basic terminology. • First, a name space defines the set of possible names. • A name space can be either flat (names are not divisible into components), or it can be hierarchical (Unix file names are an obvious example). • Second, the naming system maintains a collection of bindings of names to values. The value can be anything we want the naming system to return when presented with a name; in many cases it is an address. • Finally, a resolution mechanism is a procedure that, when invoked with a name, returns the corresponding value. A name server is a specific implementation of a resolution mechanism that is available on a network and that can be queried by sending it a message.

  6. Name Server DNS Name Service Value • System-provided fixed value • Location dependent Name • Variable length and mnemonic • Location independent • 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

  7. DNS • When user presents a host name to an application • This applications calls the DNS to translate name to address • The application then opens a connection to the host • The lpr command is used to submit print jobs in Linux • lpr –Puw1-320-p1 manual.ps • Sends manual.ps to printer at uw1-320-p1

  8. User 1 2 lpr –Puw1-320-p1 manual.ps uw1-320-p1 Name lpr server program 4 216.186.75.218 216.186.75.218 3 TCP 216.186.75.218 5 IP DNS Name service (cont) • lpr/a2ps commands • Unix system call • struct hostent h = gethostbyname( const char *hostname ); • *(struct in_addr *)*h->h_addr_list; // returns IP list CSS432: Applications

  9. DNS • Uses a hierarchical name space • the DNS hierarchy can be visualized as a tree, where each node in the tree corresponds to a domain, and the leaves in the tree correspond to the hosts being named • DNS names are processed from right to left and use periods as the separator

  10. edu com gov mil org net uk fr … … … … … washington mit cisco yahoo nasa nsf arpa navy acm ieee bothell cs u homer goodall uw1-320-00 medusa DNS Domain Naming System • Hierarchy • Name uw1-320-00.bothell.washington.edu (Currently, uw1-320-00.uwb.edu) CSS432: Applications

  11. Hierarchy implementation • The complete domain name hierarchy exists only in the abstract. • We now turn our attention to the question of how this hierarchy is actually implemented. • The first step is to partition the hierarchy into subtrees called zones. • Each zone can be thought of as corresponding to some administrative authority that is responsible for that portion of the hierarchy. • For example, the top level of the hierarchy forms a zone that is managed by the Internet Corporation for Assigned Names and Numbers (ICANN). • Each zone implemented by two or more name servers • Each name server, in turn is a program that can be accessed over the internet

  12. administrative unit edu com gov mil org net uk fr … … … … … washington mit cisco yahoo nasa nsf arpa navy acm ieee bothell cs u Root name server homer goodall uw1-320-00 medusa … washington Cisco name server name server … bothell cs name server name server DNS Name Servers Network Information Center manages • Partition hierarchy into zones Managed by UW C&C • Each zone implemented by two or more name servers • Find the root server • Find Washington server • Find cs server • Retrieve the ip address of lab systems CSS432: Applications

  13. 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, canonical name for hosts • MX: Value returns the domain name of this host’s which runs a mail server • Class: IN (Internet class) • TTL: how long the resource record is valid (servers can cache records) CSS432: Applications

  14. Root 2 name server cicada.cs.princeton.edu 3 princeton.edu, 128.196.128.233 4 1 Local Princeton cicada.cs.princeton.edu cicada.cs.princeton.edu name name Client server server cs.princeton.edu, 192.12.69.5 192.12.69.60 8 5 cicada.cs.princeton.edu 192.12.69.60 cicada.cs.princeton.edu, 6 CS name server 7 DNS Name Resolution • Client • Initialized with its local name server’s address • appends its domain name to a given name before a submission. • Local server • needs to know root at only one place (not each host). • caches recent responses from remote servers. CSS432: Applications

  15. DNS • (1) Every client knows its local name server’s address • Every local name server knows one or more root servers • (2)The local name server then queries the remote root servers on the client’s behalf • (3) the root server replies back with the closest matching name record which can be a NS • (4) the princeton NS is queried replies back with NS of CS • (5) the CS NS is queried for a specific record and replies with IP CSS432: Applications

  16. DNS Name Servers From Root to Bottom Level • Use dig command to query Name servers (dig @server options name type ..) • dig edu ns (find a name server for name=edu) • 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 (find NS with name=uwb.edu) • 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 metis.uwb.edu • dig @69.91.206.28 metis.uwb.edu A • metis.uwb.edu 69.91.206.17 A

  17. mail server mail server mail server outgoing mail queue outgoing mail queue outgoing mail queue user agent user agent user agent user agent user agent user agent User mailbox User mailbox SMTP/TCP SMTP/TCP 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 CSS432: Applications

  18. In the early days of the Internet, host had the mailbox resided, and the mail reader they invoked was a local application program that extracted messages from the file system. • Today, of course, mailbox resides at the server, users remotely access their mailbox from their laptop or smartphone using yet another protocol, such as the Post Office Protocol (POP) or the Internet Message Access Protocol (IMAP); • in many cases the mail traverses one or more mail gateways on its route from the sender’s host to the receiver’s host. • SMTP is sometimes called a "Push" protocol--it pushes the message to its next destination and assumes that a user at the destination will "signon" and read their mail directly– POP/IMAP is a "Pull" protocol, in that the user's mail client pulls down the message to their work station

  19. POP – downloads mails to local storage, IMAP – maintains copy of mails in the server even after download • Both are PULL protocols: Poll the server for new mails periodically or when active • Why pull? If push, Host must stay up to receive mail • IMAP has notifications feature: Notify receiver for new mails then pulls the actual mails • Nowadays, the protocol used is ActiveSync which supports Push operations • Mails notified when received and can be downloaded instantly

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

  21. Email SMTP Example [css432@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 css432@uw.edu 250 smtp.washington.edu Hello UW1-320-20.bothell.washington.edu [216.186.75.195] , pleased to meet you MAIL FROM:athirai@uw.edu 250 2.1.0 <athirai@uw.edu>... Sender ok RCPT TO:athirai.a@gmail.com 250 2.1.5 athirai.a@gmail.com... Recipient ok DATA 354 Enter mail, end with “.” on a line by itself Blah blah blah… …etc. etc. etc. . 250 2.0.0 i1M40uc3013699 Message accepted from delivery QUIT 221 2.0.0 smtp.washington.edu closing connection Connection closed by foreign host. [css432@uw1-320-20]$ _ CSS432: Applications

  22. Header To: Subject: Date: From: Received: A blank line Body Email RFC 822 Message Format • Header • a series of <CRLF>-terminated lines. (<CRLF> stands for carriage-return+ line-feed, ASCII control characters for end of a line) • Each header line contains a type and value separated by a colon • Body • ASCII characters only. • Then, what about multimedia information? • RFC 822 extended: MIME CSS432: Applications

  23. MIME • allow email messages to carry many different types of data: audio, video, images, PDF documents, and so on. • Message Format • MIME consists of three basic pieces. • collection of additional header lines • MIME-Version: (the version of MIME being used), • Content-Description: (a human-readable description of what’s in the message, analogous to the Subject: line), • Content-Type: (the type of data contained in the message), and • Content-Transfer- Encoding (how the data in the message body is encoded).

  24. MIME • Definitions for a set of content types (and subtypes). For example, • Type:image; SubType: image/gif and image/jpeg • Type:text; SubType:text/plain, text/richtext (markup, special fonts); • Type:application; SubType:application/postscript, application/msword, representing output of different application programs. • Type:Mutltipart; how messages carrying more than 1 data type are structured SubType:Multipart/mixed (set of independent data pieces, each piece has separate header describing its content type) • Way to encode the various data types so they can be shipped in an ASCII email message • Base64 encoding • Every 3 bytes of original binary data into 4 ASCII charcters • Group binary data into 24 bit units (3 bytes) • Break each unit into 4, 6-bit pieces • Map each 6-bit piece into 1 ASCII character

  25. Email MIME MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=“-------417CA6E2DE4ABCAFBC5” From: athirai@u.washington.edu To: css432a_wi17@u.washington.edu Subject: CSS432- MIME Sample Date: Wed, 08 Feb 2017 18:59:00 -0800 -------417CA6E2DE4ABCAFBC5 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi all, Attached is the jpeg and draft report. Cheers! athirai -------417CA6E2DE4ABCAFBC5 Content-Type: image/jpeg Content-Transfer-Encoding: base64 … Unreadable encoding of a jpeg figure -------417CA6E2DE4ABCAFBC5 Content-Type: application/postscript; name=“draft.ps” Content-Transfer-Encoding: 7bit … Readable encoding of a postscript document • MIME: multimedia mail extension, RFC 2045, 2056 • Additional lines in msg header declare MIME content type Carry more than one data type Type of the data How the data is encoded 3bytes = 3 * 8bits = 24bits = 4 * 6bit-chars, each mapped onto one of 64 ASCII chars (A~Z,a~z,0~9,+,/) Definitions for content types

  26. Email Mail Reader – IMAP (persistent connection) 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

  27. FTP user interface FTP client FTP server TCP port 21 for control (persistent) TCP port 20 for data transfer (not persistent) local file system remote file system FTP File Transfer Protocol CSS432: Applications

  28. FTP FTP Commands • FTP: Control connection (TCP)- commands and responses, data connection (TCP) – data transfer • ACTIVE MODE: client establishes the command channel, server establishes the data channel  • Client opens up command channel from client port 35762 to server port 21. • Client sends PORT 35763 to server and server acknowledges on command channel. • Server opens up data channel from server port 20 to client port 35763 • Client acknowledges on data channel. • Passive mode: the client establishes both channels • Client opens up command channel from client port 35763 to server port 21 • Client issues PASV command • Server sends back (on command channel) PORT 46005 after starting to listen on that port. • Client opens up data channel from client 35764  to server port 46005. • Server acknowledges on data channel. • Port 20/21 are used traditionally, i.e., 21 for command channel and 20 for data channel CSS432: Applications

  29. 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

  30. FTP FTP Example [css432@uw1-320-20]$ telnet ftp.tripod.com 21 Trying 209.202.252.54… Connected to ftp.tripod.com (209.202.252.54). Escape character is ‘^]’. 220 Welcome to Tripod FTP. USER css432w17 331 Username set to css432. Now enter your password. PASS ******** 230 User ‘css432w17’ logged on. LIST 425 Can’t open data connection for LIST. PASV 227 Entering Passiv Mode (209,202,252,54,127,31) // Open another xterm and telnet 209.202.252.54 33954 (=127*256+31) // Trying 209.202.252.54… // Connected to ftp.tripod.com (209.202.252.54). // Escape character is ‘^]’. LIST 150 Opening ASCII mode data connection for LIST. 226 Transfer complete. // -rw-r--r-- 1 css432w17 Tripod 4386 Feb 10 17:29 index.htm // drwxr-xr-x 1 css432w17 Tripod 0 Feb 10 17:39 cgi-bin // drwxr-xr-x 1 css432w17 Tripod 0 Feb 10 17:54 project // Connection closed by foreign host. QUIT 221 Goodbye Connection closed by foreign host. [css432@uw1-320-20]$ _ CSS432: Applications

  31. FTP passive mode FTP client FTP server TCP port 21 for control (persistent) Client request: connect( ), USER, PASS, LIST Server Reply: 220 server ready, 331 send password, 230 login ok, 425 connection timeout TCP port 20 for data transfer (one time) FTP client FTP server TCP port 21 for control (persistent) Client request: connect( ), USER, PASS, PASV, LIST Server Reply: 220 server ready, 331 send password, 230 login ok, 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

  32. FTP proxy command / FTP client (Transfer files from s2 to s1) (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), (6)RETR file (7) QUIT (5) STOR file (8) QUIT …(1) …(2) …(3)~(6) …(7)~(8) ftp> open server1 ftp> proxy open server2 ftp> proxy put file ftp>quit FTP Server 1 FTP Server 2 TCP port 195*256 + 54 = 49974 for data transfer (one time) data CSS432: Applications

  33. Netscape HTTP server TCP port 80 (one-time connection) HTTP request HTTP response TCP port 80 (one-time connection) /public_html IE Web World Wide Web - HTTP • 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

  34. Web HTTP Commands • HTTP • The core idea of hypertext is that one document can link to another document, and the protocol (HTTP) and document language (HTML) were designed to meet that goal. • URL • They provide information that allows objects on the Web to be located, and they look like the following: • http://www.cs.princeton.edu/index.html • If you opened that particular URL, your Web browser would open a TCP connection to the Web server at a machine called www.cs.princeton.edu and immediately retrieve and display the file called index.html. CSS432: Applications

  35. 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 information (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

  36. Web HTTP Example [css432@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. [css432@uw1-320-20]$ _ CSS432: Applications

  37. HTTP 1.0 • TCP Connections • The original version of HTTP (1.0) established a separate TCP connection for each data item retrieved from the server HTTP 1.0 behavior

  38. Persistent Connection • the client and server can exchange multiple request/response messages over the same TCP connection. • Reduces latency, can avoid slow start each time due to TCP’s congestion window mechanism HTTP 1.1 behavior with persistent connections

  39. 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 • Server assigns an expiration date when it sends back a page to the client after which it can no longer be cached CSS432: Applications

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

  41. HW4 • NAT: Network Address Translation • a network device, usually a firewall, assigns a public address to a computer (or group of computers) inside a private network when connecting to an external network such as internet • Dynamic Host Configuration Protocol (DHCP) is a network protocol that enables aserver to automatically assign an IP address to a computer from a defined range of numbers (i.e., a scope) configured for a given network CSS432: Applications

  42. Project: FTP client • Similar to linux FTP client • ftp ftp.tripod.com • ls, open, close, quit commands • Map to the functions specified by RFC 959 • E.g., ls  PASV + LIST • Establish TCP connection with server • Use read and write commands • User issues ls, client should send PASV, LIST command to server and read back the response from server • File Transfer issues CSS432: Applications

More Related