| We have just learned that network processes | | | | It is important to distinguish between network |
| communicate with each other by sending | | | | applications and application- layer protocols. An |
| messages into sockets. But how are these | | | | application-layer protocol is only one piece of a |
| messages structured? What are the meanings of | | | | network application. Let's look at a couple of |
| the various fields in the messages? When do the | | | | examples. The Web is a client-server application |
| processes send the messages? These questions | | | | that allows users to obtain documents from Web |
| bring us into the realm of application-layer | | | | servers on demand. The Web application consists |
| protocols. An application-layer protocol defines | | | | of many components, including a standard for |
| how an application's processes, running on | | | | document formats (that is, HTML), Web browsers |
| different end systems, pass messages to each | | | | (for example, Firefox and Microsoft Internet |
| other. In particular, an application-layer protocol | | | | Explorer), Web servers (for example, Apache and |
| defines:o The types of messages exchanged, for | | | | Microsoft servers), and an application-layer |
| example, request messages and response | | | | protocol. The Web's application-layer protocol, H'I' |
| messageso The syntax of the various message | | | | defines the format and sequence of the |
| types, such as the fields in the message and how | | | | messages that are passed between browser and |
| the fields are delineatedo The semantics of the | | | | Web server. Thus, HTTP is only one piece (albeit, |
| fields, that is, the meaning of the information in | | | | an important piece) of the Web application. As |
| the fieldso Rules for determining when and how a | | | | another example, an Internet e-mail application |
| process sends messages and responds to | | | | also has many components, including mail servers |
| messages | | | | that house user mailboxes; mail readers that allow |
| Some application-layer protocols are specified in | | | | users to read and create messages; a standard |
| RFCs and are therefore in the public domain. For | | | | for defining the structure of an e-mail message; |
| example, the Web's application-layer protocol, | | | | and application-layer protocols that define how |
| HTTP (the Hyper Text Transfer Protocol (RFC | | | | messages are passed between servers, how |
| 2616]), is available as an REC. If a browser | | | | messages are passed between servers and mail |
| developer follows the rules of the HTTP RFC, the | | | | readers, and how the contents of certain parts of |
| browser will be able to retrieve Web pages from | | | | the mail message (for example, a mail message |
| any Web server that has also followed the rules | | | | header) are to be interpreted. The principal |
| of the HTTP RFC. | | | | application-layer protocol for electronic mail is |
| Many other application-layer protocols are | | | | SMTP (Simple Mail Transfer Protocol) [RFC 2821]. |
| proprietary and intentionally not available in the | | | | Thus, e-mail's principal application-layer protocol, |
| public domain. For example, many existing P2P | | | | SMTP, is only one piece (albeit, an important |
| file-sharing systems use proprietary | | | | piece) of the e-mail application. |
| application-layer protocols. | | | | |