Datalink Layer

Nel mondo delle reti di calcolatori, Ethernet rappresenta la tecnologia più diffusa per la comunicazione all’interno delle reti locali (LAN). Fin dalla sua introduzione negli anni ’70, Ethernet si è evoluta costantemente, passando da semplici collegamenti a 10 Mbps fino alle moderne implementazioni da 100 Gbps e oltre.

Ma cosa rende Ethernet così importante? Questo standard definisce non solo il modo in cui i dispositivi si connettono tra loro, ma anche le regole per la trasmissione e la gestione dei dati. Grazie alla sua affidabilità, scalabilità e semplicità di implementazione, Ethernet è oggi il fondamento su cui si basano la maggior parte delle reti aziendali, domestiche e industriali.

In questo capitolo esploreremo il funzionamento di Ethernet, dalle sue basi concettuali fino agli aspetti più tecnici, come i frame di rete, gli switch e i protocolli di accesso al mezzo trasmissivo. Scopriremo come le reti Ethernet si sono trasformate nel tempo per supportare le esigenze moderne, inclusa la connettività wireless e le reti software-defined.

Datalink Layer

Il livello Data Link, o livello di collegamento dati, è il secondo strato del modello OSI e gioca un ruolo fondamentale nella comunicazione tra dispositivi in una rete locale. La sua funzione principale è quella di garantire un trasferimento affidabile dei dati tra due dispositivi direttamente collegati, come ad esempio un computer e uno switch o due computer su una rete locale (LAN). Questo livello agisce come intermediario tra il livello fisico (che si occupa dell’invio dei segnali) e il livello di rete (responsabile dell’instradamento dei pacchetti attraverso una rete più ampia). 

Nel modello OSI, il livello di rete è responsabile dell’instradamento dei pacchetti attraverso la rete. Una volta creato il pacchetto, che contiene l’indirizzo IP di origine e di destinazione, questo viene consegnato al livello datalink per essere trasmesso sul mezzo fisico. Il livello datalink incapsula il pacchetto all’interno di un frame, aggiungendo intestazioni e trailer che includono informazioni di controllo, come gli indirizzi MAC (Media Access Control) per l’instradamento locale e i controlli di errore. Il frame viene quindi trasmesso al livello fisico per la trasmissione effettiva dei dati.

Il livello datalink svolge un ruolo cruciale nel trasferimento dei dati all’interno di una rete locale, garantendo che i pacchetti viaggino correttamente da un nodo all’altro. La sua responsabilità principale è di muovere i pacchetti tra dispositivi fisicamente collegati, incapsulando i dati del livello di rete in frame.

I servizi principali svolti dal livello datalink sono:

  1. Framing
  2. Physical Addressing
  3. Flow Control
  4. Access Control
  5. Error Detection

Frame 

Il livello Data Link suddivide i dati in unità chiamate frame, che sono pacchetti più piccoli e gestibili. Ogni frame deve essere distinguibile dagli altri ed è costituito da tre parti fondamentali: l’header, il payload e il trailer. Se ad esempio vogliamo trasmettere un discorso formato da 5 frasi, potremmo fermarci per un centro tempo per far comprendere la fine di una frase e l’inizio di un’altra.

Per risolvere il problema del framing e quindi della suddivisione dei dati prima dell’immissione nel canale è necessario utilizzare particolari protocolli.

Physical Addressing 

Physical Addressing 

Sappiamo che il livello fisico si occupa di trasformare tutti i bit in segnali per transitare nel canale di comunicazione. Il datalink layer aggiunge ai dati ricevuti dal livello di rete informazioni fondamentali come l’indirizzo fisico dell’host sorgente e dell’host destinazione.

L’header del frame contiene informazioni importanti per la consegna del frame, come l’indirizzo MAC sorgente e quello di destinazione, che servono a identificare i dispositivi all’interno della stessa rete. Il payload è la parte effettiva dei dati che viene trasmessa, mentre il trailer include informazioni di controllo, come il controllo di ridondanza ciclico (CRC), che permette al ricevitore di verificare se i dati sono stati corrotti durante la trasmissione.

Flow Control

Supponiamo che nella comunicazione il nodo che invia i dati è molto più veloce del nodo che li riceve. Ad esempio il nodo mittente invia 100 pacchetti al secondo mentre il ricevente ne può ricevere 10 al secondo. Quest’ultimo risulterà certamente sovraccaricato e smetterà di funzionare. Il flow control è una delle responsabilità del datalink layer (più nel dettaglio di un suo sottolivello il Logical Link Control) e provvede ad un meccanismo di sincronizzazione delle velocità.

Access Control

La funzione del MAC è regolare come i dispositivi in una rete condivisa accedono al mezzo trasmissivo senza creare conflitti o collisioni. In pratica, il MAC assegna un indirizzo univoco a ogni dispositivo (indirizzo MAC) e utilizza protocolli per determinare quale dispositivo può trasmettere i dati in un dato momento.

Error Detection

Il livello datalink non solo gestisce l’accesso ai mezzi fisici, ma si occupa anche di rilevare e correggere errori durante la trasmissione dei dati. Questo processo avviene attraverso meccanismi di error detection e error correction. Per rilevare eventuali errori, vengono utilizzate tecniche come il checksum o il Cyclic Redundancy Check (CRC), che calcolano un valore basato sui dati trasmessi. Se il valore calcolato dal destinatario non corrisponde a quello inviato, significa che c’è stato un errore durante la trasmissione. In alcuni casi il layer può anche correggere errori minori autonomamente, ma per errori più gravi il pacchetto viene scartato e richiesto nuovamente. Questo garantisce l’integrità dei dati trasmessi tra i nodi, evitando che informazioni corrotte raggiungano livelli superiori del sistema.

Torna a Reti di Calcolatori