1 / 66

Application Level Protocols

Application Level Protocols. 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?. Themes. Representation at different levels ASCII protocols Text-based

bina
Download Presentation

Application Level Protocols

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. Application Level Protocols

  2. 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?

  3. Themes • 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

  4. 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)

  5. Representation by Level Host A Host B “GET index.html” Layer 7 Layer 7 ASCII Text Strings Layer 6 Layer 6 Layer 5 Layer 5 Layer 4 Layer 4 Byte Stream 71,69,84,32,105,110 … Layer 3 Layer 3 Discrete Packets 71,69,84 32,105,110 Discrete Packets 71,69,84 32,105,110 Layer 2 Layer 2 1000111, 1000101, … Bit Sequence Layer 1 Layer 1 Physical Medium

  6. HTTP (Hyper Text Transfer Protocol)

  7. Overview • 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) • http://remus.rutgers.edu/newaccount.html • Most often, an HTML file (but doesn’t have to be!) • sometimes it’s the output of a program

  8. URL Naming • What does a URL refer to? • HTML files? • PDF documents • Runnable programs (scripts) • Java objects + methods?

  9. DNS Server Client Web Server Path of an HTTP request Client – Server Architecture

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

  11. HTTP Messages • initial line • method or response code + version • zero or more header lines • Information about message content • a blank line • optional message body • a file, or client input, or server output

  12. HTTP request message: general format

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

  14. Example Client Message GET /newacct.html HTTP/1.0 From: francis@rutgers.edu User-Agent: Mozilla-linux/4.7 (blank line here)

  15. Example Server Response HTTP/1.0 404 Not Found (blank line here)

  16. Example Client Message GET /newaccount.html HTTP/1.0 From: francis@rutgers.edu User-Agent: Mozilla-linux/4.7 (blank line here)

  17. Example Server Response response code HTTP/1.1 200 OK 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> <head> <title>Building new accounts</title> </head> <body> <center> <img src="images/sample.jpg"> … header Blank line separating header/body body

  18. MIME Headers • Responses from servers to complete GET requests contain MIME information • 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

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

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

  21. POST Requests (cont’d) POST /index.html HTTP/1.1 language=any&message=this+is+a+message+to+the+server+being+sent+by+the+browser+with+a+POST+request

  22. Encoding form data with POST • General form is: • &variable1=value1&variable2=value2… • Spaces changed to “+” • Other characters encoded(I.e. escaped) via “%”

  23. 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 Account=cs111fall&First=richard&Last=martin&SSN=123456789&Bday=01011980&.State=CreateAccount

  24. HTTP in context Client W.X.Y.Z Server 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)”); Time read input from socket parse header read data find resource build response header send resource write to socket read header read input display HTML

  25. Why loading pages seems slow • 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

  26. Caching Proxies Clients GET foo.html GET foo.html Web Server Proxy Server Store foo.html

  27. “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

  28. Flow Approach (cont) Web Server GET Image01.gif GET Index.html Client

  29. 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 page? • Concurrency by using multiple connections can speed this up, but…

  30. 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 perspective

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

  32. 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: http://www.whereismybus.com/ • Takes Rutgers campus bus positions as input • Client side plots different routes on a map

  33. HTML (Hyper Text Markup Language) • 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 • http://www.jmarshall.com/easy/html/ • http://www.jmarshall.com/easy/cgi • View source code of any page you visit in the browser

  34. SMTP (Simple Mail Transfer Protocol)

  35. Email • 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 network • 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

  36. SMTP Protocol 220 hill.com SMTP service ready HELO town.com 250 hill.com Hello town.com, pleased to meet you MAIL FROM: <jack@town.com> 250 <jack@town.com>… Sender ok RCPT TO: <jill@hill.com> 250 <jill@hill.com>… Recipient ok DATA 354 Enter mail, end with “.” on a line by itself From: jack@town.com To: jill@hill.com 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 QUIT 221 hill.com closing connection

  37. SMTP Direct Mode Direct mode: Sending email from jack@town.com to jill@hill.com SMTP Messages Email Server town. com SMTP Responses for hill.com town.com first finds IP address for hill.com email server using DNS request (type=MS) town.com opens TCP connection on SMTP port 25 and initiates SMTP protocol to transfer email message

  38. SMTP Relay Mode Relay mode: Sending email from jack@town.com to jill@hill.com Email Server Email Server town. com for town.com for hill.com town.com 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

  39. Retrieving Email from a desktop • Users retrieve email from their assigned email server • Email retrieval does NOT use the SMTP protocol • 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

  40. FTP (File Transfer Protocol )

  41. FTP • 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

  42. Client Program User Interface Client protocol interpreter Client data transfer function FTP Client/Server User Server Program Server protocol interpreter client file system Server data Transfer function server file system

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

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

  45. Sample FTP Session %ftp ftp.rutgers.edu Connected to kublai.td.Rutgers.EDU. 220 ftp.rutgers.edu FTP server (Version wu-2.6.2(9) Thu Feb 7 13:31:16 EST 2002) ready. Name (ftp.rutgers.edu:rmartin): anonymous 331 Guest login ok, send your complete e-mail address as password. 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) ftp> quit

  46. Domain Name System (DNS)

  47. 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 addresses • We call this Address Resolution

  48. Domain Name Hierarchy ... ... com edu net gov int mil org ae us zw yahoo cnn rutgers yale Country Domains cs eng Generic Domains

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

  50. Domain Name Hierarchy ... ... com edu net gov int mil org ae us zw yahoo cnn rutgers yale cs eng

More Related