The Session Layer allows users on different machines to establish sessions between them. A session allows ordinary data transport, but also provides some enhanced services useful in some applications.
One service which the Session layer provides is the management of dialogue control. For example, sessions can enable traffic to go in both directions simultaneously, or in only one direction at a time. Thus if traffic can only travel one way at a time, the Session Layer can assist in keeping track of whose turn it is.
A session service closely related to this is token management. In some protocols it is mandatory that both sides do not attempt the same operation at the same time. In order to achieve this, the Session Layer provides tokens that can be exchanged and consequently only the side possessing the token can perform the critical operation.
Lastly, a further session service is synchronisation. For example, consider the problem when attempting to implement a two-hour file transfer between two machines on a network with a 1 hour mean time between crashes. After each transfer was aborted, the whole transfer would have to commence once more, from the beginning, and would probably fail once more when the network crashed again. In order to eliminate this problem, the Session Layer provides a way to insert checkpoints into the data stream, so that after a crash, only the data after the last checkpoint have to be repeated.
Services provided to the Presentation Layer
Below are some of the functions found within the Session Layer:
Thus, in conclusion, the Session Layer provides the synchronisation and management of the dialogue between applications. Moreover, it is this layer which tackles such problems as character code conversion, dialogue control and the insertion of checkpoints in the data steam.