Livello di sessione: tutto ciò che è importante sapere sul quinto livello del modello ISO/OSI
Il quinto livello del modello ISO/OSI è chiamato livello di sessione. È responsabile del collegamento tra due terminali, organizza lo scambio di dati e lo sincronizza. Così, in caso di un’interruzione improvvisa, la comunicazione non deve ricominciare da capo.
Cos’è il livello di sessione?
Il livello di sessione è anche chiamato livello di gestione della comunicazione o Session Layer. È il quinto dei sette livelli del modello ISO/OSI, sviluppato negli anni Settanta per definire standard per l’interazione tra dispositivi e sistemi diversi in una rete.
Tutti e sette i livelli hanno compiti specifici e sono interdipendenti. Il livello di sessione si occupa dell’organizzazione del collegamento tra due terminali. Per far ciò crea le cosiddette “sessioni”, che offrono diversi servizi. Il livello di sessione lavora a stretto contatto con i livelli circostanti del modello ISO/OSI. I sette livelli sono i seguenti, dal basso verso l’alto:
- Livello fisico (Physical Layer)
- Livello di collegamento dati (Data Link Layer)
- Livello di rete (Network Layer)
- Livello di trasporto (Transport Layer)
- Livello di sessione (Session Layer)
- Livello di presentazione (Presentation Layer)
- Livello di applicazione (Application Layer)
Gestione della comunicazione nel livello di sessione
Il compito principale del livello di sessione è instaurare una connessione logica tra due sistemi. Questo collegamento unico e univoco è denominato “sessione”. Anche il controllo di queste sessioni è compito del livello di sessione. Ad esempio, può concedere l’accesso temporaneo a un altro sistema e gestirne la comunicazione.
La comunicazione avviene su entrambi i lati, in parallelo o in base alla direzione. Si parla di controllo del dialogo (dialog control), eseguito dal livello di sessione del modello ISO/OSI. In una comunicazione unilaterale il Session Layer può assegnare token per regolare la sequenza, permettendo così un dialogo indisturbato.
Per il livello di sessione questi token sono suddivisi in quattro categorie.
- Token di dati (Data Token): durante una comunicazione unilaterale in modalità half duplex indicano verso quale lato deve essere eseguito l’invio.
- Token di attività (Activity Major Token): i token di attività suddividono un collegamento in diverse attività. Se un’attività viene interrotta o termina, può essere ripresa in un secondo momento nella stessa o in un’altra sessione.
- Token di sincronizzazione (Synchronize Minor Token): questi token, numerati da 0 a 999.999, sono usati per suddividere una comunicazione. Troverete maggiori informazioni sulla sincronizzazione nel livello di sessione più avanti nel testo.
- Token di fine (Release Token): segnano la fine di una sessione.
Sincronizzazione nel livello di sessione
Oltre all’organizzazione e alla gestione della comunicazione, un altro servizio molto importante offerto dal livello di sessione è la sincronizzazione dello scambio di dati. Questo servizio risulta rilevante in particolare quando nel quarto livello o in uno sottostante una trasmissione di dati viene interrotta inaspettatamente e involontariamente.
Proprio per questi casi il livello di sessione crea punti di sincronizzazione. Se la comunicazione si interrompe, è possibile riprendere la trasmissione a partire dal punto di sincronizzazione, senza dover ricominciare dall’inizio. Questo servizio è di grande aiuto specialmente per la comunicazione attraverso connessioni lente o instabili o in caso di file di dimensioni particolarmente grandi.
I punti di sincronizzazione messi a disposizione dal livello di sessione si suddividono in due grandi categorie.
- Punti di sincronizzazione maggiori: suddividono i dati da scambiare in singole unità. Questi punti di sincronizzazione devono essere espressamente confermati.
- Punti di sincronizzazione minori: assicurano una struttura logica e pratica all’interno delle unità. La loro conferma è opzionale.
Quali servizi svolge il livello di sessione?
I servizi del livello di sessione, in parte già menzionati, sono messi a disposizione per i processi applicativi. Tutti perseguono lo scopo di organizzare e sincronizzare meglio la comunicazione. Sono usati quando il livello di sessione richiede al livello di trasporto (livello 4) un collegamento con un secondo computer. I diversi servizi sono raggruppati in unità funzionali. L’Organizzazione internazionale per la normazione (ISO), che ha contribuito a sviluppare anche il modello ISO/OSI, propone la classificazione seguente per le unità funzionali. La combinazione adatta è definita prima della sessione dalle due parti.
- Basic Combined Subset (BCS): compatibile con kernel, half duplex e duplex.
- Basic Synchronized Subset (BSS): compatibile con kernel, half duplex, negotiated release, punti di sincronizzazione minori e maggiori e risincronizzazione.
- Basic Activity Subset (BAS): compatibile con kernel, half duplex, punti di sincronizzazione minori, eccezioni, gestione attività.
Quali protocolli usano il livello di sessione?
Molti sono i protocolli che usano il livello di sessione. A questo scopo, questo livello mette a disposizione i suoi protocolli e servizi ai livelli superiori tramite interfacce di programmazione. I parametri e le proprietà dei livelli sottostanti non sono rilevanti per i collegamenti di comunicazione utilizzabili. Tra i protocolli che usano il livello di sessione troviamo ad esempio: