|The presentation layer performs certain
functions that are requested sufficiently often to warrant
finding a general solution for them, rather than letting each
user solve the problems. In particular, unlike all the lower
layers, which are just interested in moving bits reliably from
here to there, the presentation layer is concerned with the
syntax and semantics of the information transmitted.
A typical example of a presentation service is encoding
data in a standard, agreed upon way. Most user programs do not
exchange random binary bit strings. They exchange things such
as people's names, dates, amounts of money, and invoices.
These items are represented as character strings, integers,
floating point numbers, and data structures composed of
several simpler items. Different computers have different
codes for representing character strings, integers and so on.
In order to make it possible for computers with different
representation to communicate, the data structures to be
exchanged can be defined in an abstract way, along with a
standard encoding to be used "on the wire". The job
of managing these abstract data structures and converting from
the representation used inside the computer to the network
standard representation is handled by the presentation layer.
The presentation layer is also concerned with other aspects
of information representation. For example, data compression
can be used here to reduce the number of bits that have to be
transmitted and cryptography is frequently required for
privacy and authentication.