s the application-specific services that use the services of lower layers. User applications that perform the tasks that com- puters are purchased for are not included in the application layer, but they communicate with the help of the application layer protocol. An example of a user application is a word processing program. Often needed communications applications, such as file transfer or an ASCII terminal, have been defined as the application layer protocols to serve any user application that needs their functions. Communications applications provide a common vendor-independent service for user applications of any vendor. The application layer services are usually available for the programmer as other services of the operating system in use. With the help of these services software application programmers (designing, e.g., word processing software) do not have to worry about actual data transmission at all. They may use all of the services of the protocol stack in their development environment. One example of application protocols is electronic mail. In addition to a service similar to file transfer, it provides ready-made functions for deleting, sending, and reading mail. The specifications of the application layer proto- col define, for example, the format of addresses and message fields. To distinguish between application programs and the application layer protocol, let us look at an example of electronic mail. We may have an applica- tion running on top of the application layer in our computer. This program may provide nice colors, a user-friendly editor, and separate windows for addresses and messages. It may also provide a user-friendly addressing method, that is, we can give a destination address such as "John" that is converted by the software to the format that the application layer understands. Note that the application layer service provides the communications services required, but we may enhance them with application software for local purposes. Some examples of application protocols are as follow