10
  • Main Banner Application Layer

    Chapter 10: Objectives

    By the end of this chapter, you will be able to:
    Explain how the functions of the application layer, session layer, and presentation layer work together to provide network services to end user applications.
    Describe how common application layer protocols interact with end user applications.
    Describe, at a high level, common application layer protocols that provide Internet services to end-users, including WWW services and email.
    Describe application layer protocols that provide IP addressing services, including DNS and DHCP.
    Describe the features and operation of well-known application layer protocols that allow for file sharing services, including: FTP, File Sharing Services, SMB protocol.
    Explain how data is moved across the network, from opening an application to receiving data.

    Chapter 10

    Application Layer Protocols
    Well-Known Application Layer Protocols and Service
    Summary
  • Application Layer Protocol Banner

    TCP/IP Application Layer Protocols

    The TCP/IP application protocols specify the format and control information necessary for many common Internet communication functions.

    Application layer protocols are used by both the source and destination devices during a communication session. For the communications to be successful the application layer protocols implemented on the source and destination host must be compatible.

    Client-Server Model

    In 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. The client begins the exchange by requesting data from the server, which responds by sending one or more streams of data to the client. Application layer protocols describe the format of the requests and responses between clients and servers. In addition to the actual data transfer, this exchange may also require user authentication and the identification of a data file to be transferred.

    One example of a client-server network is using an ISP’s email service to send, receive and store email. The email client on a home computer issues a request to the ISP’s email server for any unread mail. The server responds by sending the requested email to the client. Data transfer from a client to a server is referred to as an 📷 upload and data from a server to a client as a 📷 download.

    Application Layer

    The application layer is closest to the end user. As shown in the 📷 figure, it is the layer that provides the interface between the applications used to communicate and the underlying network over which messages are transmitted. Application layer protocols are used to exchange data between programs running on the source and destination hosts.

    The upper three layers of the OSI model (application, presentation, and session) define functions of the single TCP/IP application layer.

    There are many application layer protocols, and new protocols are always being developed. Some of the most widely known application layer protocols include Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Trivial File Transfer Protocol (TFTP), Internet Message Access Protocol (IMAP), and Domain Name System (DNS) protocol.

    Presentation and Session Layer

    The Presentation Layer

    The presentation layer has three primary functions:
    Formatting, or presenting, data at the source device into a compatible form for receipt by the destination device
    Compressing data in a way that can be decompressed by the destination device
    Encrypting data for transmission and decrypting data upon receipt

    As shown in the 📷 figure, the presentation layer formats data for the application layer, and it sets standards for file formats. Some well-known standards for video include QuickTime and Motion Picture Experts Group (MPEG). Some well-known graphic image formats that are used on networks are Graphics Interchange Format (GIF), Joint Photographic Experts Group (JPEG), and Portable Network Graphics (PNG) format.

    The Session Layer

    As the name implies, functions at the session layer 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.
    X
    Application Layer Diagram
    X
    Presentation Layer Diagram
    X
    Client Server Model Upload
    X
    Client Server Model Upload
  • Peer-to-Peer Networks

    In the peer-to-peer (P2P) networking model, the data is accessed from a peer device without the use of a dedicated server.

    The P2P network model involves two parts: P2P networks and P2P applications. Both parts have similar features, but in practice work quite differently.

    In a P2P network, two or more computers are connected via a network and can share resources (such as printers and files) without having a dedicated server. Every connected end device (known as a peer) can function as both a server and a client. One computer might assume the role of server for one transaction while simultaneously serving as a client for another. The roles of client and server are set on a per request basis.

    A simple example of P2P networking is shown in the 📷 figure. In addition to sharing files, a network such as this one would allow users to enable networked games, or share an Internet connection.

    Peer-to-Peer Applications

    A P2P application allows a device to act as both a client and a server within the same communication, as shown in the 📷 figure. In this model, every client is a server and every server a client. P2P applications require that each end device provide a user interface and run a background service.

    Some P2P applications use a hybrid system where resource sharing is decentralized, but the indexes that point to resource locations are stored in a centralized directory. In a hybrid system, each peer accesses an index server to get the location of a resource stored on another peer.

    Common P2P Applications

    With P2P applications, each computer in the network running the application can act as a client or a server for the other computers in the network running the application. Common P2P networks include:
    eDonkey
    G2
    BitTorrent
    Bitcoin

    Some P2P applications are based on the Gnutella protocol, where each user shares whole files with other users. As shown in the 📷 figure, 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 Gnutella client applications are available, including gtk-gnutella, WireShare, Shareaza, and Bearshare.

    Many P2P applications allow users to share pieces of many files with each other at the same time. Clients use a small file called a torrent file to locate other users who have pieces that they need so that they can connect directly to them. This file also contains information about tracker computers that keep track of which users have what files. Clients ask for pieces from multiple users at the same time, known as a swarm. This technology is called BitTorrent. There are many BitTorrent clients including BitTorrent, uTorrent, Frostwire, and qBittorrent.

    Note: Any type of file can be shared between users. Many of these files are copyrighted, meaning that only the creator has the right to use and distribute them. It is against the law to download or distribute copyrighted files without permission from the copyright holder.
    X
    Peer to Peer Networking
    X
    Peer to Peer Networking
    X
    Gnutella Supports P2P Applications
  • Well-Known Application Layer Banner

    HTTP and HTTPS

    HTTP is a request/response protocol. When a client, typically a web browser, sends a request to a web server, HTTP specifies the message types used for that communication. The three common message types are GET, POST, and PUT (see the 📷 figure):
    GET - A client request for data. A client (web browser) sends the GET message to the web server to request HTML pages.
    POST - Uploads data files to the web server such as form data.
    PUT - Uploads resources or content to the web server such as an image.

    Although HTTP is remarkably flexible, it is not a secure protocol. The request messages send information to the server in plain text that can be intercepted and read. The server responses, typically HTML pages, are also unencrypted.

    For secure communication across the Internet, the HTTP Secure (HTTPS) protocol is used. HTTPS uses authentication and encryption to secure data as it travels between the client and server. HTTPS uses the same client request-server response process as HTTP, but the data stream is encrypted with Secure Socket Layer (SSL) before being transported across the network.

    Email Protocols

    One of the primary services offered by an ISP is email hosting. To run on a computer or other end device, email requires several applications and services, as shown in the 📷 figure. Email is a store-and-forward method of sending, storing, and retrieving electronic messages across a network. Email messages are stored in databases on mail servers.

    Email clients communicate with mail servers to send and receive email. Mail servers communicate with other mail servers to transport messages from one domain to another. An email client does not communicate directly with another email client when sending email. Instead, both clients rely on the mail server to transport messages.

    Email supports three separate protocols for operation: Simple Mail Transfer Protocol (SMTP), Post Office Protocol (POP), and IMAP. The application layer process that sends mail uses SMTP. A client retrieves email, however, using one of the two application layer protocols: POP or IMAP.

    Hypertext Transfer Protocol and Hypertext Markup Language

    HTTP Protocol Diagram
    HTTP Protocol Step 1 Diagram
    HTTP Protocol Step 2 Diagram
    HTTP Protocol Step 3 Diagram

       

    When a web address or uniform resource locator (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. URLs and Uniform Resource Identifier (URIs) are the names most people associate with web addresses.

    To better understand how the web browser and web server interact, we can examine how a web page is opened in a browser. For this example, use the http://www.cisco.com/index.html URL.

    First, as shown in Figure 1, the browser interprets the three parts of the URL:

    1. http (the protocol or scheme)
    2. www.cisco.com (the server name)
    3. index.html (the specific filename requested)

    As shown in Figure 2, the browser then checks with a name server to convert www.cisco.com into a numeric address, which it uses to connect to the server. Using HTTP requirements, the browser sends a GET request to the server and asks for the index.html file. The server, as shown in Figure 3, sends the HTML code for this web page to the browser. Finally, as shown in Figure 4, the browser deciphers the HTML code and formats the page for the browser window.
    X
    HTTP Protocol using GET
    X
    Email Protocol Diagram
  • SMTP Operation

    SMTP message formats require a message header and a message body. While the message body can contain any amount of text, the message header must have a properly formatted recipient email address and a sender address.

    When a client sends email, the client SMTP process connects with a server SMTP process on well-known port 25. After the connection is made, the client attempts to send the email to the server across the connection. When the server receives the message, it either places the message in a local account, if the recipient is local, or forwards the message to another mail server for delivery, as shown in the 📷 figure.

    The destination email server may not be online or may be busy when email messages are sent. Therefore, SMTP spools messages to be sent at a later time. Periodically, the server checks the queue for messages and attempts to send them again. If the message is still not delivered after a predetermined expiration time, it is returned to the sender as undeliverable.

    POP Operation

    POP is used by an application to retrieve mail from a mail server. With POP, mail is downloaded from the server to the client and then deleted on the server. This is how POP operates, by default.

    The server starts the POP service by passively listening on TCP port 110 for client connection requests. When a client wants to make use of the service, it sends a request to establish a TCP connection with the server. When the connection is established, the POP server sends a greeting. The client and POP server then exchange commands and responses until the connection is closed or aborted.

    With POP, email messages are downloaded to the client and removed from the server, so there is no centralized location where email messages are kept. Because POP does not store messages, it is undesirable for a small business that needs a centralized backup solution.

    📷 View Diagram

    IMAP Operation

    IMAP is another protocol that describes a method to retrieve email messages. Unlike POP, when the user connects to an IMAP-capable server, copies of the messages are downloaded to the client application. The original messages are kept on the server until manually deleted. Users view copies of the messages in their email client software.

    Users can create a file hierarchy on the server to organize and store mail. That file structure is duplicated on the email client as well. When a user decides to delete a message, the server synchronizes that action and deletes the message from the server.

    Click here to learn more about email protocols.

    📷 View Diagram
    X
    SMTP Operation
    X
    POP Operation
    X
    IMAP Operation
  • DNS Message Format

    The DNS server stores different types of resource records used to resolve names. These records contain the name, address, and type of record. Some of these record types are:
    A - An end device IPv4 address
    NS - An authoritative name server
    AAAA - An end device IPv6 address (pronounced quad-A)
    MX - A mail exchange record

    When a client makes a query, the server’s DNS process first looks at its own records to resolve the name. If it is unable to resolve the name using its stored records, it contacts other servers to resolve the name. After a match is found and returned to the original requesting server, the server temporarily stores the numbered address in the event that the same name is requested again.

    The DNS Client service on Windows PCs also stores previously resolved names in memory. The ipconfig /displaydns command displays all of the cached DNS entries.

    DNS Hierarchy

    The DNS protocol uses a hierarchical system to create a database to provide name resolution. The hierarchy looks like an inverted tree with the root at the top and branches below (see the 📷 figure). DNS uses domain names to form the hierarchy.

    The naming structure is broken down into small, manageable zones. Each DNS server maintains a specific database file and is only responsible for managing name-to-IP mappings for that small portion of the entire DNS structure. When a DNS server receives a request for a name translation that is not within its DNS zone, the DNS server forwards the request to another DNS server within the proper zone for translation.

    Note: DNS is scalable because hostname resolution is spread across multiple servers.

    The different top-level domains represent either the type of organisation or the country of origin. Examples of top-level domains are:
    .com - a business or industry
    .org - a non-profit organization
    .au - Australia
    .co - Colombia

    Domain Name Service

    Resolving DNS Addresses Step 1
    Resolving DNS Addresses Step 2
    Resolving DNS Addresses Step 3
    Resolving DNS Addresses Step 4
    Resolving DNS Addresses Step 5

        

    In data networks, devices are labeled with numeric IP addresses to send and receive data over networks. Domain names were created to convert the numeric address into a simple, recognisable name.

    On the Internet, these domain names, such as http://www.cisco.com, are much easier for people to remember than 198.133.219.25, which is the actual numeric address for this server. If Cisco decides to change the numeric address of www.cisco.com, it is transparent to the user because the domain name remains the same. The new address is simply linked to the existing domain name and connectivity is maintained.

    The DNS protocol defines an automated service that matches resource names with the required numeric network address. It includes the format for queries, responses, and data. The DNS protocol communications use a single format called a message. This message format is used for all types of client queries and server responses, error messages, and the transfer of resource record information between servers.

    Figures 1 through 5 display the steps involved in DNS resolution.
    X
    DNS Hierarchy
  • Dynamic Host Configuration Protocol cont...

    Many networks use both DHCP and static addressing. DHCP is used for general purpose hosts, such as end user devices. Static addressing is used for network devices, such as gateways, switches, servers, and printers.

    DHCPv6 (DHCP for IPv6) provides similar services for IPv6 clients. One important difference is that DHCPv6 does not provide a default gateway address. This can only be obtained dynamically from the router's Router Advertisement message.

    DHCP Operation

    As shown in the 📷 figure, when an IPv4, DHCP-configured device boots up or connects to the network, the client broadcasts a DHCP discover (DHCPDISCOVER) message to identify any available DHCP servers on the network. A DHCP server replies with a DHCP offer (DHCPOFFER) message, which offers a lease to the client. The offer message contains the IPv4 address and subnet mask to be assigned, the IPv4 address of the DNS server, and the IPv4 address of the default gateway. The lease offer also includes the duration of the lease.

    The client may receive multiple DHCPOFFER messages if there is more than one DHCP server on the local network. Therefore, it must choose between them, and sends a DHCP request (DHCPREQUEST) message that identifies the explicit server and lease offer that the client is accepting. A client may also choose to request an address that it had previously been allocated by the server.

    Assuming that the IPv4 address requested by the client, or offered by the server, is still available, the server returns a DHCP acknowledgment (DHCPACK) message that acknowledges to the client that the lease has been finalized. If the offer is no longer valid, then the selected server responds with a DHCP negative acknowledgment (DHCPNAK) message. If a DHCPNAK message is returned, then the selection process must begin again with a new DHCPDISCOVER message being transmitted. After the client has the lease, it must be renewed prior to the lease expiration through another DHCPREQUEST message.

    The DHCP server ensures that all IP addresses are unique (the same IP address cannot be assigned to two different network devices simultaneously). Most Internet providers use DHCP to allocate addresses to their customers.

    DHCPv6 has similar set of messages to those shown in the figure for DHCP for IPv4. The DHCPv6 messages are SOLICIT, ADVERTISE, INFORMATION REQUEST, and REPLY

    The nslookup Command

    When configuring a network device, one or more DNS Server addresses are provided that the DNS client can use for name resolution. Usually the Internet service provider (ISP) provides the addresses to use for the DNS servers. When a user’s application requests to connect to a remote device by name, the requesting DNS client queries the name server to resolve the name to a numeric address.

    Computer operating systems also have a utility called nslookup that allows the user to manually query the name servers to resolve a given host name. This utility can also be used to troubleshoot name resolution issues and to verify the current status of the name servers.

    In the 📷 figure, when the nslookup command is issued, the default DNS server configured for your host is displayed. The name of a host or domain can be entered at the nslookup prompt. The nslookup utility has many options available for extensive testing and verification of the DNS process.

    Dynamic Host Configuration Protocol

    The Dynamic Host Configuration Protocol (DHCP) for IPv4 service automates the assignment of IPv4 addresses, subnet masks, gateways, and other IPv4 networking parameters. This is referred to as dynamic addressing. The alternative to dynamic addressing is static addressing. When using static addressing, the network administrator manually enters IP address information on hosts.

    When a host connects to the network, the DHCP server is contacted, and an address is requested. The DHCP server chooses an address from a configured range of addresses called a pool and assigns (leases) it to the host.

    On larger networks, or where the user population changes frequently, DHCP is preferred for address assignment. New users may arrive and need connections; others may have new computers that must be connected. Rather than use static addressing for each connection, it is more efficient to have IP addresses assigned automatically using DHCP.

    DHCP-distributed addresses are leased for a set period of time. When the lease is expired, the address is returned to the pool for reuse if the host has been powered down or taken off the network. Users can freely move from location to location and easily re-establish network connections through DHCP.

    As the 📷 figure shows, various types of devices can be DHCP servers. The DHCP server in most medium-to-large networks is usually a local, dedicated PC-based server. With home networks, the DHCP server is usually located on the local router that connects the home network to the ISP.

    X
    Using nslookup
    X
    Dynamic Host Configuration Protocol
    X
    DCHP Messages
  • SMB Protocol
    SMB File Sharing

     

    File Transfer Protocol

    FTP is another commonly used application layer protocol. FTP was developed to allow for data transfers between a client and a server. An FTP client is an application that runs on a computer that is used to push and pull data from a server running an FTP daemon (FTPd).

    As the 📷 figure illustrates, to successfully transfer data, FTP requires two connections between the client and the server, one for commands and replies, the other for the actual file transfer:
    The client establishes the first connection to the server for control traffic using TCP port 21, consisting of client commands and server replies.
    The client establishes the second connection to the server for the actual data transfer using TCP port 20. This connection is created every time there is data to be transferred.

    The data transfer can happen in either direction. The client can download (pull) data from the server, or the client can upload (push) data to the server.

    Server Message Block

    The Server Message Block (SMB) is a client/server file sharing protocol that describes the structure of shared network resources, such as directories, files, printers, and serial ports. It is a request-response protocol. All SMB messages share a common format. This format uses a fixed-sized header, followed by a variable-sized parameter and data component.

    SMB messages can:
    Start, authenticate, and terminate sessions
    Control file and printer access
    Allow an application to send or receive messages to or from another device

    SMB file-sharing and print services have become the mainstay of Microsoft networking. With the introduction of the Windows 2000 software series, Microsoft changed the underlying structure for using SMB. In previous versions of Microsoft products, the SMB services used a non-TCP/IP protocol to implement name resolution. Beginning with Windows2000, all subsequent Microsoft products use DNS naming, which allows TCP/IP protocols to directly support SMB resource sharing, as shown in Figure 1. The SMB file exchange process between Windows PCs is shown in Figure 2.

    Unlike the file sharing supported by FTP, clients establish a long-term connection to servers. After 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.

    The LINUX and UNIX operating systems also provide a method of sharing resources with Microsoft networks using a version of SMB called SAMBA. The Apple Macintosh operating systems also support resource sharing using the SMB protocol.
    X
    FTP Process
  • Summary

    Applications are computer programs with which the user interacts and which initiate the data transfer process at the user’s request.
    Services are background programs that provide the connection between the application layer and the lower layers of the networking model.
    Protocols provide a structure of agreed-upon rules and processes that ensure services running on one particular device can send and receive data from a range of different network devices.
    HTTP supports the delivery of web pages to end devices.
    SMTP, POP, and IMAP support sending and receiving email.
    SMB and FTP enable users to share files.
    P2P applications make it easier for consumers to seamlessly share media.
    DNS resolves the human legible names used to refer to network resources into numeric addresses usable by the network
    All of these elements work together, at the application layer.
    The application layer enables users to work and play over the Internet.