Livello link, frame Ethernet e indirizzi MAC

Livello link, frame Ethernet e indirizzi MAC sono i concetti al centro di questa lezione, dedicata alla comunicazione locale tra dispositivi collegati allo stesso tratto di rete. Il testo introduce il livello link, o livello di collegamento dati, spiegando che il suo compito è ricevere i pacchetti dal livello di rete e incapsularli in frame, unità adatte alla trasmissione sul livello fisico.

La lezione descrive poi il ruolo degli indirizzi MAC, del protocollo Ethernet e della struttura del frame, composta da header, payload e trailer. Viene inoltre approfondito il controllo degli errori tramite FCS e CRC, che permettono di verificare se un frame è arrivato integro.

Nella parte finale viene analizzato il viaggio di una richiesta web nella rete, mostrando come il pacchetto IP mantenga gli indirizzi IP del mittente e del destinatario finale, mentre il frame del livello link cambia a ogni tratto del percorso tra host, gateway e router.

Livello link

Il livello di collegamento dati (o data link layer) si trova sotto il livello di rete e sopra il livello fisico.
Questo livello riceve i pacchetti dal livello di rete e li incapsula in unità che vengono poi trasmesse attraverso il livello fisico.
Il suo compito è gestire la comunicazione su un singolo collegamento locale, usando regole adatte alla tecnologia utilizzata, per esempio Ethernet o Wi-Fi (Braden, 1989; Institute of Electrical and Electronics Engineers [IEEE], 2022).

Il livello data link ha il compito di:

  • Organizzare i bit grezzi trasmessi dal livello fisico in unità leggibili e gestibili.
  • Indirizzare i dispositivi nella rete locale usando indirizzi MAC (IEEE, 2022).
  • Controllare gli errori nella trasmissione locale:
  • Controllare se i dati sono arrivati integri, usando codici di controllo degli errori (strategia utilizzata da Ethernet).
  • Richiedere una ritrasmissione in caso di errore (strategia non utilizzata da Ethernet, ma da altre tecnologie).
  • Evitare conflitti e collisioni, specialmente nelle reti condivise.

Uno dei protocolli più usati a questo livello è Ethernet; il pacchetto gestito si chiama frame (IEEE, 2022).
Un frame Ethernet è diviso in questo modo:

  • Header: contiene informazioni come l’indirizzo MAC del mittente e del destinatario.
  • Payload: i dati veri e propri (per esempio un pacchetto IP).
  • Trailer: contiene un codice di controllo per rilevare eventuali errori (IEEE, 2022).

Controllo errori

Il codice di controllo usato da Ethernet si chiama FCS, Frame Check Sequence (IEEE, 2022).
L’FCS è un valore di 32 bit calcolato a partire dal contenuto del frame tramite un algoritmo chiamato CRC, Cyclic Redundancy Check (IEEE, 2022).

  • Se il valore calcolato dal destinatario coincide con quello presente nel campo FCS, il frame viene considerato corretto.
  • Se invece i valori non coincidono, significa che probabilmente il frame è stato alterato durante la trasmissione e viene scartato (IEEE, 2022).

Il CRC offre questi vantaggi:

  • Rileva tutti gli errori singoli (un bit sbagliato in mezzo a bit giusti).
  • Rileva molti errori doppi o multipli (più bit sbagliati consecutivi in mezzo a bit giusti).
  • Rileva burst di errore (cioè errori concentrati in una porzione).
  • È molto efficiente da calcolare, anche in hardware (IEEE, 2022).

Sotto si vede il funzionamento del CRC da parte del mittente e del destinatario.

Il mittente

  • Prende tutto il contenuto del frame, escluso il campo FCS (che verrà aggiunto dopo).
  • Calcola il CRC sul contenuto del frame.
  • Ottiene un valore di 32 bit.
  • Inserisce questo valore nel campo FCS alla fine del frame (IEEE, 2022).

Il destinatario

  • Riceve l’intero frame, incluso il campo FCS.
  • Esegue il controllo CRC sul frame ricevuto.
  • Confronta il risultato ottenuto con il valore presente nel FCS:
  • Se i due valori coincidono, si assume che il frame sia corretto.
  • Se i due valori non coincidono, il frame viene scartato (Ethernet non prevede ritrasmissione automatica). Se serve ritrasmissione, sarà compito dei livelli superiori (es. TCP al livello di trasporto) (Braden, 1989; Eddy, 2022).

Viaggio di una richiesta web nella rete

Come funziona il flusso di invio dei pacchetti da un host sorgente a un host di destinazione?

Sotto esaminiamo i vari passaggi di un flusso di messaggi che utilizza a livello di applicazione il protocollo HTTP, usato per richiedere e trasferire pagine web (Fielding et al., 2022).
In particolare, vediamo una richiesta HTTP (il client chiede al server la pagina web):

  • Creazione del pacchetto: il browser genera una richiesta HTTP. Il livello di trasporto, usando TCP, incapsula i dati HTTP in un segmento TCP (Eddy, 2022; Fielding et al., 2022).
  • Livello di rete: il segmento TCP passa al livello di rete, che incapsula il segmento in un pacchetto IP. Questo pacchetto contiene l’indirizzo IP di destinazione (ottenuto tramite DNS a partire dal nome di dominio) e il payload del messaggio (Eddy, 2022; Postel, 1981).
  • Livello link: questo pacchetto viene poi incapsulato all’interno di un frame Ethernet. Questo frame contiene come destinazione il MAC del gateway, visto che la destinazione finale è fuori dalla LAN. L’host ottiene il MAC del gateway tramite ARP (Address Resolution Protocol), nel caso IPv4, o tramite Neighbor Discovery, nel caso IPv6. Le relative tabelle servono ad associare un indirizzo IP a un indirizzo MAC solo nelle reti direttamente connesse (Narten et al., 2007; Plummer, 1982).
  • Inoltro al gateway: il frame Ethernet contenente il pacchetto viene inviato sulla rete locale e raggiunge il gateway, che funge da punto di accesso tra la rete locale e la rete esterna, in questo caso Internet (Braden, 1989).
  • Instradamento e inoltro: il gateway estrae il pacchetto IP dal frame, ne esamina l’indirizzo IP di destinazione e utilizza le proprie tabelle di routing per determinare la prossima destinazione (solitamente un altro router) per inoltrare il pacchetto verso la rete esterna (Postel, 1981).
  • Ricerca del MAC: individuato il next hop, il router, tramite la propria tabella ARP (per IPv4) o la tabella Neighbor Discovery (per IPv6), ottiene l’indirizzo MAC associato.
  • Sostituzione del MAC: il router mantiene lo stesso pacchetto IP, salvo alcune modifiche tecniche, ma lo incapsula in un nuovo frame del livello link adatto al collegamento successivo. In questo nuovo frame, il MAC di destinazione sarà quello del prossimo router o dell’host finale, se si trova su una rete direttamente collegata (Postel & Reynolds, 1988).
  • Inoltro verso il prossimo router: il pacchetto IP viene inserito in un frame Ethernet e inviato al router successivo, che continua, a livello di rete, a esaminare l’indirizzo IP di destinazione e a inoltrare il pacchetto verso il router seguente tramite l’indirizzo MAC del router individuato (Braden, 1989).
  • Ripetizione del processo di inoltro: questo processo di inoltro viene ripetuto lungo la catena di router fino a quando il pacchetto raggiunge il gateway del destinatario finale.
  • Consegna all’host destinatario: il gateway finale riceve il frame, ne estrae il pacchetto IP e lo incapsula in un nuovo frame Ethernet, che ha come indirizzo MAC di destinazione quello dell’host finale (ottenuto, se necessario, tramite ARP o Neighbor Discovery). Con questo nuovo frame, il gateway consegna il pacchetto all’host destinatario nella rete locale (Narten et al., 2007; Plummer, 1982).
  • Consegna all’applicazione: il livello di trasporto del destinatario legge la porta di destinazione del segmento TCP e consegna i dati al socket o all’applicazione corretta, in questo caso al software HTTP (il programma che implementa l’HTTP) (Eddy, 2022).

Nota: è importante sottolineare che durante il percorso, il pacchetto IP mantiene gli indirizzi IP del mittente e del destinatario finale, mentre il frame del livello link cambia a ogni tratto della rete. Ogni router estrae il pacchetto IP dal frame ricevuto e lo inserisce in un nuovo frame adatto al collegamento successivo (Braden, 1989; Postel & Reynolds, 1988).

Elementi chiave

  • Il livello link gestisce la comunicazione tra dispositivi collegati alla stessa rete locale.
  • Il livello link riceve i pacchetti IP e li incapsula in unità chiamate frame.
  • Il livello link utilizza gli indirizzi MAC per identificare mittente e destinatario nella rete locale.
  • Le principali tecnologie del livello link sono Ethernet e Wi-Fi.
  • Un frame Ethernet contiene header, payload e trailer.
  • Il payload contiene normalmente il pacchetto IP; il trailer contiene il codice di controllo FCS.
  • Il CRC permette di verificare se il frame è stato alterato durante la trasmissione.
  • Se Ethernet rileva un errore, scarta il frame senza richiederne direttamente la ritrasmissione.
  • Per raggiungere una rete esterna, l’host invia il frame al MAC del gateway.
  • ARP in IPv4 e Neighbor Discovery in IPv6 associano gli indirizzi IP agli indirizzi MAC locali.
  • Ogni router estrae il pacchetto IP e lo inserisce in un nuovo frame destinato al collegamento successivo.
  • Gli indirizzi IP del mittente e del destinatario finale rimangono generalmente invariati, mentre gli indirizzi MAC cambiano a ogni collegamento.

Scarica pdf della lezione

  • Braden, R. (1989). Requirements for Internet hosts – Communication layers (RFC 1122). RFC Editor. https://doi.org/10.17487/RFC1122
  • Deering, S., & Hinden, R. (2017). Internet protocol, version 6 (IPv6) specification (RFC 8200). RFC Editor. https://doi.org/10.17487/RFC8200
  • Eddy, W. (Ed.). (2022). Transmission Control Protocol (TCP) (RFC 9293). RFC Editor. https://doi.org/10.17487/RFC9293
  • Fielding, R., Nottingham, M., & Reschke, J. (Eds.). (2022). HTTP semantics (RFC 9110). RFC Editor. https://doi.org/10.17487/RFC9110
  • Institute of Electrical and Electronics Engineers. (2022). IEEE standard for Ethernet (IEEE Std 802.3-2022). https://doi.org/10.1109/IEEESTD.2022.9844436
  • Narten, T., Nordmark, E., Simpson, W., & Soliman, H. (2007). Neighbor discovery for IP version 6 (IPv6) (RFC 4861). RFC Editor. https://doi.org/10.17487/RFC4861
  • Plummer, D. C. (1982). An Ethernet address resolution protocol (RFC 826). RFC Editor. https://doi.org/10.17487/RFC0826
  • Postel, J. (1981). Internet protocol (RFC 791). RFC Editor. https://doi.org/10.17487/RFC0791
  • Postel, J., & Reynolds, J. K. (1988). Standard for the transmission of IP datagrams over IEEE 802 networks (RFC 1042). RFC Editor. https://doi.org/10.17487/RFC1042
  • James F. Kurose e Keith W. Ross, Reti di calcolatori e Internet. Un approccio top-down, 8ª ed., Pearson, 2022 — Approfondisce il livello link, le tecniche di rilevazione degli errori e il CRC, gli indirizzi MAC, ARP, Ethernet, i protocolli di accesso multiplo e il funzionamento degli switch.
  • Behrouz A. Forouzan e Firouz Mosharraf, Reti di calcolatori, 2ª ed., a cura di Gaia Maselli, McGraw-Hill Education, 2024 — Dedica un intero capitolo al livello di collegamento nelle reti cablate, con un approccio visuale utile per approfondire framing, indirizzamento locale, controllo degli errori ed Ethernet.
  • Andrew S. Tanenbaum, David J. Wetherall e Nick Feamster, Reti di calcolatori, 6ª ed., Pearson, 2023 — Analizza separatamente il livello data link e il sottolivello MAC, approfondendo framing, gestione degli errori, accesso al mezzo, indirizzi MAC, Ethernet e tecnologie per le reti locali.
  • Larry L. Peterson e Bruce S. Davie, Reti di calcolatori, Apogeo Education, 2012 — Approfondisce i principi su cui si basa la comunicazione su un singolo collegamento, con particolare attenzione al CRC, alla trasmissione affidabile, a Ethernet e ai protocolli di accesso al mezzo.

Costruire e controllare un frame Ethernet

Un computer deve inviare a un altro dispositivo della stessa LAN un pacchetto IP. Per trasmetterlo attraverso Ethernet, il livello link lo inserisce all’interno di un frame.

  • Spiega quale funzione svolge il livello link tra il livello di rete e il livello fisico.
  • Indica quali informazioni devono essere inserite nell’header del frame Ethernet.
  • Spiega che cosa costituisce il payload del frame.
  • Indica quale informazione viene inserita nel trailer.
  • Spiega come il mittente utilizza il CRC per calcolare il valore FCS.
  • Descrivi cosa deve fare il destinatario quando riceve il frame.
  • Immagina che durante la trasmissione alcuni bit vengano modificati e che il CRC calcolato dal destinatario non coincida con l’FCS ricevuto. Spiega cosa accade al frame.
  • Spiega perché Ethernet può rilevare l’errore senza necessariamente occuparsi della ritrasmissione dei dati.

Il server è fuori dalla LAN

Un computer connesso alla rete scolastica vuole inviare una richiesta a un server web presente su Internet.
Il computer conosce già:.

  • L’indirizzo IP del server.
  • L’indirizzo IP del proprio gateway.

Non conosce però l’indirizzo MAC necessario per effettuare il primo trasferimento nella rete locale.

  • Spiega perché il computer non deve cercare il MAC del server web presente su Internet.
  • Indica quale indirizzo MAC deve invece essere utilizzato come destinazione del primo frame.
  • Spiega quale meccanismo può essere utilizzato, nel caso IPv4, per associare l’indirizzo IP del gateway al suo indirizzo MAC.
  • Spiega quale funzione svolge la tabella ottenuta attraverso questo meccanismo.
  • Descrivi cosa contiene il frame Ethernet inviato dal computer al gateway, distinguendo MAC di destinazione, pacchetto IP e dati applicativi incapsulati.
  • Spiega perché l’indirizzo IP di destinazione continua a essere quello del server web, anche se il MAC di destinazione è quello del gateway.
  • Spiega quale errore commetterebbe uno studente che inserisse come MAC di destinazione quello del server remoto.

Cosa cambia a ogni router?

Un pacchetto deve attraversare questo percorso:
Computer A → Router 1 → Router 2 → Router 3 → Computer B

Computer A e Computer B appartengono a reti locali differenti.

  • Spiega cosa accade al frame quando raggiunge Router 1.
  • Indica quale informazione del pacchetto IP viene utilizzata dal router per decidere dove proseguire.
  • Spiega perché Router 1 deve creare un nuovo frame per il collegamento verso Router 2.
  • Indica quale indirizzo MAC dovrebbe comparire come destinazione nel nuovo frame.
  • Descrivi cosa accade nuovamente quando il pacchetto raggiunge Router 2 e Router 3.
  • Spiega quali indirizzi tendono a rimanere riferiti agli host finali durante il viaggio e quali invece cambiano a ogni collegamento locale.
  • Completa concettualmente la tabella seguente indicando il destinatario del livello link in ogni tratto:
Tratto Destinatario del frame
Computer A → Router 1 ?
Router 1 → Router 2 ?
Router 2 → Router 3 ?
Router 3 → Computer B ?
  • Spiega perché questo esempio mostra la differenza tra il compito del livello di rete e quello del livello link.

Ricostruire una richiesta web completa

Un utente digita nel browser l’indirizzo di un sito web. Il server si trova su una rete lontana e per raggiungerlo la richiesta attraversa più router.

Ricostruisci l’intero viaggio della richiesta utilizzando i livelli studiati.

  • Descrivi cosa produce inizialmente il browser al livello applicativo.
  • Spiega cosa fa il livello di trasporto utilizzando TCP.
  • Spiega cosa aggiunge il livello di rete e quale ruolo svolge l’indirizzo IP di destinazione.
  • Descrivi come il livello link incapsula il pacchetto IP nel primo frame Ethernet.
  • Spiega come viene individuato il MAC del gateway.
  • Descrivi cosa fa il gateway quando riceve il frame.
  • Spiega perché il router estrae il pacchetto IP e lo inserisce in un nuovo frame prima di inoltrarlo.
  • Descrivi come il processo viene ripetuto lungo i router intermedi.
  • Spiega cosa accade quando il pacchetto raggiunge finalmente la rete locale del server.
  • Descrivi come il gateway finale può individuare il MAC dell’host destinatario e consegnargli il frame.
  • Spiega come i dati risalgono infine fino al processo applicativo corretto sul server.
  • Concludi indicando chiaramente quali informazioni sono end-to-end e quali vengono ricostruite a ogni singolo collegamento.

Per la realizzazione di questi materiali ho utilizzato strumenti di intelligenza artificiale generativa come supporto alla scrittura, in particolare per migliorare la forma del testo, riorganizzare i contenuti, correggere la formulazione e velocizzare alcune attività redazionali.

Lavorando autonomamente alla produzione di questi materiali, cerco infatti di automatizzare tutte le attività che possono esserlo, così da poter dedicare più tempo alla ricerca, alla progettazione e allo sviluppo dei contenuti.

L’intelligenza artificiale non determina però i contenuti dell’opera: la scelta degli argomenti, la struttura, le idee, le interpretazioni, gli esempi e l’impostazione didattica sono elaborati da me. L’IA viene quindi utilizzata principalmente come strumento di supporto alla produzione e alla revisione formale, mentre la responsabilità autoriale e progettuale dei contenuti rimane mia.

Salvo diversa indicazione, questo materiale è distribuito con licenza Creative Commons Attribuzione – Non commerciale – Condividi allo stesso modo 4.0 Internazionale (CC BY-NC-SA 4.0).

È quindi possibile condividere, ridistribuire, modificare e creare opere derivate a partire dal materiale, a condizione di attribuirne correttamente la paternità, di non utilizzarlo per scopi commerciali e di distribuire eventuali versioni modificate o derivate con la stessa licenza.

Vuoi aiutarmi a scrivere articoli come questo?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

No responses yet

Sostieni il progetto

Tutti i materiali che condivido nascono da una convinzione molto semplice: una buona formazione non dovrebbe limitarsi a insegnare quali pulsanti premere, ma aiutare a comprendere le idee, i principi e i processi che stanno dietro agli strumenti.

Per questo dedico una parte significativa del mio tempo a studiare, organizzare e produrre contenuti gratuiti dedicati al multimedia, al design e alla comunicazione visiva. Articoli, lezioni, approfondimenti e risorse che hanno l’obiettivo di rendere accessibili argomenti spesso affrontati in modo frammentario o superficiale.

Questo lavoro richiede però tempo, ricerca e cura. Ogni guida, ogni video, ogni materiale pubblicato gratuitamente è il risultato di molte ore di studio, scrittura e revisione.
Sostenere il progetto attraverso Patreon significa permettermi di continuare a produrre contenuti educativi di qualità, mantenerli accessibili al maggior numero possibile di persone e dedicare più energie alla costruzione di una risorsa che possa essere utile a studenti, professionisti e appassionati.

Se credi che una conoscenza più profonda, rigorosa e consapevole del multimedia abbia valore, il tuo contributo non sostiene soltanto il mio lavoro: aiuta a rendere queste risorse disponibili per tutta la comunità.
Grazie per il supporto e per la fiducia.

Patreon è troppo impegnativo?

Puoi sostenermi anche con una donazione libera, senza abbonamento e senza impegno.
Anche un piccolo contributo mi aiuta a continuare a creare giochi, contenuti didattici e materiali gratuiti con più libertà.

Support the project

All the materials I share stem from a very simple conviction: good training should not be limited to teaching which buttons to press, but should help people understand the ideas, principles, and processes behind the tools.

That is why I dedicate a significant portion of my time to researching, organizing, and producing free content focused on multimedia, design, and visual communication—articles, lessons, in-depth analyses, and resources aimed at making accessible topics that are often addressed in a fragmented or superficial way.

However, this work requires time, research, and care. Every guide, video, and piece of material published for free is the result of many hours of study, writing, and revision.
Supporting the project via Patreon enables me to continue producing high-quality educational content, keep it accessible to as many people as possible, and devote more energy to building a resource that benefits students, professionals, and enthusiasts alike.

If you believe that a deeper, more rigorous, and informed understanding of multimedia is valuable, your contribution does more than just support my work: it helps make these resources available to the entire community.
Thank you for your support and trust.

Is Patreon too demanding?

You can also support me with a voluntary donation—no subscription or commitment required.

Even a small contribution helps me continue creating games, educational content, and free materials with greater freedom.