Il modello ISO/OSI

L’Open System Interconnection (OSI), è uno standard de iure per la creazione di una rete di calcolatori che definisce la struttura logica della rete stessa.

Lo standard OSI è stato stabilito nel 1984 dall’International Organization for Standardization (ISO) ed è anche conosciuto come modello ISO/OSI.

Il modello ISO/OSI è formato da una pila di 7 livelli di protocolli ognuno dei quali si occupa di determinati aspetti della comunicazione fra due nodi della rete.

Ogni livello della pila utilizza un certo tipo di dato ed individua protocolli di rete dello stesso livello, due nodi possono comunicare tra loro solo utilizzando lo stesso livello per scambiare informazioni.

Per realizzare la comunicazione tra due nodi A e B, le informazioni del livello n del nodo di inoltro vengono trasmesse al livello n-1 fino ad arrivare a quello fisico (di trasmissione), per poi risalire i livelli nel nodo di arrivo.

In questo modo si ottiene una comunicazione multilivello e possiamo scegliere diversi algoritmi e protocolli in base alla rete che vogliamo realizzare.

Questo garantisce la modularità al sistema e ci permette di sostituire protocolli di un certo livello senza dover cambiare quelli a livelli diversi.

Livello 1 – Fisico

I protocolli a questo livello regolano la trasmissione dei dati tra due nodi della rete, si occupano della forma e dei livelli di tensione del segnale.

Le procedure meccaniche ed elettroniche stabiliscono, mantengono e terminano il collegamento fisico, trasferendo le informazioni in forma di Bit.

Si decidono quindi:

  • Il numero di bit da utilizzare nel collegamento.
  • La durata in microsecondi del segnale che identifica un bit.
  • I connettori da utilizzare per collegare l’hardware al mezzo trasmissivo.
  • Se la trasmissione è simultanea (Full Duplex) o in una sola direzione (Half Duplex).
  • Il tipo di modulazione per i segnali elettrici utilizzata.

Livello 2 – Collegamento (Data Link)

Lo scopo di questo livello è di trasferire le informazioni ricevute, inviandole in modo sicuro in forma di pacchetti.

I dati provenienti dal livello superiore vengono frammentati (framing) e incapsulati in un nuovo pacchetto che contiene header (intestazione) ed coda (tail) usati per sequenze di controllo, i singoli pacchetti sono detti frame.

Per ogni frame ricevuto il destinatario trasmette al mittente un segnale di acknowledgment (ACK) che contiene lo stato della trasmissione, il mittente deve trasmettere di nuovo i pacchetti danneggiati o non ricevuti.

Livello 3 – Rete

Il livello di rete si occupa di rendere i livelli superiori indipendenti dai meccanismi e dalle tecnologie utilizzate per la connessione.

Il livello 3 si occupa del routing, cioè di scegliere il percorso migliore per la trasmissione dei pacchetti tra due nodi della rete.

Se i due nodi fanno parte di reti con caratteristiche diverse, si devono tradurre i dati tramite i seguenti passaggi:

  • Traduzione degli indirizzi di rete
  • Frammentare i pacchetti se le due reti hanno diverse Maximum Trasmission Unit (massima dimensione in byte del pacchetto ).
  • Utilizzare gateway se si devono gestire protocolli diversi.

Livello 4 – Trasporto

I protocolli di questo livello si occupano del trasferimento dati da host sorgente a host destinatario:

  • Stabiliscono, mantengono e terminano la connessione, garantendo la trasmissione dei dati, e cercando di ottimizzare il tempo di trasferimento per non congestionare la rete.
  • Controllano la congestione, cioè si deve evitare che un router riceva nello stesso tempo più pacchetti di quanti ne riesce a gestire.

Livello 5 – Sessione

Il livello di sessione instaura, mantiene ed abbatte connessioni tra applicazioni cooperanti, dette sessioni.

Permette di aggiungere oltre ai servizi del livello di trasporto, altri più avanzati:

  • Sincronizzazione, si inseriscono dei checkpoint in modo da ridurre la quantità di dati da trasmettere in caso di errori.
  • Gestione del token, si usa per effettuare la mutua esclusione.
  • Gestione del dialogo, se è mono o bidirezionale.

Livello 6 – Presentazione

Lo scopo dei protocolli di questo livello è di trasformare i dati delle applicazioni in un formato standardizzato comprensibile da più applicazioni.

Si provvede quindi alla strutturazione, sincronizzazione e gestione del dialogo tra diverse entità di applicazione e si risolvono i problemi di compatibilità di dati.

Sono forniti servizi di comunicazione comuni quali : crittografia, compressione del testo e formattazione.

Si occupa di gestire la sintassi dei dati da trasferire che può essere :

  • Astratta, cioè la definizione formale dei dati scambiati tra gli applicativi.
  • Concreta locale, come i dati sono rappresentati localmente.
  • Di trasferimento, cioè come sono codificati i dati durante il trasferimento.

Livello 7 – Applicazione

In questo livello i protocolli operano direttamente con le applicazioni che hanno al loro interno i moduli di comunicazione di rete.

Lo scopo del livello di applicazione è di creare un interfaccia tra l’utente e la macchina e gestire le operazioni di trasferimento dati, terminale virtuale e posta elettronica.