|The application layer contains a variety of
protocols that are commonly needed. For example, there are
hundreds of incompatible terminal types in the world. Consider
the plight of a full screen editor that is supposed to work
over a network with many different terminal types, each with
different screen layouts, escape sequences for inserting and
deleting text, moving the cursor, etc.
One way to solve this problem is to define an abstract
network virtual terminal for which editors and other programs
can be written to deal with. To handle each terminal type, a
piece of software must be written to map the functions of the
network virtual terminal onto the real terminal. For example,
when the editor moves the virtual terminal's cursor to the
upper left-hand corner of the screen, this software must issue
the proper command sequence to the real terminal to get its
cursor there too. All the virtual terminal software is in the
Another application layer function is file transfer.
Different file systems have different file naming conventions,
different ways of representing text lines, and so on.
Transferring a file between two different systems requires
handling these and other incompatibilities. This work, too,
belongs to the application layer, as do electronic mail,
remote job entry, directory lookup, and various other
general-purpose and special-purpose facilities.