Il livello Data Link: ruolo, funzioni e struttura del frame

// obiettivi di apprendimento
Descrivere il ruolo del livello Data Link nel modello ISO/OSI, indicando cosa riceve dal livello Network e cosa consegna al livello fisico in trasmissione e in ricezione
Identificare e descrivere le tre funzioni principali del livello Data Link: framing, controllo del flusso e rilevazione degli errori
Descrivere la struttura di un frame (header, payload, trailer) e il significato di ciascun campo
Descrivere le tre fasi della comunicazione a livello Data Link: apertura (handshake), mantenimento e chiusura
📄
Slides
Livello Data Link — ruolo, frame e fasi della comunicazione

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.

// analogia
Il livello Network è come il sistema postale nazionale che decide il percorso di un pacco da Milano a Palermo. Il livello Data Link è come il corriere locale che consegna fisicamente il pacco dal centro smistamento alla porta del destinatario — un unico tratto, un unico collegamento.

Cosa fa il livello Data Link — in trasmissione e in ricezione

Il livello Data Link svolge ruoli simmetrici nei due sensi della comunicazione:

📤 IN TRASMISSIONE
Riceve il pacchetto (PDU) dal livello Network sovrastante
Aggiunge un header (intestazione di livello 2) con indirizzi fisici e informazioni di controllo
Aggiunge un trailer (coda) con bit ridondanti per il controllo errori
Consegna il frame così costruito al livello fisico per la trasmissione
📥 IN RICEZIONE
Riceve un flusso di bit dal livello fisico sottostante
Riconosce l’inizio e la fine di ogni frame nel flusso di bit (framing)
Verifica l’integrità del frame tramite il trailer, scartandolo se corrotto
Rimuove header e trailer e consegna il payload al livello Network

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.

📦
FRAMING

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.

🚦
CONTROLLO DEL FLUSSO

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.

🔍
RILEVAZIONE ERRORI

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:

HEADER
intestazione
PAYLOAD
campo informativo (pacchetto di livello 3)
TRAILER
bit di controllo
HEADER
Contiene le informazioni di servizio necessarie alla comunicazione tra i due nodi. Tra i campi più importanti:
  • Indirizzo fisico del mittente — identifica il nodo che ha generato il frame
  • Indirizzo fisico del destinatario — identifica il nodo a cui il frame è diretto
  • Campo di controllo — numeri di sequenza, tipo di frame, flag di controllo del flusso
PAYLOAD
campo informativo
Il contenuto informativo del frame — il pacchetto che il livello Network ha consegnato al livello Data Link. Il livello Data Link non interpreta né modifica questo campo: lo tratta come una sequenza opaca di byte. Questa separazione tra livelli è il principio dell’incapsulamento.
TRAILER
coda
Bit ridondanti calcolati in funzione del contenuto del frame (header + payload). Il ricevitore esegue lo stesso calcolo sui dati ricevuti e confronta il risultato con quello nel trailer: se coincidono, il frame è integro; altrimenti è stato corrotto durante la trasmissione. La tecnica più comune è il CRC (Cyclic Redundancy Check), che studieremo nella lezione 3.
// header vs trailer — perché due posti separati?

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:

🤝
APERTURA
handshake iniziale
I nodi A e B si sincronizzano attraverso uno scambio iniziale di messaggi di controllo (handshake). In questa fase si accordano sui parametri della comunicazione: dimensione massima dei frame, numero di sequenza iniziale, tecniche di controllo del flusso. È l’equivalente del “Pronto? — Sì, ti sento” di una telefonata.
📡
MANTENIMENTO
trasferimento dati
La fase di comunicazione vera e propria: i frame vengono inviati, ricevuti e confermati secondo le regole stabilite nella fase di apertura. Il controllo del flusso garantisce che il ritmo di trasmissione non superi la capacità del ricevitore. In caso di errori o frame persi, il meccanismo di ritrasmissione interviene automaticamente.
🔚
CHIUSURA
fine comunicazione
Uno dei due nodi segnala la fine della trasmissione. Vengono liberati i buffer e le risorse allocate durante la fase di apertura. La chiusura è un processo ordinato che garantisce che tutti i frame in transito siano stati confermati prima di terminare la connessione.

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:

Livello OSIPDUApparati tipiciIndirizzamento
3 — NetworkPacchettoRouterIndirizzo IP
2 — Data Link ← siamo quiFrame (trama)Switch, NICIndirizzo MAC
1 — PhysicalBitHub, cavi, NIC— (segnali fisici)
// una distinzione importante

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.

📌 Riepilogo — Punti chiave
  • 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).

Lascia un commento