L’Open System Interconnection (OSI) è uno standard per reti di calcolatori promosso dall’International Organization for Standardization (ISO) che definisce la struttura logica della rete stessa. Il modello, uno standard de iure, fu adottato nel 1978 ed è internazionalmente conosciuto come modello ISO/OSI. Per capire cos’è, bisogna partire da una pila composta da 7 pezzi.
L’architettura logica di tutte le reti a commutazione di pacchetto, è composta da una pila di protocolli (sette per l’esattezza), ognuno dei quali regola una precisa parte del processo di comunicazione e ognuno strettamente legato a quello che lo segue e a quello che lo precede. Si parte dal cosiddetto livello (o layer) Fisico, dove a esser regolato è lo scambio di bit tra due nodi della rete, sino ad arrivare al cosiddetto livello Applicazione. Si realizza, quindi, una comunicazione multilivello, cosa che permette di scegliere e adattare protocolli di comunicazione e relativi algoritmi di elaborazione alla particolare rete di telecomunicazione che si intende creare.
I livelli che compongono il modello ISO/OSI sono quindi i seguenti:
Livello 1: fisico (Physical layer)
A questo livello troviamo i protocolli che regolano la trasmissione dei dati tra i due nodi della rete, occupandosi principalmente della forma e tensione del segnale. Vengono stabilite le tensioni elettromagnetiche che rappresentano i valori logici dei bit trasmessi, la durata in microsecondi del segnale che identifica i dati da trasmettere, la codificazione e la modulazione utilizzata. Nel caso in cui la comunicazione sia bidirezionale (duplex), vengono anche definiti gli standard per l’invio dei dati nelle due direzioni.
Livello 2: collegamento (Datalink layer)
Il secondo livello serve a formare i pacchetti di dati da far viaggiare lungo la dorsale di comunicazione. I dati vengono frammentati (questa attività viene detta di framing), impacchettati e modificati, in modo da aggiungere un header (intestazione) e una tail (coda), che hanno la funzione anche di sequenza di controllo. Per ogni pacchetto ricevuto il destinatario trasmette al mittente un segnale di ACK (acknowledgment, conferma di ricevuta) facendo così capire al mittente quali pacchetti siano o meno arrivati a destinazione. Nel caso di pacchetti mal trasmessi (corrotti o incompleti) o persi, il mittente deve occuparsi della loro ri-trasmissione.
Livello 3: rete (Network layer)
I protocolli appartenenti a questo livello servono a rendere quelli superiori indipendenti dai mezzi fisici utilizzati per la comunicazione tra i due punti della rete. Si occupa, quindi, dell’attività di routing (instradamento, inteso come individuazione del percorso di rete da utilizzare per la consegna dei pacchetti) e della conversione dei dati nel caso in cui i due nodi siano ospitati da reti con caratteristiche differenti (traduzione degli indirizzi di rete, nuova frammentazione dei pacchetti se la rete ha un diverso Maximum Transmission Unit).
Livello 4: trasporto (Transport layer)
Il livello mediano si occupa del trasporto fisico dei dati. I protocolli di questo livello hanno il compito di determinare tutto ciò che riguarda la connessione tra i due host (sorgente e destinatario). Stabiliscono, mantengono e terminano la connessione (che deve essere affidabile e duratura per assicurare la corretta trasmissione dei dati e allo stesso tempo non durare più dello stretto necessario per evitare di congestionare la rete) e controllano il sovraccarico dei router di rete (evitando che troppi pacchetti di dati arrivino allo stesso router nello stesso momento).
Livello 5: sessione (Session layer)
Si occupa di instaurare, mantenere e abbattere connessioni tra applicazioni cooperanti (sessioni). Oltre ai servizi offerti dal livello di trasporto, consente di aggiungere funzioni avanzate come la gestione del dialogo, dei tokens (per il riconoscimento univoco degli applicativi) e la sincronizzazione.
Livello 6: presentazione (Presentation layer)
Il sesto e penultimo livello è quello della traduzione. I protocolli appartenenti a questo livello consentono di trasformare i dati delle applicazioni in un formato standard e offrire servizi di comunicazione comuni, come la crittografia e la formattazione.
Livello 7: applicazione (Application layer)
È il livello più “vicino” all’utente finale e che, quindi, opera direttamente sul software. A questo livello, i protocolli interagiscono direttamente con i programmi e i software che al loro interno hanno moduli di comunicazione di rete (come ad esempio i client di posta elettronica). Le funzioni tipiche di questi protocolli sono l’identificazione dei partner nella comunicazione, l’identificazione delle risorse disponibili e la sincronizzazione della comunicazione.