Livello Data Link

Livello 2: Data Link

La PDU del livello di Data Link è un frame, o pacchetto, il che significa che il livello di Data Link gestisce i dati come pacchetti. Questi pacchetti possono variare da poche centinaia di byte a poche migliaia di byte. Il livello Data Link aggiunge le sue informazioni di controllo sotto forma di un header e di un trailer
.
Il livello Data Link ha molte funzioni complesse rispetto ad altri livelli dello stack, ad esempio fornisce diversi tipi di funzioni per comunicazioni connection oriented e connectionless. In realtà, tutte le funzioni fornite alla comunicazione connectionless sono fornite anche alle comunicazioni connection oriented, ma non è vero il contrario.

Di seguito vediamo un elenco di funzioni fornite sia per le comunicazioni connection oriented che per le connessioni connectionless.

Controllo dell’interconnessione del circuito dati
Questa funzione fornisce alle entità di rete la capacità di controllare le interconnessioni di circuiti dati all’interno del livello fisico.

Identificazione e scambio di parametri
Ogni entità deve identificare sé stessa rispetto alle altre entità e ha necessità di scambiare come informazioni anche alcuni parametri che governano la connessione. Un esempio di questi parametri è la velocità dei dati.

Gestione degli errori
Alcuni canali fisici potrebbero essere suscettibili a fattori che impediscono ai dati di essere consegnati nel modo giusto. Questi fattori possono essere elettromagnetici, elettrici o dovuti alla temperatura. Una delle funzioni principali del livello Data Link è rilevare questi errori.

Inoltro
Alcune configurazioni di rete richiedono l’inoltro tra singole reti locali.

Gestione del livello Data Link
Analogamente alla gestione del livello fisico, il livello Data Link delega alcune operazioni di gestione ai protocolli utilizzati.

Oltre a quelle viste prima, applicabili quindi sia alle comunicazioni connection oriented che a quelle connectionless, esistono le seguenti funzionalità del livello Data Link che si applicano solo alle comunicazioni di tipo connection oriented.

Creazione e rilascio della connessione Data Link
Come indica il nome, questa funzione è responsabile della costituzione e rilascio delle connessioni Data Link tra entità comunicanti.

Trasmissione dati in modalità di connection oriented
La comunicazione connection oriented richiede determinati meccanismi per assicurare la consegna dei dati. Ad esempio, nella comunicazione connection oriented, per ogni pacchetto trasmesso, o gruppo di pacchetti, il ricevente trasmette indietro al mittente un pacchetto di riconoscimento, detto acknowledgement package, per comunicare la ricezione del pacchetto.

Suddivisione delle connessioni Data Link
Questa funzione ha lo scopo, se possibile, di suddividere le connessioni del livello Data Link in diverse connessioni fisiche.

Controllo della sequenza
Questa funzione assicura che i pacchetti di dati vengano ricevuti nello stesso ordine nel quale sono stati inviati, o in alternativa si assicura che i pacchetti, eventualmente arrivati in ordine diverso da quello originale, possano essere riorganizzati con l’ordine corretto dal destinatario.

Pacchettizzazione
Questa funzione prevede il riconoscimento di una sequenza di bit, trasmessa tramite una connessione fisica, come pacchetto di tipo Data Link.

Controllo del flusso
Nella comunicazione connection oriented, il mittente e il destinatario possono controllare dinamicamente la velocità di trasferimento dei dati. Nella comunicazione connectionless c’è il controllo del flusso limite del servizio ma nessun controllo del flusso peer. Ciò significa che nella comunicazione connectionless esiste un limite imposto al flusso dal supporto fisico e dal protocollo del livello fisico, ma la velocità può essere controllata dalle entità comunicanti.

Ripristino o correzione degli errori
Questa funzione cerca di correggere eventuali errori rilevati in base ai meccanismi utilizzati dal protocollo del livello Data Link. Nella comunicazione connectionless il livello Data Link può solo rilevare gli errori, ma non correggerli. Questa funzione tenta di correggere l’errore e, se fallisce, informa le entità di rete di quell’errore per eseguire la ritrasmissione.

Reset
Questa funzione forza il reset della connessione.