The sixth layer of the OSI reference model is the presentation layer. This layer is concerned with the issue relating to the external data representation. It is up to the session layer that we have assumed the user data as a string of bits, and we have discussed the conditions for reliable transfer of this bit stream from one end system to another.
The presentation layer, irrespective of the internal data representation, encodes the information into an external indication that the other end system’s presentation layer is well understood.
The function of the presentation layer is to encode the structured data (i.e., data to be transmitted which can be tricky even) from the internal format of the source machine to a bit stream suitable for transmission and then to decode it to the required representation at the destination which can be then understood by the user there.
The presentation layer's primary function is to provide the user with a way to execute the session service primitives. It also manages the set of data structures currently required, specification of complex data structure and data conversion into internal and external forms. These functions are closely related to data representation and data encoding techniques like compression and encryption.
For storage and process of data, different computers use diverse internal representation of data. There are various types of character sets like American code for information interchange (ASCII), extended binary coded decimal interchange code (EBCDIC), binarycoded decimal (BCD) codes etc.
Similarly, for integer representation, most microcomputers use two complement arithmetic on 16 to 32-bit integers. Some computers use one’s complement representation, and some use even up to 60 bits one's complement.
Some computers number their bytes from right to left while others from left to right. Because of these differences, even if the data is transmitted correctly and received correctly, the resultant values can differ from those of the shared values.
Data Compression is a widely used technique to save space in memory (main memory) and secondary storage devices like a disk, magnetic tapes etc. In general, data transmission used on computer networks uses public or private networks which require payment for their efforts.
The cost is usually calculated in terms of time or the amount of data sent. If it is a fixed monthly or yearly subscription, i.e., fixed charges, we typically don't need extra techniques. But if the cost depends on the volume of data, then the data compression technique is a boon for users.
Data compression is closely related to data representation because if a particular data needs 10 bytes for its expression, a few bits appear again and again in that data. Then by representing those standard bits in a specific manner, it can reduce it to 4 bytes.
This can be done by using codes and several times, its repetition or some other way. Similarly, if a string contains the maximum percentage of positive integers, they can be sent in a single unsigned byte if most of them are between 0 and 255.
In such cases, a code is transmitted before the byte to indicate an actual integer of more bits (example 32 bits follows).
One of the major problems during data transmissions on networks is to protect the data from unauthorized users. This is dealt with under the security and privacy of networks. As the network mostly belongs to single organizations in older days, maintaining privacy and security control was more accessible.
But nowadays, as the network does not belong to a single organization, it is also challenging to ensure that the data sent is not copied and accessed by unauthorized users. Wiretapping is widespread.
Worst of all, it is in satellite links where the data is available to anyone who uses an antenna and tries to capture the data from the transmission channel secretly.
These security services should perform the following functions: