The Session Layeradds structure to the data circuit provided by the Transport Service. It provides an applications oriented data stream to the session user.

The Session Provider:

Two session entities co-operate using the Session Protocol. In all twenty-two session services are provided, consisting of fifty primitives.

The calling SS-USER is known as the INITIATOR and the called SS-USER is known as the RESPONDER. The user requesting the service is known as the requesting user and the corresponding user on the other side is known as the accepting user. SS-USERs are addressed at Session Service Access Points (SSAPs). This is an address composed of two parts:

the Session Selector and
the Transport address
This address uniquely identifies the SS-USER.

Session Connection Identifier:

This identifier is created during connection establishment. Its function is to uniquely name the session connection for that particular application. The Connection Identifier is composed of four parts:
    Calling SS-USER Reference (64 octets)
    Called SS-USER Reference (64 octets)
    Common Reference (64 octets)
    Additonal Reference (4 octets)

Functional Units

These are subsets of primitives which are available (the total no. available is extensive). The Kernel Functional Unit is always available. There are twelve other functional units available, the use of which is negotiated during connection establishment. Various combinations of functional units have proven popular. Upto 1987 three subsets were defined:
    Basic Activity Subset(BAS)
    Basic Combined Subset (BCS)
    Basic Synchronisation Subset (BSS)

Tokens

The right to invoke some session services is governed by ownership of a token.

User Data

Data is exchanged using Session Service Data Units, comprising a collection of one or more octets. There are three different types of data unit:
    NSSDU - normal
    XSSDU - expedited
    TSSDU - typed

Quality of Service (QOS)

Quality of Service is defined as a collection of parameter/value pairs. Most of these are passed directly to the Transport Service. However there are two that are specific to the Session Service:
    Optimised dialogue transfer - boolean
    Extended control - boolean
Optimised dialogue transfer: The ability to batch several primitives together for transmission as a single unit. Extended control: The ability to bypass normal flow control when attempting a data-destructive action.

Session Primitives

There are three distinct phases:
Connection Establishment
Data Transfer
Connection Release
State tables indicate in which order these may be invoked.

Token Management

Give Token
Please Token
Give Control

Dialogue Control

Provides synchronisation points within the dialogue. Three services provided
Major Synchronisation Point
Minor Synchronisation Point
Resynchronise

Connection Release

Three services provided.
Orderly release (all data in transit safely delivered.
User-initiated abort S_U_ABORT
Provider-initiated abort (informs two users that connection has been lost) S_P_ABORT