Dove si colloca il livello Data Link
Nel modello ISO/OSI, il livello Data Link occupa il secondo posto partendo dal basso — immediatamente sopra al livello fisico e direttamente sotto al livello Network. La sua responsabilità è circoscritta ma fondamentale: garantire una comunicazione affidabile tra due nodi fisicamente collegati.
Il termine chiave è punto-punto: il livello Data Link non si occupa di instradare i dati attraverso una rete complessa — questo è compito del livello Network. Si occupa esclusivamente del trasferimento di un blocco di dati da un nodo A al nodo B immediatamente adiacente, attraverso il mezzo trasmissivo che li connette direttamente.
Cosa fa il livello Data Link — in trasmissione e in ricezione
Il livello Data Link svolge ruoli simmetrici nei due sensi della comunicazione:
Il risultato dell’incapsulamento è la trama (frame) — la PDU (Protocol Data Unit) del livello Data Link. Ogni livello del modello OSI ha la sua PDU: il livello Network lavora con i pacchetti, il livello Data Link con i frame, il livello fisico con i bit.
Le tre funzioni principali
Il livello Data Link garantisce tre servizi fondamentali che rendono la comunicazione tra nodi adiacenti affidabile e ordinata.
Strutturazione del flusso di bit in unità logiche delimitate — i frame. Definisce dove inizia e dove finisce ogni blocco di dati, così che il ricevitore sappia esattamente quanti bit leggere e quali interpretare come intestazione, dati e coda.
Sincronizzazione tra mittente e ricevitore. Se il trasmettitore è molto più veloce del ricevitore, i buffer di quest’ultimo potrebbero andare in overflow con conseguente perdita di dati. Il controllo del flusso regola il ritmo della trasmissione in modo che nessun frame vada perso.
Durante la trasmissione, il rumore elettromagnetico, attenuazioni e interferenze possono alterare i bit. Il livello Data Link aggiunge bit ridondanti al trailer che permettono al ricevitore di capire se il frame è arrivato integro. Alcuni meccanismi permettono anche di correggere gli errori.
Struttura di un frame
Indipendentemente dalla tecnologia specifica (Ethernet, Wi-Fi, PPP…), ogni frame è organizzato secondo uno schema comune a tre campi:
L’header è in testa perché il ricevitore deve leggere gli indirizzi prima di processare i dati — per sapere se il frame è destinato a lui e come interpretare il resto. Il trailer è in coda perché il calcolo del codice di controllo errori (CRC) può avvenire solo dopo aver visto tutti i bit del frame.
Le tre fasi della comunicazione
Il livello Data Link non si limita a trasferire singoli frame in modo isolato. Quando due nodi devono comunicare, il livello Data Link gestisce l’intera sessione di comunicazione attraverso tre fasi ben definite, analoghe a quelle di una telefonata:
Il livello Data Link nel contesto dello stack
È importante collocare correttamente il livello Data Link all’interno dell’intera architettura di rete. La tabella seguente mostra come ogni livello “vede” i dati in transito:
Il livello Data Link usa gli indirizzi fisici (MAC) — univoci per ogni scheda di rete nel mondo, assegnati dal produttore. Il livello Network usa gli indirizzi logici (IP) — assegnati dall’amministratore di rete e modificabili. Nei prossimi moduli vedremo in dettaglio come questi due tipi di indirizzamento cooperano grazie al protocollo ARP.
- Il livello Data Link (livello 2 OSI) gestisce la comunicazione punto-punto tra nodi fisicamente adiacenti. Non si occupa di instradamento su reti complesse — questo spetta al livello 3.
- In trasmissione riceve un pacchetto dal livello Network, aggiunge header e trailer formando un frame, e lo passa al livello fisico. In ricezione rimuove header e trailer e restituisce il payload al livello Network.
- Le tre funzioni fondamentali: framing (delimitazione dei frame nel flusso di bit), controllo del flusso (sincronizzazione mittente/ricevitore), rilevazione errori (tramite bit ridondanti nel trailer).
- Un frame è composto da: header (indirizzi fisici e controllo), payload (il pacchetto di livello 3, opaco al Data Link), trailer (bit di controllo CRC).
- La comunicazione avviene in tre fasi: apertura (handshake e accordo sui parametri), mantenimento (trasferimento dati con controllo del flusso), chiusura (termine ordinato della sessione).