The Application Layer application and application requirements sample network applications and protocols SMTP, POP3 WWW: http1.1 teleconferencing reading: text sections 7.4, 7.6, 7.7 Copyright All Rights Reserved, J. Kurose, D. Towsley
Network Applications our goal: understand service requirements applications place on network infrastructure protocols distributed applications use to implement application two views: applications drive technology technology build it and they will come will come
Application Requirements bandwidth: how many bits/sec required? Smooth or bursty traffic stream? protocol processing: how many MIPs required for application software and underlying protocols? holding time: how long does application run? data-level reliability: reliable (in-order, no loss) delivery needed? performance: constraints on maximum application-to- application delay, tail of delay distribution? QOS: quality of service guarantees required? communication structure: 1-1, 1-many, many-many? security: authentication, encryption required?
Application Requirements
Application Structure network application distributed in nature set of communicating application-level processes (usually) on different hosts provide/implement
Application Structure client server model: server offers service via well defined interface, client request service client: how to locate/request service server how/whether to provide service example: WWW client (browser), server peer/peer model: symmetric: each process an equal example: teleconferencing both require transport of request/replies, sharing of data
Application Example: generic issues: addressing: identities of receiver/sender, format of address info privacy/security notification of receipt, reading, disposition different types of media: text, audio, video, document types competing standards that don’t interoperate mail gateways convert from one format to another
Internet Mail: SMTP SMTP: simple mail transfer protocol RFC 821, RFC 822 define protocol activities and message structure for SMTP RFC 821RFC 822 RFC 821RFC 822 RFC: request for comments are Internet draft, standards, information documents. locations: ftp://nic.ddn.mil, state.edu/hypertext/information/rfc.html uses underlying reliable transport service (TCP)
SMTP Sending mail: essentially a SMTP-mediated file transfer: sender SMTP protocol entity sends to receiver SMTP protocol entity sender learns receivers host address (how?) sender contacts receiver at well known “port” number (25) at that host
SMTP sender-receiver commands SMTP sender and receiver exchange typical of peer- peer interactions: control commands, replies, data three basic steps: “greeting”, data exchange, “goodbye”
SMTP sender-receiver commands
Example SMTP Exchange
Another Example gaia 3% telnet gaia.cs.umass.edu 25 Trying … Connected to gaia. Escape character is '^]'. 220 gaia.cs.umass.edu ESMTP Sendmail 8.7.6/8.6.9 ready at Wed, 11 Feb :13: (EST) HELO abc.com 250 gaia.cs.umass.edu Hello gaia [ ], pleased to meet you MAIL FROM: Sender ok RCPT TO: 553 Unbalanced '<’
Another Example (cont.) RCPT TO: 250 Recipient ok DATA 354 Enter mail, end with "." on a line by itself … Don. 250 VAA04032 Message accepted for delivery QUIT 221 gaia.cs.umass.edu closing connection
SMTP: Closing Comments extensions to SMTP: MIME (multipurpose Internet mail extensions): multiple body parts, multimedia mail, multiple fonts and character sets, RFC 1324 PEM (privacy-enhanced mail): RFC
Post Office Protocol (POP3) SMTP assumes there is an SMTP server at recipient SMTP can also deliver to a Post Office (server) client can retrieve mail remotely (e.g., over net) using Post Office Protocol (POP3) to interact with server. Three phases: greeting transactions (retrieve mail) quit mail stored at client Interactive Mail Access Protocol (IMAP) similar to POP3 except mail stored at server
Hypertext Transfer Protocol: http WWW implemented using client/server paradigm: client (browser) requests and displays received html documents server receives requests, responds with requested html documents http protocol defines format of packets exchanged between client and server, actions taken upon receipt http is a stateless, transaction-oriented protocol: client contacts server at port 80, using TCP client makes request to server reply from server to client TCP connection closed
Http (cont.) request/replies have headers and bodies similar to SMTP and MIME RFC 2068 (long!) defines http RFC 2068 RFC 2068
HTTP Request Message sent from client to server general format: request line (method, identifier, version) header (additional info) body
Example http Request Message Suppose you access sample GET command plus header: GET /cs /index.html HTTP/1.0 User-Agent: Mozilla/2.01 (X11; I; IRIX 5.2 IP7) Accept: image/gif, image/x-bitmap, image/jpeg /* a blank line */
http Reply Message sent from server to client general format: status line (status code, text phrase) header (additional info) body
Example http reply Message a sample http server reply: HTTP/ Document follows MIME-Version: 1.0 Server: CERN/3.0 Date: Wednesday 10-Apr-96 03:59:47 GMT Content-type: text/html Content-length: 2168 Last-Modified: Friday 06-Oct-95 07:16:52 GMT /* a blank line */ <html><head> : /* HTML text of the Web page */ </html>
Teleconferencing applications: requirements goal: interactive (real time) communication with multiple media components (audio, video, text (whiteboard). continuous media such as audio, video require “smooth” playout at receiver Internet does not provide jitter-free communication jitter: change in network delay receiver buffers packets and “plays out” periodically delayed playout of first packet allows receiver buffer to “absorb” network jitter late packets lost can tolerate “some” lost packets
Audio Playout time audio samples Q: what kind of service, best effort or guaranteed with resource reservation? guaranteed with resource reservation?
Applications: Summary diverse applications place widely varying service requirements on network bandwidth, reliability, real-time constraint, QoS guarantees, security application-level protocols between distributed entities implement application using network services via network API client-server paradigm applications rule!