Livello data link o livello di collegamento dati

Livello data link

Il livello di collegamento dati (o data link layer) è il secondo livello dell’architettura di rete basata sul modello ISO/OSI per l’interconnessione di sistemi aperti. Questo livello in trasmissione riceve pacchetti dati dal livello di rete e  passarli al s livello fisico con l’obiettivo di permettere il trasferimento affidabile dei dati attraverso il sottostante canale.  Ciò consente di far apparire in ricezione, al livello superiore, il mezzo fisico come una linea di trasmissione esente da errori.
Analizzando il livello data link scopriamo che esistono due tipologie fondamentali di canali:
Al primo tipo appartengono i canali broadcast che connettono un gruppo di host nelle LAN wireless, nelle reti satellitari. Poiché più host sono connessi allo stesso canale di comunicazione, è necessario un protocollo di accesso al mezzo trasmissivo.
data link
Al secondo tipo appartiene il canale di comunicazione punto a punto, come quello che spesso si trova tra due router collegati da un canale a lunga distanza o tra il computer di un ufficio e lo switch Ethernet nelle vicinanze.
data link
I datagrammi che devono essere trasferiti da un host sorgente a uno di destinazione, devono essere trasportati lungo ciascun collegamento nel percorso da un estremo all’altro. Consideriamo come esempio la rete in figura e supponiamo di voler inviare un datagramma da uno degli host wireless a uno dei server. Il datagramma dovrà attraversare sei collegamenti di diverso tipo:

  • WiFi tra l’host sorgente e l’ access point WiFi;
  • Ethernet dall’access point allo switch;
  • tra lo switch e il router;
  • tra i tre router;
  • tra il router e il server.
data link animata

Su ogni collegamento, un nodo trasmittente incapsula il datagramma in un frame del livello di collegamento (link-layer frame) e lo trasmette lungo il collegamento stesso.

Servizi offerti dal livello data link

Sebbene il servizio di base di questo livello è il trasporto di datagrammi da un nodo a quello adiacente lungo un singolo canale di comunicazione, i dettagli dei servizi forniti possono variare da un protocollo all’altro. I possibili servizi che possono essere offerti sono:

  1. Framing: Quasi tutti i protocolli incapsulano i datagrammi del livello di rete all’interno di un frame a livello di collegamento, prima di trasmetterlo. I frame sono costituiti da un campo dati, nel quale è inserito il datagramma, e da vari campi di intestazione. La struttura del frame è specificata dal protocollo.
  2. Controllo del Flusso : evitare che siano inviati dati ad una velocità incompatibile alla capacità di acquisizione del destinatario, evitare che in una trasmissione bidirezionale i due nodi trasmettano contemporaneamente.[
  3. Controllo degli errori: l nodo ricevente può decidere, erroneamente, che un bit in un frame sia 0 quando questo era stato trasmesso come 1 , e viceversa. Gli errori di bit sono causati  dai disturbi elettromagnetici. Siccome non è utile inoltrare i datagrammi contenenti errori, molti protocolli del livello di collegamento forniscono un meccanismo per rilevarne  la presenza.

Frame

I protocolli di livello due  possono essere distinti in due grandi categorie:

  • protocolli orientati al byte.
  • protocolli orientati al bit.

Nel primo caso si tratta di protocolli il cui livello L1 Fisico gestisce direttamente gruppi di bit, 7 o 8 bit. Le trame sono quindi gruppi di caratteri singoli gestiti autonomamente a livello L1. Nel secondo caso si tratta di protocolli il cui livello L1 gestisce gruppi di bit relativamente lunghi in modalità sincrona, con clock di riferimento interno ai bit. Questi gruppi di bit non sono fisicamente separati tra loro all’interno delle serie circolanti sul mezzo, tuttavia logicamente rappresentano le singole informazioni. Affinché le trame, possano essere ricostruite dal ricevente, il trasmettitore deve prevedere delle tecniche di delimitazione dei bit o dei byte. L’operazione è detta framing.
framing

Protocolli orientati al byte

Nei protocolli orientati al byte, la delimitazione delle trame avviene inserendo uno o più caratteri speciali (flag) posti all’inizio e alla fine di una trama. Ogni frame inizia e finisce con una particolare sequenza di caratteri ASCII. Una scelta diffusa è la seguente:

  • inizio frame:DLE (Data Link Escape), STX (Start of TeXt)
  • fine frame: DLE, ETX (End of TeXt)

In questo modo, se la destinazione perde traccia dei confini di un frame la riacquista all’arrivo della prossima coppia DLE, STX e DLE, ETX. Esiste però un problema: nella trasmissione di dati binari, il byte corrispondente alla codifica di DLE può apparire dentro il frame, imbrogliando le cose. Per evitare questa evenienza, il livello data link sorgente aggiunge nei dati, davanti a tale byte, un altro DLE, per cui in arrivo solo i singoli DLE segnano i confini dei frame. Naturalmente, il livello data link di destinazione rimuove i DLE aggiunti dentro ai dati prima di consegnarli al livello tre.
data link byte stagffing

Protocolli orientati al bit

La tecnica bit stuffing si applica ai protocolli orientati al bit. La delimitazione avviene con un gruppo di bit caratteristici e univoci, come ad esempio 7eh (=01111110b). Come per il char stuffing, la presenza di configurazioni di bit identiche a quella adottata per la delimitazione sono escluse dal protocollo con l’inserimento, in trasmissione, di un bit a 0 per ogni sequenza di 5 bit a 1; in fase di ricezione, ad ogni gruppo di 5 bit a 1 la decodifica del pattern avviene sul bit successivo:

  • se uguale a 1 si tratta di un delimitatore,
  • se uguale a 0, lo si scarta

e i successivi bit andranno a comporre normalmente i dati.
bit-stuffing

Leave a Reply


Latest Posts

AAA