Cap 2: il Modello ISO/OSI

Lo stack protocollare ISO/OSI

OSI è l’acronimo di Open Systems Interconnection, conosciuto anche come modello ISO/OSI in quanto tale suite di protocolli è stata standardizzata dall’apposito organismo internazionale ISO (International Organization for Standardization).
Nell’ambito dell’informatica e delle telecomunicazioni l’OSI è uno dei modelli in assoluto più importanti e costituisce una vera e propria pietra miliare. OSI è stato riconosciuto come standard nel 1984 dall’ISO, ovvero principale ente di standardizzazione internazionale. Tale modello definisce un’architettura a strati composta da 7 livelli, tramite i quali si descrive compiutamente l’intera struttura logica di una rete, ovvero si definiscono le funzioni e proprietà di una generica rete di telecomunicazioni nell’ambito di un sistema informatico seguendo un modello logico-gerarchico. Il modello OSI definisce con chiarezza gli aspetti teorici delle reti, tuttavia a livello pratico e implementativo lo standard maggiormente affermato per descrivere l’architettura di una rete a livelli è invece il TCP/IP, di cui parleremo più avanti, e che riprende ovviamente la quasi totalità dei concetti espressi da modello OSI. Lo standard OSI non è rigido, ma costituisce un modello di riferimento per le architetture di rete, che possono anche distanziarsi più o meno da esso. La differenza principale che esiste tra il modello TCP/IP e quello OSI consiste nel fatto che nel TCP/IP i livelli di presentazione e di sessione sono esterni alla pila di protocolli e sono solo 4, mentre in OSI i livelli sono 7. Vediamo in figura il loro confronto. Entrambi ovviamente descrivono in maniera eccellente l’architettura di una rete, pur se con molte differenze.

Figura 15: i livelli dello stack ISO/OSI
Figura 15: i livelli dello stack ISO/OSI

Come già visto il modello OSI è suddiviso in 7 livelli.

Ai tre livelli inferiori operano gli apparati di rete, come router e switch, e ovviamente ogni livello gestisce i dati in un modo diverso rispetto agli altri. L’unità in cui un determinato livello gestisce i dati è chiamata Protocol Data Unit (PDU). Una Protocol Data Unit (PDU) è l’unità di informazione o pacchetto scambiata tra due peer entities in un protocollo di comunicazione di un’architettura di rete a strati.

Alcuni livelli aggiungono informazioni specifiche del livello ai dati che gestiscono: queste informazioni aggiunte dai protocolli dei livelli possono essere trasmesse sotto forma di un’intestazione (o header), di trailer o anche in entrambe le posizioni. Nell’intestazione le informazioni vengono aggiunte all’inizio della PDU, mentre nel trailer le informazioni sui dati vengono aggiunte alla fine della PDU.
Queste informazioni aggiuntive, sotto forma quindi di intestazione o trailer, servono a trasmettere ulteriori informazioni utili a controllare la comunicazione tra due entità, o dispositivi.

Il modello OSI funziona in una strategia cosiddetta peer-layer, ovvero in maniera paritetica. Questa strategia implica che le informazioni di controllo aggiunte alla PDU da un livello hanno lo scopo di raggiungere il livello paritetico nell’entità ricevente.

Ad esempio, le informazioni di intestazione aggiunte a livello Network dal mittente verranno utilizzate sempre dal livello Network nell’host ricevente: queste informazioni sono scambiate solo tra le entità dello stesso livello (in modo quindi peer, o paritetico) e saranno insignificanti per gli altri livelli.

Risulta evidente che per una buona riuscita della comunicazione, nell’ambito di uno stesso livello, come il livello Network considerato, sia necessario utilizzare un protocollo, o dei protocolli, che indichino con esattezza il corretto formato dei dati da scambiare.

Prima di iniziare una breve trattazione di ogni livello, dobbiamo aggiungere un nuovo concetto riguardante le modalità di trasferimento dei dati, che sono essenzialmente due: modalità orientata alla connessione e modalità non orientata alla connessione, in gergo tecnico si dice connection-oriented e connectionless, ed in seguito è con questi termini che ci riferiremo all’una o all’altra.

Nella comunicazione connection-oriented, la connessione tra mittente e destinatario deve essere stabilita prima dell’inizio dell’effettiva trasmissione dei dati. Questo procedimento è del tutto analogo ad una telefonata: non possiamo iniziare a parlare con chi sta dall’altra parte del telefono se non prima viene stabilita una connessione.

Nelle comunicazioni connectionless invece non vi è alcun collegamento prima dell’inizio della trasmissione dei dati: le informazioni di controllo vengono aggiunte ai dati, i dati vengono quindi inviati a destinazione e non c’è nessuna garanzia che il destinatario abbia effettivamente ricevuto i dati oppure no o che li abbia ricevuti correttamente.

Questo procedimento è, sotto certi aspetti, analogo all’invio di una cartolina tramite la posta ordinaria: si scrive l’indirizzo del destinatario sul messaggio e lo si affida a chi lo dovrà trasmettere, ma spesso non si ha la possibilità di sapere se il messaggio è stato effettivamente e correttamente recapitato oppure no.

L’idea che sta alla base del modello OSI per descrivere il sistema delle reti non è specificare nei dettagli come funziona effettivamente la rete, ma solo definire gli elementi e le funzioni che compongono una rete in una maniera tale da rendere questi elementi e funzioni distinti tra loro e distribuibili su livelli.

Questa distinzione fornisce la capacità ai protocolli di funzionare in modo fluido e di essere facili da gestire. Nelle seguenti sezioni, vedremo le funzioni di ogni livello e come ogni livello gestisce i dati. Nella sezione successiva esamineremo il ciclo completo di trasmissione dei dati dall’host di origine all’host di destinazione.