Application Layer Functionality and Protocols Dr. Muazzam A. Khan ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 1 Objectives Define the application layer as the source and destination of data for communication across networks. Explain the role of protocols in supporting communication between server and client processes. Describe the features, operation, and use of well-known TCP/IP application layer services (HTTP, DNS, SMTP). ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 2 Applications – The Interface Between Human and Data Networks People use application that enables them to send and receive data as well as sharing data without understanding how they work. As network professionals it is important to know how they work and how they format, send and interpret the data. This can be achieved easier by using the OSI layered model ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 3 OSI and TCP/IP Model The OSI model is a layered abstract model created for network designers to develop and design network protocols The model divides the network to 7 layers each of which has unique functionality and which are assigned specific services and protocols The data is passed from one layer to the next at the transmitting host starting at the Application layer proceeding down the hierarchy to the Physical layer. The data that passed over the communications channel to the destination host proceeding back up the hierarchy ending at the Application layer. ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 4 OSI and TCP/IP Model Although TCP/IP was developed before the OSI model but the functionality of the TCP/IP Application layer fits roughly into the Application layer of the OSI model The Application layer is the layer that provides the network services to the users’ application The primary functions of the Presentation layer are – Coding – Compression – Encryption The Session layer functions create and maintain dialogs between source and destination applications. The Session layer handles the exchange of information to initiate dialogs, keep them active, and to restart sessions that are disrupted or idle for a long period of time ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 5 OSI and TCP/IP Model There are widely used and commonly known TCP/IP Application layer protocols that are used – Domain Name Service Protocol (DNS) is used to resolve Internet names to IP addresses – Hypertext Transfer Protocol (HTTP) is used to transfer files that make up the Web pages of the World Wide Web – Simple Mail Transfer Protocol (SMTP) is used for the transfer of mail messages and attachments – Telnet, a terminal emulation protocol, is used to provide remote access to servers and networking devices ITE PC v4.0 Chapter 1 – File Transfer Protocol (FTP) is used for interactive file transfer between systems © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 6 Application Layer Software Within the Application layer, there are two forms of software programs or processes that provide access to the network: applications and services Network-Aware Application: they implement the application layer protocols and are able to communicate directly with the lower layers of the protocol stack e.g. E-mail clients and web browsers Application Layer Services: Other programs may need the assistance of Application layer services to use network resources, like file transfer or network print spooling. These services are the programs that interface with the network and prepare the data for transfer Each application or network service uses protocols which define the standards and data formats to be used ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 7 The Client/Server Model The device requesting the information is called a client and the device responding to the request is called a server Client and server processes are considered to be in the Application layer Application layer protocols describe the format of the requests and responses between clients and servers ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 8 Servers In a general networking context, any device that responds to requests from client applications is functioning as a server A server is usually a computer that contains information to be shared with many client systems (web pages, documents, databases, pictures, video, audio, etc) Servers might require client authentication In a client/server network, the server runs a service, or process, sometimes called a server daemon Daemons typically run in the background and are not under an end user's direct control ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 9 Application Layer Services and Protocols A single application may employ multiple Application layer services (one request for a web page may, in fact, amount to dozens of individual requests) A server might receive multiple client requests at the same time. The Application layer processes and services rely on support from lower layer functions to successfully manage the multiple conversations ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 10 Peer-to-Peer Networking and Applications (P2P) In a peer-to-peer network, two or more computers are connected via a network and can share resources (such as printers and files) without having a dedicated server The roles of client and server are set on a per request basis A peer-to-peer application (P2P), unlike a peer-to-peer network, allows a device to act as both a client and a server within the same communication In this model, every client is a server and every server a client peer-to-peer applications require that each end device provide a user interface and run a background service ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 11 DNS Services and Protocol The Transport layer uses an addressing scheme called a port number Port numbers identify applications and Application layer services that are the source and destination of data Some common port numbers are – Domain Name System (DNS) - TCP/UDP Port 53 – Hypertext Transfer Protocol (HTTP) - TCP Port 80 – Simple Mail Transfer Protocol (SMTP) - TCP Port 25 – Post Office Protocol (POP) - UDP Port 110 – Telnet - TCP Port 23 – Dynamic Host Configuration Protocol - UDP Port 67 – File Transfer Protocol (FTP) - TCP Ports 20 and 21 ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 12 DNS Services and Protocol Each device on a network is identified by an IP address On the Internet it is difficult to remember all the IP addresses so domain names are created The Domain Name System (DNS) was created for domain name to address resolution DNS uses a distributed set of servers to resolve the names associated with these numbered addresses. The DNS protocol defines an automated service that matches resource names with the required numeric network address ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 13 DNS Services and Protocol A DNS server provides the name resolution using the name daemon. The DNS server stores different types of resource records used to resolve names. These records contain the name, address, and type of record When a client makes a query, the server's "named" process first looks at its own records to see if it can resolve the name. If it is unable to resolve the name using its stored records, it contacts other servers in order to resolve the name. ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 14 WWW Service and HTTP When a web address (or URL) is typed into a web browser, the web browser establishes a connection to the web service running on the server using the HTTP protocol In order to access the content, web clients make connections to the server and request the desired resources The URL http://www.cisco.com/index.html is an example of a URL that refers to a specific resource - a web page named index.html on a server identified as cisco.com The server replies with the resources and, upon receipt, the browser interprets the data and presents it to the user (may use other services or plug-ins/add-ons) ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 15 WWW Service and HTTP The Hypertext Transfer Protocol (HTTP), one of the protocols in the TCP/IP suite, was originally developed to publish and retrieve HTML pages HTTP specifies a request/response protocol. When a client, typically a web browser, sends a request message to a server The three common message types are GET, POST, and PUT – GET is a client request for data. A web browser sends the GET message to request pages from a web server – POST and PUT are used to send messages that upload data to the web server HTTP is not a secure protocol. For secure posting and accessing of web pages HTTPS protocol is used. ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 16 Email Services and SMTP/POP Protocols E-mail is a client/server process E-mail requires several applications and services like Application layer protocols, Post Office Protocol (POP/POP3) and Simple Mail Transfer Protocol (SMTP) When people compose e-mail messages, they typically use an application called a Mail User Agent (MUA), or e-mail client which enables sending messages and getting messages into client’s mail box POP is used for receiving emails while SMTP is used for sending e-mails ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 17 Email Services and SMTP/POP Protocols The e-mail server operates two separate processes: Mail Transfer Agent (MTA) process is used to forward e-mail Mail Delivery Agent (MDA) is used If the mail is addressed to a user whose mailbox is on the local server The MDA can also resolve final delivery issues, such as virus scanning, spam filtering, and return-receipt handling ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 18 File Transfer Protocol (FTP) File Transfer Protocol (FTP) is an Application layer protocol FTP client is an application that runs on a computer that is used to push and pull files from a server running the FTP daemon (FTPd) FTP client requires two connections to transfer files – One for FTP commands and replies (TCP port 21) – Another for file transfer (TCP port 23) The client can download (pull) a file from the server or, upload (push) a file to the server ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 19 Dynamic Host Configuration Protocol (DHCP) DHCP enables devices in a network environment to obtain IP address and other information (subnet mask, gateway, DNS server .. etc) dynamically from a DHCP server The DHCP server chooses an address from a configured range of addresses called a pool and assigns ("leases") it to the host for a set period DHCP makes it possible for you to access the Internet using wireless hotspots at airports or coffee shops Many networks use both DHCP and static addressing. DHCP is used for general purpose hosts such as end user devices, and fixed addresses are used for network devices such as gateways, switches, servers and printers ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 20 Dynamic Host Configuration Protocol (DHCP) When a DHCP-configured device boots up or connects to the network, the client broadcasts a DHCP DISCOVER packet to identify any available DHCP servers on the network A DHCP server replies with a DHCP OFFER, which is a lease offer message with an assigned IP address, subnet mask, DNS server … etc The client might choose from multiple DHCP OFFERs it receives and broadcast a DHCP REQUEST If the DHCP OFFER is still available the DHCP server will reply with DHCP ACKNOWLEDGE If the DHCP OFFER is not available the server with reply with DHCP NAK the process will start all over again ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 21 File Sharing Services and SMB Protocol The Server Message Block (SMB) is a client/server file sharing protocol Developed by IBM in the late 1980s to describe the structure of shared network resources, such as directories, files, printers, and serial ports It is a request-response protocol Unlike the file sharing supported by FTP, clients establish a long term connection to servers. Once the connection is established, the user of the client can access the resources on the server as if the resource is local to the client host SMB file-sharing and print services have become the mainstay of Microsoft networking Beginning with Windows 2000, all subsequent Microsoft products use DNS naming. This allows TCP/IP protocols to directly support SMB resource sharing. ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 22 P2P Services and Gnutella Protocol Sharing files over the Internet has become extremely popular With P2P applications based on the Gnutella protocol, people can make files on their hard disks available to others for downloading Gnutella-compatible client software allows users to connect to Gnutella services over the Internet and to locate and access resources shared by other Gnutella peers Many client applications are available for accessing the Gnutella network, including: BearShare, Gnucleus, LimeWire, Morpheus, WinMX and XoloX ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 23 P2P Services and Gnutella Protocol Many P2P applications do not use a central database to record all the files available on the peers The devices on the network each tell the other what files are available when queried and use the Gnutella protocol and services to support locating resources When a user is connected to a Gnutella service, the client applications will search for other Gnutella nodes to connect to File transfers usually rely on HTTP services The Gnutella protocol defines five different packet types: – ping - for device discovery – pong - as a reply to a ping – query - for file location – query hit - as a reply to a query – push - as a download request ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 24 Features, Operation, and Use of TCP/IP Application Layer Services Telnet is a protocol and a service that provides text-based terminal emulation to connect to remote devices over the network A connection using Telnet is called a Virtual Terminal (VTY) session, or connection To support Telnet client connections, the server runs a service called the Telnet daemon. A virtual terminal connection is established from an end device using a Telnet client application Telnet does not support the transport of encrypted data. All data exchanged during a Telnet sessions is transported as plain text across the network If security is a concern then the Secured Shell (SSH) should be used ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 25 Summary ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 26 ITE PC v4.0 Chapter 1 © 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 27