Application Layer Protocolsmeseec.ce.rit.edu/eecc694-spring2000/694-5-2-2000.pdf · Network...

29
EECC694 - Shaaban EECC694 - Shaaban #1 lec #15 Spring2000 5-2-2000 Application Layer Protocols Application Layer Protocols Network Applications Requirements Network Applications Requirements Application Layer Protocol Functions. Application Layer Protocol Functions. Sample Internet Applications & Protocols: Sample Internet Applications & Protocols: File Transfer Protocol (FTP). Sending E-Mail: SMTP. HyperText Transfer Protocol (HTTP). Domain Name System (DNS) Domain Name System (DNS)

Transcript of Application Layer Protocolsmeseec.ce.rit.edu/eecc694-spring2000/694-5-2-2000.pdf · Network...

EECC694 - ShaabanEECC694 - Shaaban#1 lec #15 Spring2000 5-2-2000

Application Layer ProtocolsApplication Layer Protocols

•• Network Applications RequirementsNetwork Applications Requirements

•• Application Layer Protocol Functions.Application Layer Protocol Functions.

•• Sample Internet Applications & Protocols:Sample Internet Applications & Protocols:– File Transfer Protocol (FTP).

– Sending E-Mail: SMTP.

– HyperText Transfer Protocol (HTTP).

•• Domain Name System (DNS)Domain Name System (DNS)

EECC694 - ShaabanEECC694 - Shaaban#2 lec #15 Spring2000 5-2-2000

Network Applications &Network Applications &Application Layer ProtocolsApplication Layer Protocols

• The development of numerous network applications andthe associated application-layer protocols has been a majordriving force for computer network advancements over thepast 30 years.

• The range of such diverse applications include:

– Text-based applications such as telnet, electronic mail, filetransfer, newsgroups, most popular in the 70’s-80’s.

– More recent graphics- and multimedia-based applicationssuch as the World Wide Web (the Internet’s killer-app),Internet telephony, video conferencing, and streamingaudio/video on demand, and interactive games.

EECC694 - ShaabanEECC694 - Shaaban#3 lec #15 Spring2000 5-2-2000

Common Network Applications RequirementsCommon Network Applications Requirements

Application Type Data Loss Bandwidth Requirements Latency sensitivity

File transfer No loss Variable none

Web documents No loss Variable none

Real-time audio/video Loss-tolerant Audio: few Kbps to 1Mbpsyes 100's of msec Video: 10's Kbps to 5 Mbps

Stored audio/video Loss-tolerant Same as interactive audio/video few seconds

Interactive games Loss-tolerant Few Kbps to 10's Kbps 100's msecs

Financial applications No loss Variable Application-dependent

EECC694 - ShaabanEECC694 - Shaaban#4 lec #15 Spring2000 5-2-2000

Application Layer ProtocolsApplication Layer Protocols• An application layer protocol defines how an application processes (clients

and servers) , running on different end systems, pass messages to eachother.

• In particular, an application layer protocol defines:

– The types of messages, e.g., request messages and response messages.– The syntax of the various message types, i.e., the fields in the message and

how the fields are delineated.– The semantics of the fields, i.e., the meaning of the information that the

field is supposed to contain;– Rules for determining when and how a process sends messages and

responds to messages.

• Many Internet application-layer protocols are fully specified in RequestFor Comments documents (RFCs) and are therefore in the public domain.

– For example, the HTTP 1.1 specification is included in RFC 2068, which wasfinalized and made public January 1997.

– If a browser (HTTP client) developer follows the rules of the HTTP 1.1 RFC,the browser will be able to retrieve Web pages from any Web server that hasalso has followed the rules of the HTTP 1.1 RFC.

EECC694 - ShaabanEECC694 - Shaaban#5 lec #15 Spring2000 5-2-2000

Structure of Internet ApplicationsStructure of Internet ApplicationsUsing TCP & The Sockets APIUsing TCP & The Sockets API

One or moreTCP connections

Client Server

Request or Command

Server Reply or Response

EECC694 - ShaabanEECC694 - Shaaban#6 lec #15 Spring2000 5-2-2000

Sample Internet ApplicationsSample Internet Applications Application Type Application-layer protocol Transport Protocol Used/Port

Send: Simple Mail Transfer Protocol TCP 25

Electronic mail SMTP [RFC 821]

Receive: Post Office Protocol v3 TCP 110

POP3 [RCF 1939]

Remote terminal access Telnet [RFC 854] TCP 23

World Wide Web (WWW) HyperText Transfer Protocol 1.1 TCP 80

HTTP 1.1 [RFC 2068]

File Transfer Protocol TCP 21

File Transfer FTP [RFC 959]

Trivial File Transfer Protocol UDP 69

TFTP [RFC 1350]

Remote file server NFS [McKusik 1996] UDP or TCP

Streaming multimedia Proprietary (e.g., Real Networks) UDP or TCP

Internet telephony Proprietary (e.g., Vocaltec) Usually UDP

EECC694 - ShaabanEECC694 - Shaaban#7 lec #15 Spring2000 5-2-2000

Common Network/System Services & PortsCommon Network/System Services & PortsPort Number Process Name Description

1 TCPMUX TCP Port Service Multiplexer5 RJE Remote Job Entry7 ECHO Echo9 DISCARD Discard11 USERS Active Users13 DAYTIME Daytime17 Quote Quotation of the Day19 CHARGEN Character generator20 FTP-DATA File Transfer Protocol - Data21 FTP File Transfer Protocol - Control23 TELNET Telnet25 SMTP Simple Mail Transfer Protocol27 NSW-FE NSW User System Front End29 MSG-ICP MSG-ICP31 MSG-AUTH MSG Authentication33 DSP Display Support Protocol35 Private Print Servers37 TIME Time39 RLP Resource Location Protocol41 GRAPHICS Graphics42 NAMESERV Host Name Server43 NICNAME Who Is49 LOGIN Login Host Protocol53 DOMAIN Domain Name Server67 BOOTPS Bootstrap Protocol Server68 BOOTPC Bootstrap Protocol Client

EECC694 - ShaabanEECC694 - Shaaban#8 lec #15 Spring2000 5-2-2000

Common Network/System Services & PortsCommon Network/System Services & PortsPort Number Process Name Description

69 TFTP Trivial File Transfer Protocol 79 FINGER Finger80 HTTP HyperText Transfer Protocol101 HOSTNAME NIC Host Name Server102 ISO-TSAP ISO TSAP103 X400 X.400104 X400SND X.400 SND105 CSNET-NS CSNET Mailbox Name Server109 POP2 Post Office Protocol v2110 POP3 Post Office Protocol v3111 RPC Sun RPC Portmap

119 NNTP Network News Transfer Protocol137 NETBIOS-NS NETBIOS Name Server138 NETBIOS-DG NETBIOS Datagram Service139 NETBIOS-SS NETBIOS Session Service146 ISO-TP0 ISO TP0147 ISO-IP ISO IP150 SQL-NET SQL NET153 SGMP SGMP156 SQLSRV SQL Service160 SGMP-TRAPS SGMP TRAPS161 SNMP Simple Network Management Protocol162 SNMPTRAP SNMPTRAP163 CMIP-MANAGE CMIP/TCP Manager164 CMIP-AGENT CMIP/TCP Agent165 XNS-Courier Xerox179 BGP Border Gateway Protocol

EECC694 - ShaabanEECC694 - Shaaban#9 lec #15 Spring2000 5-2-2000

File Transfer Protocol (FTP), RFC 595File Transfer Protocol (FTP), RFC 595• A protocol dating back to 1971 used for transferring files between hosts.

• In a typical FTP session:– The user first provides the hostname of the remote host.– The FTP client process in the local host establishes a control TCP connection

with the FTP server process in the remote host on port 21.– The user then provides the user identification and password, which get sent over

this TCP connection as part of the FTP commands.– Once the server has authorized the user, for each file to be transferred, FTP

opens a data TCP connection on server port 20 which is used to transfer the fileand is closed once the transfer is completed.

EECC694 - ShaabanEECC694 - Shaaban#10 lec #15 Spring2000 5-2-2000

Common FTP Commands and RepliesCommon FTP Commands and Replies• FTP commands, from client to server, and replies, from server to client, are sent across the

control TCP connection encoded in 7-bit ASCII.• In order to delineate successive commands, a carriage return and a line feed end each

command (and reply).• Commands consist of four uppercase ASCII characters, some with optional arguments.• Some of the more common commands are given below (with options in italics):

– USER username : Used to send the user identification to server.– PASS password : Used to send the user password to the server.– LIST : Used to ask the server to send back a list of all the files in the current remote

directory. The list of files is sent over a (new and non-persistent) data TCP connectionand not over the control TCP connection.

– RETR filename : Used to get a file from the current directory of the remote host.– STOR filename : Used to store a file into the current directory of the remote host.

• There is typically a one-to-one correspondence between the commands the user issues andthe FTP command sent across the TCP control connection.

• Each command is followed by a reply, sent from server to client. Replies are three-digitnumbers, with an optional message following the number. message;

• Typical replies along with possible messages are as follows:– 331 Username OK, password required– 125 Data connection already open; transfer starting– 425 Can't open data connection– 452 Error writing file

EECC694 - ShaabanEECC694 - Shaaban#11 lec #15 Spring2000 5-2-2000

Sending Electronic Mail:Sending Electronic Mail:Simple Mail Transfer Protocol (SMTP), RFC 821Simple Mail Transfer Protocol (SMTP), RFC 821

• SMTP transfers messages from senders' mail servers to the recipients' mailservers using TCP connections.

• SMPT existed long before it was fully specified by RFC 821 in 1982.

• Following the client/server model:– SMTP has two sides: a client side which executes on a sender's mail server, and

server side which executes on recipient's mail server.– Both the client and server sides of SMTP run on every mail server.– When a mail server sends mail (to other mail servers), it acts as an SMTP client.

When a mail server receives mail (from other mail servers) it acts as an SMTPserver.

• The process of sending a message:– A user agent (mail reader) is used to create a message to be sent.– The user agent directs the message to the outgoing message queue in the user's

local mail server (acting as an SMTP client).– The local mail server (SMTP client) opens a TCP connection directly to the remote

destination SMTP mail server.– After initial SMTP handshaking, the SMTP client sends the 7-bit ASCII encoded

message into the TCP connection.– The remote SMTP server receives the message over the TCP connection,

closes the connection and places the message in the receipt's mailbox.

EECC694 - ShaabanEECC694 - Shaaban#12 lec #15 Spring2000 5-2-2000

The Internet Mail SystemThe Internet Mail System

All messages must be 7-bit ASCII Encoded

EECC694 - ShaabanEECC694 - Shaaban#13 lec #15 Spring2000 5-2-2000

Example Transaction BetweenExample Transaction BetweenAn SMTP Client & ServerAn SMTP Client & Server

Server: 220 receive.edu

Client: HELO send.edu

Server: 250 Hello send.edu, pleased to meet you

Client: MAIL FROM: <[email protected]>

Server: 250 [email protected]... Sender ok

Client: RCPT TO: <[email protected]>

Server: 250 [email protected] ... Recipient ok

Client: DATA

Server: 354 Enter mail, end with "." on a line by itself

Client: First line of message in seven-bit ASCII

Client: Second and last line of example message.

Client: .

Server : 250 Message accepted for delivery

Client: QUIT

Server: 221 receive.edu closing connection

Once the SMTP Once the SMTP client (sender) client (sender) established a TCP established a TCP connection toconnection tothe remote receivingthe remote receivingSMTP server, SMTP server, the following is sent the following is sent into the connection:into the connection:

EECC694 - ShaabanEECC694 - Shaaban#14 lec #15 Spring2000 5-2-2000

Multipurpose Internet Mail Extensions (MIME)Multipurpose Internet Mail Extensions (MIME)• SMTP can only handle ASCII-encoded messages, hence binary data is first

encoded to ASCII in such a way that certain ASCII characters (including".") are not used, using base64 encoding for example.

• If binary data is included in a message MIME headers are used to informthe receiving mail agent:

– Content-Transfer-Encoding: header. Alerts the receiving user agentthat the message body has been ASCII encoded and the type ofencoding used.

– Content-Type: header. Informs the receiving mail agent about the typeof data included in the message.

• Example message header when

a base64-encoded JPEG image is

included in the body of

the message:

From: [email protected] To: [email protected] Subject: A picture. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data

EECC694 - ShaabanEECC694 - Shaaban#15 lec #15 Spring2000 5-2-2000

MIME Document Types/SubtypesMIME Document Types/SubtypesExamplesExamples

The content type ofThe content type of

a document is described in thea document is described in the

MIME MIME Content-Type:Content-Type: header header

using a standard list ofusing a standard list of

document types and subtypes.document types and subtypes.

A few are shown here.A few are shown here.

File

html

Wav

MPEG

pdf

VRML

text

Jpeg

MIME Type/Sub-type

text/plain

text/html

image/jpeg

audio/x-wav

video/mpeg

application/pdf

x-world/x-vrml

EECC694 - ShaabanEECC694 - Shaaban#16 lec #15 Spring2000 5-2-2000

The World Wide Web (WWW):The World Wide Web (WWW): HyperTextHyperText Transfer Protocol (HTTP) Transfer Protocol (HTTP)• The WWW was practically invented at CERN by Tim Berners-Lee and

associates in 1989-1991 when initial versions of HTML, HTTP, a Web server anda crude text-based browser (Web client) were developed.

• Marc Andreeseen, who helped to develop the popular GUI browser Mosaic for Xat The National Center for Supercomputing Applications (NCSA), released analpha version of his browser in 1993, and in 1994 formed MosaicCommunications which later became Netscape.

• The Hypertext Transfer Protocol (HTTP) the Web's main application-layerprotocol although current browsers can access other types of servers.

• As are most application-layer protocols, HTTP is implemented in two programs:a client program: Web browser and server program: Web server that talk toeach other by exchanging HTTP messages.

• HTTP defines the structure of these messages and how the client and serverexchange the messages.

• HTTP utilizes TCP connections to send client requests and server replies.

• Current HTTP version: HTTP 1.1 (RFC 2068) January 97, adds among otherenhancements persistent connections to transfer several objects per connection.

EECC694 - ShaabanEECC694 - Shaaban#17 lec #15 Spring2000 5-2-2000

ComponentsComponentsof The Webof The Web

ModelModele.g. jasmine.isc.rit.edu:8000 Web server running on non-standard port

WebClients

WebServer

HTTP HTMLWeb ServersWeb Clients

HTMLDocument

EECC694 - ShaabanEECC694 - Shaaban#18 lec #15 Spring2000 5-2-2000

CommonCommonHTMLHTMLTagsTags

EECC694 - ShaabanEECC694 - Shaaban#19 lec #15 Spring2000 5-2-2000

Uniform Resource Locators (URLs)Uniform Resource Locators (URLs)• Web browsers may utilize several high level protocols to request

data from a variety of servers in addition to HTTP servers.

• A uniform source locator (URL) specifies the following:– Protocol used.– Host name, alias, or IP address.– Port number (if different from the default protocol port).– Path to data requested.– Resource requested (usually a file name).

• A few types of URLs: http http://hostname:port/path/resource

e.g. http://jasmine.isc.rit.edu:8000/eecc694-spring2000/694-5-2-2000.ppt

FTP ftp://hostname:port/path/file e.g. ftp://beast.isc.rit.edu:25

Local file file:///path/file e.g. file:///my_files/file1.txt

Telnet telnet://hostname:port e.g. telnet:// jasmine.isc.rit.edu

gopher gopher://hostname/path/

news news://hostname:port

EECC694 - ShaabanEECC694 - Shaaban#20 lec #15 Spring2000 5-2-2000

Steps of Transferring A Web Page From Server ToSteps of Transferring A Web Page From Server ToClient Using Non-Persistent TCP ConnectionsClient Using Non-Persistent TCP Connections

http://www.rit.edu/~meseec/eecc694-spring2000/index.html1. The HTTP client initiates a TCP connection to the server www.rit.edu.2. The HTTP client sends a HTTP request message into the TCP connection. The

request message either includes the entire URL or simply the path name /~meseec/eecc694-spring2000/index.html .

3. The HTTP server receives the request message, retrieves the object /~meseec/eecc694-spring2000/index.html from its storage, encapsulates the object

in a HTTP response message, and sends the response message into the TCP connection.

4. The HTTP server tells TCP to close the TCP connection. (TCP doesn't terminate the connection until the client has received the response message)5. The HTTP client receives the response message. The message indicates that the

encapsulated object is an HTML file. The client extracts the file from theresponse message, parses the HTML file and finds references to a number ofJPEG and GIF objects.

6. The first four steps are then repeated for each of the referenced JPEG and GIF objects.

EECC694 - ShaabanEECC694 - Shaaban#21 lec #15 Spring2000 5-2-2000

HTTP Message ExamplesHTTP Message Examples• Typical Request Message From A Client:

GET /eecc694-spring2000/index.html HTTP/1.0Connection: close

User-agent: Mozilla/4.72 [en] (Win98; I)Accept: text/html, image/gif, image/jpegAccept-language:en(extra carriage return, line feed)

• Typical Response Message From A Server:

HTTP/1.0 200 OKConnection: closeDate: Wed, 05 April 2000 12:00:15 GMTServer: NCSA/1.5.2Last-Modified: Tue, 25 April 2000 11:23:24 GMTContent-Length: 20419Content-Type: text/html data data and more data ...

EECC694 - ShaabanEECC694 - Shaaban#22 lec #15 Spring2000 5-2-2000

HTTP Message Formats:HTTP Message Formats:General Format of A Request MessageGeneral Format of A Request Message

Messages encoded in standard ASCII text.Method: GET, POST, and HEAD. The great majority of HTTP request messages use the GET method. The GET method is used when the browser requests an object, with the object identified in the URL.POST is used when the client user fills out a form.URL: No need to include server hostname since the TCP connection is already connected to the server.Version: HTTP version number used. (e.g. HTTP/1.0 or HTTP/1.1)Entity Body: Not used in the GET method, form data included in POST method.

Space

CarriageReturn

Line feed

Connection: close, to requestnon-persistent TCP connections.User-agent: Browser used.Accept: type of objects the browseris prepared to acceptAccept-language:

EECC694 - ShaabanEECC694 - Shaaban#23 lec #15 Spring2000 5-2-2000

HTTP Message Formats:HTTP Message Formats:General Format of A Response MessageGeneral Format of A Response Message

Version: HTTP version number used (e.g. HTTP/1.0 or HTTP/1.1).Status code and associated phrase indicate the result of the request. Some example status codes andassociated phrases include: 200 OK: Request succeeded and the information is returned in the response. 301 Moved Permanently: Requested object has been permanently moved; new URL is specified in Location: header of the response message. The client software will automatically retrieve the new URL. 400 Bad Request: A generic error code indicating that the request could not be understood by the server. 404 Not Found: The requested document does not exist 505 HTTP Version Not Supported: The request HTTP protocol version is not supported by the server.Entity Body: The requested object if the response is successful.

Connection: close for non-persistent TCP connections.Date: Current GMT dateServer: Server type usedLast-Modified: of object Content-Length: of objectContent-Type: MIME Type/sub-type of object

EECC694 - ShaabanEECC694 - Shaaban#24 lec #15 Spring2000 5-2-2000

Domain Name System (DNS)Domain Name System (DNS)• DNS is a hierarchical system, based on a distributed database, that uses

a hierarchy of Name Servers to resolve Internet host names into thecorresponding IP addresses required for packet routing by issuing a DNSquery to a name server.

• Name servers are usually Unix machines running the Berkeley InternetName Domain (BIND) software.

• On many Unix-based machines using the sockets-API, gethostbyname() isthe library routine that an application calls in order to issue a DNS query.

• Resource record: Associated with each host on the Internet, includes IPaddress, domain name, domain name server, etc.

• When resolving a host name, DNS returns the associated resource record ofthe host.

• Internet domain names are divided into generic top-level domains (edu,com, gov, mil) which include all US domains and country domains.

• The DNS space is divided into non-overlapping zones.

• Resource records of all hosts in a sub-domain are kept as a DNS databasestored at the domain name server responsible for that sub-domain or zone.

EECC694 - ShaabanEECC694 - Shaaban#25 lec #15 Spring2000 5-2-2000

Principal DNS ResourcePrincipal DNS ResourceRecord TypesRecord Types

EECC694 - ShaabanEECC694 - Shaaban#26 lec #15 Spring2000 5-2-2000

A PartialA PartialDNSDNS

DatabaseDatabase

EECC694 - ShaabanEECC694 - Shaaban#27 lec #15 Spring2000 5-2-2000

Zone Division of DNS Name SpaceZone Division of DNS Name Space

EECC694 - ShaabanEECC694 - Shaaban#28 lec #15 Spring2000 5-2-2000

EECC694 - ShaabanEECC694 - Shaaban#29 lec #15 Spring2000 5-2-2000

Recursive DNS Queries ExampleRecursive DNS Queries Example

A network application running on beast.isc.rit.eduissues a DNS query using gethostbyname()to resolve hostname halcyon.usc.edu

Returns DNS Resource recordfor halcyon.usc.edu including IP address(s)

Hostname to be resolved

A two-level name server hierarchyis shown here as an example.In reality, several levelsof name servers may be queried recursively.