EECC694 - Shaaban #1 lec #15 Spring2000 5-2-2000 Application Layer Protocols Network Applications RequirementsNetwork Applications Requirements Application.

Slides:



Advertisements
Similar presentations
World Wide Web Basics Original version by Carolyn Watters (Dalhousie U. Computer Science)
Advertisements

1 Electronic Mail u Three major components: u user agents u mail servers u simple mail transfer protocol: SMTP u User Agent u a.k.a. “mail reader” u composing,
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Application Layer – Lecture.
Application Layer-11 CSE401N: Computer Networks Lecture-4 Application Layer Overview HTTP.
Layer Aplikasi Risanuri Hidayat. Applications and application-layer protocols Application: communicating, distributed processes –e.g., , Web, P2P.
CPSC 441: FTP & SMTP1 Application Layer: FTP & Instructor: Carey Williamson Office: ICT Class.
9/16/2003-9/18/2003 The Application Layer and Java Programming September 16-18, 2003.
Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July.
Electronic Mail and SMTP
2: Application Layer1 Chapter 2: Application Layer Chapter goals: r conceptual + implementation aspects of network application protocols m client server.
1 Computer Networks Transport Layer Protocols. 2 Application-layer Protocols Application-layer protocols –one “piece” of an app –define messages exchanged.
2/9/2004 Web and HTTP February 9, /9/2004 Assignments Due – Reading and Warmup Work on Message of the Day.
EEC-484/584 Computer Networks Lecture 4 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Chapter 30 Electronic Mail Representation & Transfer
Esimerkki: Sähköposti. Lappeenranta University of Technology / JP, PH, AH Electronic Mail Three major components: user agents mail servers simple mail.
Simple Mail Transfer Protocol
Introduction 1 Lecture 7 Application Layer (FTP, ) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science & Engineering.
Mail Server Fitri Setyorini. Content SMTP POP3 How mail server works IMAP.
The Application Layer  application and application requirements  sample network applications and protocols  SMTP, POP3  WWW: http1.1  teleconferencing.
Electronic Mail Three major components: SMTP user agents mail servers
Introduction 1-1 Chapter 2 FTP & Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 IC322 Fall.
2: Application Layer1 Chapter 2 Application Layer These slides derived from Computer Networking: A Top Down Approach, 6 th edition. Jim Kurose, Keith Ross.
SMTP, POP3, IMAP.
1 Application Layer Lecture 5 Imran Ahmed University of Management & Technology.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 9
CSE401N: Computer Networks Lecture-5 Electronic Mail S. M. Hasibul Haque Lecturer Dept. of CSE, BUET.
IT 424 Networks2 IT 424 Networks2 Ack.: Slides are adapted from the slides of the book: “Computer Networking” – J. Kurose, K. Ross Chapter 2: Application.
Review: –How do we address “a network end-point”? –What services are provided by the Internet? –What is the network logical topology observed by a network.
Application Layer Protocols Simple Mail Transfer Protocol.
Lecturer: Maxim Podlesny Sep CSE 473 File Transfer and Electronic in Internet.
DNS,SMTP,MIME.
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 7 The Application Layer.
2: Application Layer1 Chapter 2: Application Layer Chapter goals: r conceptual + implementation aspects of network application protocols m client server.
CS 3830 Day 7 Introduction : Application Layer 2 Processes communicating Process: program running within a host. r within same host, two processes.
2: Application Layer1 Reminder r Homework 1 for Wednesday: m Problems #3-5,11,16,18-20 m Half of the problems will be graded r Feel free to send me .
FTP (File Transfer Protocol) & Telnet
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
TCP/IP Protocol Suite 1 Chapter 22 Upon completion you will be able to: World Wide Web: HTTP Understand the components of a browser and a server Understand.
2: Application Layer1 CS 4244: Internet Software Development Dr. Eli Tilevich.
Application Layer 2 Figures from Kurose and Ross
Rensselaer Polytechnic Institute Shivkumar Kalvanaraman, Biplab Sikdar 1 The Web: the http protocol http: hypertext transfer protocol Web’s application.
20-1 Last time □ NAT □ Application layer ♦ Intro ♦ Web / HTTP.
2: Application Layer1 Internet apps: their protocols and transport protocols Application remote terminal access Web file transfer streaming multimedia.
9/15/2015© 2008 Raymond P. Jefferis IIILect Application Layer.
Simple Mail Transfer Protocol (SMTP)
TCOM 509 – Internet Protocols (TCP/IP) Lecture 06_c Application Protocols: HTTP, FTP, SMTP Instructor: Dr. Li-Chuan Chen Date: 10/06/2003 Based in part.
File Transfer Protocol (FTP)
Sockets process sends/receives messages to/from its socket
Application Layer Khondaker Abdullah-Al-Mamun Lecturer, CSE Instructor, CNAP AUST.
2: Application Layer1 Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross.
CS 3830 Day 9 Introduction 1-1. Announcements r Quiz #2 this Friday r Demo prog1 and prog2 together starting this Wednesday 2: Application Layer 2.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications  app architectures  app requirements r 2.2 Web and HTTP.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 1 Fundamentals.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
Slides based on Carey Williamson’s: FTP & SMTP1 File Transfer Protocol (FTP) r FTP client contacts FTP server at port 21, specifying TCP as transport protocol.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
EEC-484/584 Computer Networks Lecture 4 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
World Wide Web r Most Web pages consist of: m base HTML page, and m several referenced objects addressed by a URL r URL has two components: host name and.
COMP 431 Internet Services & Protocols
Ch 2. Application Layer Myungchul Kim
26.1 Electronic Mail Sending/Receiving Mail Addresses User Agent MIME Mail Transfer Agent Mail Access Protocols.
Spring 2006 CPE : Application Layer_ 1 Special Topics in Computer Engineering Application layer: Some of these Slides are Based on Slides.
درس مهندسی اینترنت – مهدی عمادی مهندسی اینترنت برنامه‌نویسی در اینترنت 1 SMTP, FTP.
Networking CS 3470, Section 1 Sarah Diesburg
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 9
Internet transport protocols services
Chapter 2: Application layer
William Stallings Data and Computer Communications
The Application Layer: SMTP, FTP
Chapter 2 Application Layer
Presentation transcript:

EECC694 - Shaaban #1 lec #15 Spring Application 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 SMTP. –HyperText Transfer Protocol (HTTP). Domain Name System (DNS)Domain Name System (DNS)

EECC694 - Shaaban #2 lec #15 Spring Network Applications & Application Layer Protocols The development of numerous network applications and the associated application-layer protocols has been a major driving force for computer network advancements over the past 30 years. The range of such diverse applications include: –Text-based applications such as telnet, electronic mail, file transfer, newsgroups, most popular in the 70’s-80’s. –More recent graphics- and multimedia-based applications such as the World Wide Web ( the Internet’s killer-app ), Internet telephony, video conferencing, and streaming audio/video on demand, and interactive games.

EECC694 - Shaaban #3 lec #15 Spring Common Network Applications Requirements Application Type Data Loss Bandwidth Requirements Latency sensitivity File transfer No loss Variablenone Web documents No loss Variablenone 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 VariableApplication-dependent

EECC694 - Shaaban #4 lec #15 Spring Application Layer Protocols An application layer protocol defines how an application processes (clients and servers), running on different end systems, pass messages to each other. 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 Request For Comments documents (RFCs) and are therefore in the public domain. –For example, the HTTP 1.1 specification is included in RFC 2068, which was finalized and made public January –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 has also has followed the rules of the HTTP 1.1 RFC.

EECC694 - Shaaban #5 lec #15 Spring Structure of Internet Applications Using TCP & The Sockets API One or more TCP connections Client Server Request or Command Server Reply or Response

EECC694 - Shaaban #6 lec #15 Spring Sample 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 - Shaaban #7 lec #15 Spring Common Network/System Services & Ports Port Number Process Name Description 1TCPMUXTCP Port Service Multiplexer 5RJERemote Job Entry 7ECHOEcho 9DISCARDDiscard 11USERSActive Users 13DAYTIMEDaytime 17QuoteQuotation of the Day 19CHARGENCharacter generator 20FTP-DATAFile Transfer Protocol - Data 21FTPFile Transfer Protocol - Control 23TELNETTelnet 25SMTPSimple Mail Transfer Protocol 27NSW-FENSW User System Front End 29MSG-ICPMSG-ICP 31MSG-AUTHMSG Authentication 33DSPDisplay Support Protocol 35Private Print Servers 37TIMETime 39RLPResource Location Protocol 41GRAPHICSGraphics 42NAMESERVHost Name Server 43NICNAMEWho Is 49LOGINLogin Host Protocol 53DOMAINDomain Name Server 67BOOTPSBootstrap Protocol Server 68BOOTPCBootstrap Protocol Client

EECC694 - Shaaban #8 lec #15 Spring Common Network/System Services & Ports Port Number Process Name Description 69TFTPTrivial File Transfer Protocol 79FINGERFinger 80HTTPHyperText Transfer Protocol 101HOSTNAMENIC Host Name Server 102ISO-TSAPISO TSAP 103X400X X400SNDX.400 SND 105CSNET-NSCSNET Mailbox Name Server 109POP2Post Office Protocol v2 110POP3Post Office Protocol v3 111RPCSun RPC Portmap 119NNTPNetwork News Transfer Protocol 137NETBIOS-NSNETBIOS Name Server 138NETBIOS-DGNETBIOS Datagram Service 139NETBIOS-SSNETBIOS Session Service 146ISO-TP0ISO TP0 147ISO-IPISO IP 150SQL-NETSQL NET 153SGMPSGMP 156SQLSRVSQL Service 160SGMP-TRAPSSGMP TRAPS 161SNMPSimple Network Management Protocol 162SNMPTRAPSNMPTRAP 163CMIP-MANAGECMIP/TCP Manager 164CMIP-AGENTCMIP/TCP Agent 165XNS-CourierXerox 179BGPBorder Gateway Protocol

EECC694 - Shaaban #9 lec #15 Spring File 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 file and is closed once the transfer is completed.

EECC694 - Shaaban #10 lec #15 Spring Common 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 connection and 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 and the FTP command sent across the TCP control connection. Each command is followed by a reply, sent from server to client. Replies are three-digit numbers, 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 - Shaaban #11 lec #15 Spring Sending Electronic Mail: Simple Mail Transfer Protocol (SMTP), RFC 821 SMTP transfers messages from senders' mail servers to the recipients' mail servers using TCP connections. SMPT existed long before it was fully specified by RFC 821 in 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 SMTP server. 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 - Shaaban #12 lec #15 Spring The Internet Mail System All messages must be 7-bit ASCII Encoded

EECC694 - Shaaban #13 lec #15 Spring Example Transaction Between An SMTP Client & Server Server: 220 receive.edu Client: HELO send.edu Server: 250 Hello send.edu, pleased to meet you Client: MAIL FROM: Server: 250 Sender ok Client: RCPT TO: Server: 250 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 client (sender) established a TCP connection to the remote receiving SMTP server, the following is sent into the connection:

EECC694 - Shaaban #14 lec #15 Spring 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 inform the receiving mail agent: –Content-Transfer-Encoding: header. Alerts the receiving user agent that the message body has been ASCII encoded and the type of encoding used. –Content-Type: header. Informs the receiving mail agent about the type of data included in the message. Example message header when a base64-encoded JPEG image is included in the body of the message: From: To: Subject: A picture. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data base64 encoded data

EECC694 - Shaaban #15 lec #15 Spring MIME Document Types/Subtypes Examples The content type of a document is described in the MIME Content-Type: header using a standard list of document types and subtypes. 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 - Shaaban #16 lec #15 Spring The World Wide Web (WWW): HyperText Transfer Protocol (HTTP) The WWW was practically invented at CERN by Tim Berners-Lee and associates in when initial versions of HTML, HTTP, a Web server and a crude text-based browser (Web client) were developed. Marc Andreeseen, who helped to develop the popular GUI browser Mosaic for X at The National Center for Supercomputing Applications (NCSA), released an alpha version of his browser in 1993, and in 1994 formed Mosaic Communications which later became Netscape. The Hypertext Transfer Protocol (HTTP) the Web's main application-layer protocol 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 to each other by exchanging HTTP messages. HTTP defines the structure of these messages and how the client and server exchange 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 other enhancements persistent connections to transfer several objects per connection.

EECC694 - Shaaban #17 lec #15 Spring Components of The Web Model e.g. jasmine.isc.rit.edu:8000 Web server running on non-standard port Web Clients Web Server HTTP HTML Web Servers Web Clients HTML Document

EECC694 - Shaaban #18 lec #15 Spring Common HTML Tags

EECC694 - Shaaban #19 lec #15 Spring 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 e.g. 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 - Shaaban #20 lec #15 Spring Steps of Transferring A Web Page From Server To Client Using Non-Persistent TCP Connections 1. The HTTP client initiates a TCP connection to the server 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 the response message, parses the HTML file and finds references to a number of JPEG and GIF objects. 6. The first four steps are then repeated for each of the referenced JPEG and GIF objects.

EECC694 - Shaaban #21 lec #15 Spring HTTP Message Examples Typical Request Message From A Client: GET /eecc694-spring2000/index.html HTTP/1.0 Connection: close User-agent: Mozilla/4.72 [en] (Win98; I) Accept: text/html, image/gif, image/jpeg Accept-language:en (extra carriage return, line feed) Typical Response Message From A Server: HTTP/ OK Connection: close Date: Wed, 05 April :00:15 GMT Server: NCSA/1.5.2 Last-Modified: Tue, 25 April :23:24 GMT Content-Length: Content-Type: text/html data data and more data...

EECC694 - Shaaban #22 lec #15 Spring HTTP Message Formats: General 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 Carriage Return Line feed Connection: close, to request non-persistent TCP connections. User-agent: Browser used. Accept: type of objects the browser is prepared to accept Accept-language:

EECC694 - Shaaban #23 lec #15 Spring HTTP Message Formats: General 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 and associated 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 date Server: Server type used Last-Modified: of object Content-Length: of object Content-Type: MIME Type/sub-type of object

EECC694 - Shaaban #24 lec #15 Spring 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 the corresponding IP addresses required for packet routing by issuing a DNS query to a name server. Name servers are usually Unix machines running the Berkeley Internet Name Domain (BIND) software. On many Unix-based machines using the sockets-API, gethostbyname() is the library routine that an application calls in order to issue a DNS query. Resource record: Associated with each host on the Internet, includes IP address, domain name, domain name server, etc. When resolving a host name, DNS returns the associated resource record of the 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 database stored at the domain name server responsible for that sub-domain or zone.

EECC694 - Shaaban #25 lec #15 Spring Principal DNS Resource Record Types

EECC694 - Shaaban #26 lec #15 Spring A Partial DNS Database

EECC694 - Shaaban #27 lec #15 Spring Zone Division of DNS Name Space

EECC694 - Shaaban #28 lec #15 Spring

EECC694 - Shaaban #29 lec #15 Spring Recursive DNS Queries Example A network application running on beast.isc.rit.edu issues 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 hierarchy is shown here as an example. In reality, several levels of name servers may be queried recursively.