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, his 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 application layer.
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. |