Application-Layer Protocols

Application-Layer Protocols

We have just studied that network processes communicate with each other by sending messages into sockets. But how are these messages structured? What are the meanings of the various fields in the messages? When do the processes send the messages? These questions bring us into the realm of application-layer protocols. An application-layer protocol describes how an application's processes, running on different end systems, pass messages to each other. Particularly, an application-layer protocol defines:

●  The types of messages exchanged, for instance, request messages and response messages

●  The syntax of the various message types, such as the fields in the message and how the fields are
    delineated

●  The semantics of she fields, that is, the meaning of the information in the fields

●  Rules for determining when and how a process sends messages and responds to messages

Some application-layer protocols are specified in RFCs and are therefore in the public domain. For instance, the Web's application-layer protocol, HTTP (the HyperText Transfer Protocol [RFC 2616]), is available as an RFC. If a browser developer follows the rules of the HTTP RFC, the browser will be able to recover Web pages from any Web server that has also followed the rules of the HTTP RFC. Many other application-layer protocols are proprietary and deliberately not available in the public domain. For instance, many existing P2P file-sharing systems use proprietary application-layer protocols.

It is important to distinguish between network applications and application-layer protocols. An application-layer protocol is only one piece of a network application. Let's look at a couple of examples. The Web is a client-server application that allows users to obtain documents from Web severs on demand. The Web application consists of many elements, including a standard for document formats (that is, HTML), Web browsers (for instance, Firefox and Microsoft Internet Explorer), Web servers (for instance, Apache and Microsoft servers), and an application-layer protocol. The Web's application-layer protocol, HTTP, defines the format and sequence of the messages that are passed between browser and Web server. Therefore, HTTP is only one piece (albeit, an important piece) of the Web application. As another example, an Internet e-mail application also has many components, including mail servers that house user mailboxes; mail readers that allow users to read and create messages; a standard for defining the structure of an e-mail message; and application-layer protocols that define how messages are passed between servers, how messages are passed between servers and mail readers, and how the contents of certain parts of the mail message (for instance, a mail message header) are to be interpreted. The principal application-layer protocol for electronic mail is SMTP (Simple Mail Transfer Protocol) [RFC 5321]. Therefore, e-mail's principal application-layer protocol, SMTP, is only one piece (albeit, an important piece) of the e-mail application.

Network Applications Covered in This Blog


New public domain and proprietary Internet applications are being made every day. Rather than covering a large number of Internet applications in an encyclopedic manner, we have chosen to focus on a small number of applications that are both pervasive and important. In this section we discuss five important applications: the Web, file transfer, electronic mail, directory service, and P2P applications. We first discuss the Web, not only because it is very much popular application, but also because its application-layer protocol, HTTP, is straightforward and easy to understand. After covering the Web, we briefly study FTP, because it provides a nice contrast to HTTP. We then discuss electronic mail, the Internet's first killer application. E-mail is more complex than the Web in the sense that it makes use of not one but various application-layer protocols. After e-mail, we cover DNS, which gives a directory service for the Internet. Most users do not interact with DNS directly; instead, users invoke DNS indirectly through other applications (including the Web, file transfer, and electronic mail). DNS demonstrates nicely how a piece of core network functionality (network-name to network-address translation) can be implemented at the application layer in the Internet. Lastly, we discuss various P2P applications, including file distribution, distributed databases, and IP telephony.



Tags

sockets, application-layer protocol, end systems, internet applications

Copy Right

The contents available on this website are copyrighted by TechPlus unless otherwise indicated. All rights are reserved by TechPlus, and content may not be reproduced, published, or transferred in any form or by any means, except with the prior written permission of TechPlus.