Ethernet, un frame alla volta
Tutto quello che serve per capire, ricordare e usare Ethernet in laboratorio. Parti da qui: questo è un frame Ethernet II, la "busta" che viaggia sul cavo.
1Dove vive Ethernet
Livelli ISO/OSI e TCP/IP, scheda di rete, sottolivelli MAC e LLC.
Ethernet (standard IEEE 802.3) è una tecnologia per LAN e lavora nei due livelli più bassi del modello OSI: fisico (1) e collegamento dati (2). Nel modello TCP/IP questi due livelli sono fusi in uno solo: Accesso alla rete (o Network Access / Link).
LLC (802.2) + MAC (802.3)
= Ethernet
segnali, cavi, connettori
I due sottolivelli del livello 2
| Sottolivello | Standard | Cosa fa |
|---|---|---|
| LLC – Logical Link Control | IEEE 802.2 | Sta in alto, parla con il livello 3. Dice a quale protocollo consegnare i dati (tramite DSAP/SSAP). È uguale per tutte le LAN IEEE 802 (Ethernet, Wi-Fi…). |
| MAC – Media Access Control | IEEE 802.3 | Sta in basso, parla con il livello fisico. Gestisce indirizzi MAC, costruzione del frame, CRC e accesso al mezzo (CSMA/CD). |
La scheda di rete (NIC o LAN adapter)
La NIC occupa il livello 1 (trasmette i bit sul cavo, ha il connettore RJ45 o SFP) e il livello 2 MAC (ha il MAC address, crea e controlla i frame, calcola il CRC). L'LLC e i livelli superiori sono gestiti dal driver e dal sistema operativo.
2CSMA/CD e collisioni
Come fanno più stazioni a condividere lo stesso cavo.
CSMA/CD significa Carrier Sense Multiple Access with Collision Detection. Pensa a una cena tra amici in cui tutti parlano senza moderatore:
- Carrier Sense – prima di parlare ascolto: se qualcuno sta già parlando (c'è "portante" sul cavo), aspetto.
- Multiple Access – tutti possono parlare, nessuno ha la precedenza.
- Collision Detection – mentre parlo continuo ad ascoltare: se sento un'altra voce sovrapposta, mi fermo.
L'algoritmo passo per passo
- La stazione ha un frame da inviare e ascolta il canale.
- Se è occupato, aspetta che si liberi (più una piccola pausa, l'interframe gap di 96 bit).
- Se è libero, trasmette e intanto controlla il segnale sul cavo.
- Se non rileva collisioni fino alla fine: trasmissione riuscita.
- Se rileva una collisione: interrompe e invia la jam sequence (32 bit) per avvisare tutti.
- Attende un tempo casuale (backoff esponenziale binario) e riprova dal passo 1. Dopo 16 tentativi falliti rinuncia e segnala l'errore.
Backoff esponenziale binario
Dopo la collisione numero n la stazione sceglie a caso un numero intero k tra 0 e 2m − 1, con m = min(n, 10), e aspetta k × slot time. Lo slot time vale 512 bit, cioè 51,2 μs a 10 Mbit/s.
Collisione: definizione e casistica
Una collisione avviene quando due o più stazioni trasmettono contemporaneamente sullo stesso mezzo condiviso: i segnali si sommano e diventano illeggibili. Succede perché il segnale impiega tempo a propagarsi: una stazione può "sentire libero" il cavo quando in realtà un altro frame sta già arrivando.
| Caso | Quando | Significato |
|---|---|---|
| Collisione normale (early) | Entro i primi 512 bit (64 byte) trasmessi | Fisiologica su mezzo condiviso: gestita da CSMA/CD con jam + backoff. |
| Late collision | Dopo i primi 512 bit | Anomalia: cavo troppo lungo, troppi ripetitori, oppure duplex mismatch (un lato in half, l'altro in full duplex). Il frame non viene ritrasmesso da CSMA/CD. |
| Runt (frammento) | — | Resto di un frame collisionato, più corto di 64 byte: il ricevitore lo scarta. |
3RTD e lunghezza minima del frame
Perché un frame Ethernet non può essere più corto di 64 byte.
RTD (Round Trip Delay) è il tempo che il segnale impiega per andare da un capo all'altro della rete e tornare:
RTD = 2 × tprop = 2 × L / v
con L = distanza massima tra due stazioni e v = velocità di propagazione nel cavo (circa 2 × 108 m/s, cioè 2/3 della velocità della luce).
Perché conta
Il caso peggiore: A trasmette, il segnale arriva quasi in fondo alla rete, B (all'altro capo) non l'ha ancora sentito e trasmette anche lui. La collisione avviene vicino a B e l'"eco" deve tornare fino ad A. Se A ha già finito di trasmettere, non si accorge della collisione e crede che il frame sia arrivato.
tprop = 2500 / (2 × 108) = 12,5 μs → RTD = 25 μs.
Bit trasmessi in 25 μs = 25 × 10−6 × 10 × 106 = 250 bit.
Lo standard aggiunge margini per i ritardi di ripetitori e circuiti e fissa lo slot time = 512 bit = 51,2 μs. Da qui la lunghezza minima: 512 / 8 = 64 byte. Se i dati sono meno di 46 byte, si aggiunge padding.
Calcolatore RTD
Nota: a 100 Mbit/s i bit durano 10 volte meno, quindi con frame minimo sempre di 512 bit la rete condivisa può essere circa 10 volte più corta (≈ 200 m di diametro con hub).
4Tipo di servizio, vantaggi e svantaggi
| Caratteristica | Cosa significa per Ethernet |
|---|---|
| Unreliable (non affidabile) | Nessuna conferma (ACK) e nessuna ritrasmissione dei frame corrotti: se il CRC è sbagliato il frame viene semplicemente scartato. Il recupero spetta ai livelli superiori (es. TCP). |
| Connectionless (senza connessione) | Non si apre una connessione prima di trasmettere: ogni frame è indipendente e porta con sé gli indirizzi. |
| Decentralizzato | Non c'è una stazione "master" che decide chi parla: ogni nodo decide da solo applicando CSMA/CD. |
- Costi bassi: componenti prodotti in enorme quantità.
- Efficienza: protocollo semplice, poco overhead.
- Throughput alto con traffico moderato; velocità da 10 Mbit/s a 400 Gbit/s.
- Diffusione e compatibilità universali.
- Non deterministico: non si può sapere in anticipo quando un frame partirà (backoff casuale).
- No burst traffic: con molto traffico improvviso le collisioni crescono e il throughput crolla.
- No real time: nessuna garanzia sui ritardi, inadatta a controlli industriali critici.
5Il MAC address
Formato, OUI, bit speciali, ordine dei bit.
Il MAC address è l'indirizzo fisico della scheda: 48 bit = 6 byte, scritto in esadecimale, per esempio 00:1B:21:3A:4F:5C oppure 00-1B-21-3A-4F-5C.
assegnato dall'IEEE al produttore
numero seriale della scheda
I due bit speciali del primo byte
Contano i due bit meno significativi del primo byte (i più a destra quando lo scrivi in binario):
| Bit | Nome | 0 | 1 |
|---|---|---|---|
| b0 (LSB) | U/M – Unicast/Multicast (detto anche I/G, Individual/Group) | Unicast: un solo destinatario | Multicast: un gruppo (il broadcast FF:FF:FF:FF:FF:FF è un caso particolare) |
| b1 | G/L – Global/Local (detto anche U/L, Universal/Local) | Globale: assegnato dal produttore, unico al mondo | Locale: assegnato dall'amministratore o dal software (VM, MAC casuali dei telefoni) |
01:00:5E:… è multicast; 02:42:… è locale (tipico di Docker).Big endian, little endian e canonical order
- Big endian: si scrive/trasmette prima la parte più significativa. È l'ordine dei byte in rete (network byte order): i 6 byte del MAC partono da sinistra a destra.
- Little endian: prima la parte meno significativa. Ethernet lo usa per i bit dentro ogni byte: ogni byte va sul cavo partendo dal bit b0.
- Canonical order (formato canonico): è il modo in cui scriviamo normalmente i MAC di Ethernet. Grazie al little endian dei bit, il primo bit trasmesso sul cavo è proprio il bit U/M: lo switch capisce subito se il frame è per un singolo o per un gruppo. Token Ring e FDDI usavano l'ordine opposto (non canonico).
Analizzatore di MAC address
6Il frame: Ethernet II e 802.3
I campi dell'header, LLC, SNAP e MTU.
| Campo | Byte | Significato |
|---|---|---|
| Preambolo | 7 | Sequenza 10101010 (0x55) ripetuta: serve al ricevitore per sincronizzare il clock. |
| SFD – Start Frame Delimiter | 1 | 10101011 (0xD5): "adesso inizia il frame". |
| MAC destinazione | 6 | A chi è diretto. Viene prima del sorgente così lo switch può decidere subito dove inoltrare. |
| MAC sorgente | 6 | Chi lo ha inviato (sempre unicast). |
| EtherType / Length | 2 | Ethernet II: tipo di protocollo trasportato. 802.3: lunghezza dei dati. Vedi sotto come distinguerli. |
| Dati | 46 – 1500 | Il pacchetto di livello 3 (es. IP). Se è più corto di 46 byte si aggiunge padding. |
| FCS – Frame Check Sequence | 4 | CRC-32 calcolato su destinazione, sorgente, tipo/lunghezza e dati. |
Valore ≤ 0x05DC (1500) → è una lunghezza → frame IEEE 802.3, seguito dall'header LLC.
EtherType da conoscere
| Valore | Protocollo |
|---|---|
| 0x0800 | IPv4 |
| 0x0806 | ARP |
| 0x86DD | IPv6 |
| 0x8100 | Tag VLAN IEEE 802.1Q (aggiunge 4 byte all'header) |
| 0x8847 | MPLS |
| 0x88CC | LLDP |
Header LLC (IEEE 802.2)
Nel frame 802.3, subito dopo il campo Length, c'è l'header LLC da 3 byte:
| Campo | Byte | Significato |
|---|---|---|
| DSAP – Destination Service Access Point | 1 | Protocollo di destinazione (es. 0x42 = Spanning Tree, 0x06 = IP, 0xAA = SNAP) |
| SSAP – Source Service Access Point | 1 | Protocollo sorgente |
| Control | 1 (o 2) | Tipo di trama LLC; 0x03 = UI, informazione non numerata (servizio senza connessione) |
SNAP – SubNetwork Access Protocol
Il DSAP ha solo 1 byte: troppo pochi valori per tutti i protocolli. Allora si usa DSAP = SSAP = 0xAA, Control = 0x03 e si aggiungono 5 byte SNAP:
Con OUI = 00 00 00 il Protocol ID coincide con un EtherType (es. 08 00 = IPv4). Con OUI di un produttore (es. 00 00 0C Cisco) il PID è definito da quel produttore (20 00 = CDP).
MTU di Ethernet
MTU (Maximum Transmission Unit) = 1500 byte: la dimensione massima dei dati trasportati in un frame. Il frame completo arriva quindi a 1518 byte (1522 con tag VLAN). Con LLC + SNAP restano 1500 − 8 = 1492 byte per il pacchetto IP. I jumbo frame (fino a circa 9000 byte) non sono standard e vanno abilitati su tutti i dispositivi del percorso.
7CRC e integrità del frame
CRC = Cyclic Redundancy Check, controllo di ridondanza ciclico. Ethernet usa il CRC-32 (polinomio generatore 0x04C11DB7) e lo mette nel campo FCS.
Come si usa
- Il mittente tratta i bit del frame come un polinomio e lo divide (in modulo 2) per il polinomio generatore.
- Il resto della divisione è il CRC: viene scritto nel campo FCS.
- Il ricevitore rifà lo stesso calcolo sul frame ricevuto.
- Se il risultato non coincide, il frame è corrotto e viene scartato in silenzio (nessuna richiesta di ritrasmissione: il servizio è unreliable).
Il CRC rileva gli errori ma non li corregge. Il CRC-32 individua tutti gli errori singoli, doppi, di numero dispari e i burst fino a 32 bit.
Esempio di calcolo (in piccolo)
Messaggio 1101, generatore 1011 (x³ + x + 1, grado 3). La divisione in modulo 2 si fa con lo XOR, senza riporti.
8Domini di collisione e di broadcast
| Dominio di collisione | Dominio di broadcast | |
|---|---|---|
| Definizione | Parte di rete in cui due frame trasmessi contemporaneamente possono collidere. | Insieme di dispositivi raggiunti da un frame broadcast (FF:FF:FF:FF:FF:FF). |
| Hub / repeater (liv. 1) | Non lo divide: tutte le porte = 1 dominio | Non lo divide |
| Switch / bridge (liv. 2) | Lo divide: ogni porta = 1 dominio | Non lo divide (a meno di VLAN) |
| Router (liv. 3) | Lo divide | Lo divide: ogni interfaccia = 1 dominio |
Domini di broadcast: 2 (uno per interfaccia del router).
Domini di collisione: switch → 6 porte con PC + 1 verso il router = 7; hub → 1 (hub, PC e interfaccia del router insieme). Totale 8.
9Cablaggio strutturato e cavi
Concetti base
Il cablaggio strutturato è un impianto di cavi progettato con regole standard (ISO/IEC 11801, TIA-568), indipendente dalle apparecchiature, ordinato ed espandibile. Gli elementi principali:
- Centro stella / armadio rack: contiene switch, router e patch panel.
- Dorsale (backbone): collega gli armadi tra piani o edifici, spesso in fibra ottica.
- Cablaggio orizzontale: dal patch panel alla presa a muro, massimo 90 m di cavo fisso.
- Patch cord: cavetti volanti (armadio e scrivania), al massimo 10 m in tutto. Totale canale: 100 m.
- Presa utente (keystone RJ45) e patch panel: punti di terminazione etichettati.
| Categoria | Banda | Uso tipico |
|---|---|---|
| Cat 5e | 100 MHz | 1 Gbit/s fino a 100 m |
| Cat 6 | 250 MHz | 1 Gbit/s; 10 Gbit/s fino a circa 55 m |
| Cat 6A | 500 MHz | 10 Gbit/s fino a 100 m |
| Cat 8 | 2000 MHz | 25/40 Gbit/s fino a 30 m (data center) |
T568A e T568B
Il cavo ha 4 coppie intrecciate. Lo standard dice in che ordine metterle nel connettore RJ45 (guardando il plug con la linguetta verso il basso e i contatti verso di te, pin 1 a sinistra).
Dritto (straight-through) o incrociato (cross-over)?
| Tipo di cavo | Terminazioni | Quando si usa |
|---|---|---|
| Straight-through | Stesso standard ai due capi (B–B oppure A–A) | Tra dispositivi diversi: PC–switch, router–switch, PC–hub |
| Cross-over | Standard diversi (A da un lato, B dall'altro) | Tra dispositivi uguali: PC–PC, switch–switch, hub–switch, router–router, e anche PC–router |
Perché? Nelle reti 10/100 Mbit/s si trasmette sui pin 1-2 e si riceve sui pin 3-6. PC e router hanno porte MDI, switch e hub porte MDI-X (già incrociate internamente). Due porte dello stesso tipo hanno bisogno che il cavo incroci TX con RX.
Oggi quasi tutte le porte hanno Auto-MDIX e si adattano da sole, ma in verifica la regola va saputa.
10Laboratorio: decodificare un frame in esadecimale
Il metodo in 5 passi
- Se il dump inizia con
55 55 55 55 55 55 55 D5, salta questi 8 byte (preambolo + SFD). Wireshark di solito non li mostra. - Byte 1–6: MAC destinazione. Controlla subito se è broadcast o multicast.
- Byte 7–12: MAC sorgente. I primi 3 byte sono l'OUI del produttore.
- Byte 13–14: EtherType o Length. ≥ 0x0600 → Ethernet II; ≤ 0x05DC → 802.3 (leggi LLC, e SNAP se trovi
AA AA 03). Se trovi81 00c'è un tag VLAN: salta 4 byte e rileggi. - Il resto sono i dati; gli ultimi 4 byte, se presenti, sono l'FCS.
FF FF FF FF FF FF 00 1B 21 3A 4F 5C 08 06 00 01 08 00 …Destinazione
FF:FF:FF:FF:FF:FF → broadcast.Sorgente
00:1B:21:3A:4F:5C → unicast, globale, OUI 00:1B:21.Tipo
0x0806 ≥ 0x0600 → Ethernet II, trasporta ARP. È una richiesta ARP: "chi ha questo indirizzo IP?".Decoder di header Ethernet
11Laboratorio: Wireshark
Wireshark è un packet sniffer: cattura i frame che passano dalla scheda di rete e li mostra campo per campo.
- Avvia Wireshark e scegli l'interfaccia (Ethernet o Wi-Fi) con il grafico dell'attività in movimento.
- Premi l'icona della pinna blu per avviare la cattura. Genera traffico: apri un sito, fai
ping 8.8.8.8oarp -d *seguito da un ping al gateway. - Ferma la cattura (quadrato rosso).
- Scrivi un filtro di visualizzazione nella barra in alto e premi Invio.
- Seleziona un frame: nel pannello centrale espandi Ethernet II (o IEEE 802.3); nel pannello in basso vedi i byte in esadecimale. Cliccando su un campo si evidenziano i byte corrispondenti.
| Filtro | Mostra |
|---|---|
| eth | tutti i frame Ethernet |
| arp | solo ARP |
| eth.type == 0x0800 | frame che trasportano IPv4 |
| eth.dst == ff:ff:ff:ff:ff:ff | solo broadcast |
| eth.addr == 00:1b:21:3a:4f:5c | frame da o verso quel MAC |
| eth.dst.ig == 1 | frame multicast/broadcast (bit U/M a 1) |
| llc | frame IEEE 802.3 con LLC (es. Spanning Tree) |
| vlan | frame con tag 802.1Q |
ipconfig /all (Windows) o ip link (Linux).12Laboratorio: cablare un cavo Ethernet
Materiale: cavo UTP Cat 5e/6, 2 connettori RJ45 (+ eventuali copriconnettori), crimpatrice, spellacavi, forbici, tester di rete.
- Se usi i copriconnettori, infilali sul cavo prima di crimpare.
- Spella la guaina esterna per circa 2–3 cm senza incidere i conduttori.
- Srotola le coppie e raddrizza i fili.
- Disponi i fili nell'ordine T568B (o T568A) tenendoli ben paralleli e affiancati.
- Taglia i fili dritti lasciandone circa 1,2–1,5 cm: la guaina deve entrare nel connettore.
- Inserisci i fili nel connettore (linguetta in basso) fino a vedere i rami in rame toccare il fondo.
- Controlla l'ordine dei colori, poi crimpa con decisione.
- Ripeti dall'altro lato: stesso standard per un cavo dritto, standard opposto per un cross-over.
- Verifica con il tester: le luci devono accendersi 1-1, 2-2 … 8-8 (dritto) oppure 1-3, 2-6, 3-1, 6-2 (cross-over).
13Laboratorio: scegliere una scheda di rete
| Cosa valutare | Opzioni e domande da farsi |
|---|---|
| Velocità | 100 Mbit/s, 1 Gbit/s, 2,5/5 Gbit/s, 10 Gbit/s e oltre. Deve essere compatibile con lo switch e con il cablaggio (es. 10GBASE-T richiede Cat 6A). |
| Connettore di rete | RJ45 per rame; SFP / SFP+ / QSFP per moduli in fibra ottica o cavi DAC. |
| Interfaccia verso il computer | Integrata sulla scheda madre, PCIe (x1, x4, x8: più corsie per più velocità), USB (USB 3.x per il gigabit), USB-C/Thunderbolt per portatili. |
| Standard del livello fisico | 10BASE-T, 100BASE-TX, 1000BASE-T, 10GBASE-T, 1000BASE-SX (fibra multimodale), 10GBASE-LR (fibra monomodale). |
| Funzioni | Full duplex e autonegoziazione, Auto-MDIX, VLAN 802.1Q, Wake-on-LAN, jumbo frame, offload del checksum (alleggerisce la CPU), più porte (teaming/aggregazione). |
| Compatibilità | Driver per il sistema operativo usato, formato della scheda (low profile per case piccoli), consumi, eventuale PoE per dispositivi alimentati via cavo. |
1000BASE-T → 1000 Mbit/s, trasmissione in banda BASE (banda base), T = twisted pair (doppino). 10GBASE-SR → 10 Gbit/s, banda base, Short Range su fibra multimodale.14Ripasso lampo
Leggi la domanda, rispondi a voce, poi apri la carta.
In quali livelli OSI opera Ethernet?
Fisico (1) e collegamento dati (2). In TCP/IP: accesso alla rete.
Cosa significa CSMA/CD?
Carrier Sense Multiple Access with Collision Detection: ascolto, trasmetto, se rilevo collisione invio jam e attendo un tempo casuale.
Quanto è lunga la jam sequence?
32 bit.
Quanti tentativi prima di rinunciare?
16.
Formula dell'RTD?
RTD = 2 × L / v. Bit minimi del frame = RTD × bit rate.
Frame minimo e massimo?
64 e 1518 byte (senza preambolo). Dati: 46–1500 byte.
Quanto vale l'MTU di Ethernet?
1500 byte.
Quanti bit ha un MAC? E l'OUI?
48 bit (6 byte); OUI = primi 24 bit (3 byte).
Quale bit indica multicast?
Il bit meno significativo del primo byte (U/M o I/G) a 1.
0x0806 nel campo tipo?
Ethernet II con dentro ARP (0x0806 ≥ 0x0600).
0x0026 nel campo tipo/lunghezza?
È una lunghezza (38 byte): frame 802.3 con header LLC.
Quando c'è SNAP?
Quando DSAP = SSAP = 0xAA e Control = 0x03. Seguono OUI (3 byte) e Protocol ID (2 byte).
Cosa fa il CRC?
Cyclic Redundancy Check: rileva gli errori nel frame. Se non torna, il frame viene scartato.
Perché Ethernet non è real time?
Perché il backoff è casuale: non è deterministico e non garantisce i tempi di consegna.
Chi divide i domini di broadcast?
Il router (e le VLAN). Lo switch divide solo i domini di collisione.
PC–switch: che cavo?
Dritto (straight-through). PC–PC o switch–switch: incrociato.
Differenza tra T568A e T568B?
Sono scambiate le coppie arancione e verde.
La NIC quali livelli occupa?
Livello fisico e sottolivello MAC del livello 2.