Sistemi e Reti - Anno 4 - Modulo 1 - Lezione 07 - Ethernet 802.3 Frame MAC CSMA/CD
Sistemi e Reti · Anno 4 · Modulo 1 · Lezione 07
✍ Autore: profgiagnotti · Materia: Sistemi e Reti

Ethernet 802.3: Frame, Indirizzi MAC e CSMA/CD

La LAN che ha vinto tutto: anatomia del frame 802.3, significato dell'MTU, EtherType e il meccanismo di accesso storico CSMA/CD che ha permesso a Ethernet di scalare senza coordinatore centrale.

⏱ 55 min 📚 Anno 4 🧠 Frame 802.3 💻 CSMA/CD 🔗 MTU · EtherType 🖧 Lab PKT peer-to-peer-con-hub →
// OBIETTIVI DI APPRENDIMENTO
✓Disegnare e commentare ogni campo del frame Ethernet 802.3 (preambolo, SFD, MAC, EtherType, payload, FCS) con dimensioni e funzione
✓Spiegare i valori EtherType più comuni (IPv4 0x0800, IPv6 0x86DD, ARP 0x0806) e la differenza con il campo Length ≤1500
✓Descrivere il funzionamento di CSMA/CD: ascolto, trasmissione, rilevazione collisione, jam signal e backoff esponenziale binario
✓Comprendere perché CSMA/CD è obsoleto nelle reti switched full-duplex moderne e il legame con MTU e padding minimo
✓Analizzare frame reali con Wireshark e simulare collisioni e cattura traffico nel lab peer-to-peer con HUB su Packet Tracer

1. Ethernet: la LAN che ha vinto

Ethernet è la tecnologia di rete locale più diffusa al mondo. Nata nei laboratori Xerox PARC nei primi anni '70, standardizzata da IEEE come 802.3 nel 1983, ha sopravvissuto a Token Ring, FDDI e ATM. Oggi governa dal cablaggio domestico ai data center da migliaia di porte.

Il segreto del suo successo? Semplicità, scalabilità e — soprattutto — un meccanismo di accesso al mezzo che funziona senza coordinazione centrale: CSMA/CD.

📌 Definizione da ricordare

Ethernet IEEE 802.3 = standard di livello 1 e 2 che definisce formato del frame, indirizzamento MAC a 48 bit e metodi di accesso al mezzo condiviso. Nasce per bus coassiale, oggi vive su UTP e fibra in full-duplex.

2. Struttura del frame Ethernet 802.3

Ogni scheda Ethernet incapsula i dati del livello superiore in un frame con intestazione fissa. Studiarne la struttura è fondamentale per leggere Wireshark e capire switching e MTU.

🖼 Frame Ethernet 802.3 — struttura campi (colori preservati)
PRE
7B
SFD
1B
MAC DST
6B
MAC SRC
6B
TYPE/LEN
2B
PAYLOAD (DATA)
46–1500B
FCS
4B
Dimensione totale: min 64 byte (senza preambolo/SFD) — max 1518 byte (1518 + 4B VLAN = 1522). Con preambolo+SFD: 72–1526 byte sul cavo.
PRE 7B SINCRO SFD 1B 10101011 MAC DST + SRC 12 byte · lettura HW TYPE 2B >1500 = proto PAYLOAD · 46–1500 B IP · ARP · VLAN tag · padding se <46 FCS CRC-32 4B IFG 12B Interframe Gap

3. Preambolo, SFD e indirizzi MAC

Preambolo e SFD

Il preambolo (7 byte) è la sequenza alternata 10101010 ripetuta sette volte. Non trasporta dati: serve al ricevitore per sincronizzare il proprio clock con il trasmettitore.

L'SFD (Start Frame Delimiter, 1 byte) vale 10101011: è identico al preambolo tranne l'ultimo bit portato a 1. Questo cambiamento segnala: "il prossimo byte è il primo del frame vero".

💬 Tip del docente

Nelle statistiche di rete il preambolo e l'SFD spesso non vengono conteggiati: si parla di frame da 64–1518 byte escludendoli. Lo standard completo con preambolo+SFD arriva a 72–1526 byte sul cavo.

MAC destinazione e MAC sorgente

Sei byte ciascuno. Il MAC destinazione viene letto per primo dalla scheda di rete: se non coincide con il proprio MAC (e non è broadcast/multicast), la scheda scarta il frame prima ancora di leggere il resto, risparmiando risorse CPU. Bit I/G e U/L del primo byte indicano unicast/multicast e global/local.

01 · BROADCAST

FF:FF:FF:FF:FF:FF

Tutti i bit a 1. Ogni NIC del dominio di broadcast deve processarlo. Usato da ARP, DHCP Discover.

02 · UNICAST

Es: 3C:22:FB:9A:01:2A

Indirizzo fisico univoco masterizzato in fabbrica. Primo byte LSB 0 = unicast.

03 · MULTICAST

01:00:5E:xx:xx:xx

Per IPv4 multicast, protocolli di controllo. LSB primo byte = 1.

4. EtherType / Length e valori IANA

Questo campo da 2 byte ha una doppia interpretazione che dipende dal suo valore numerico:

ValoreInterpretazioneSignificato
≤ 1500 (0x05DC)LengthIndica lunghezza payload (formato IEEE 802.3 originale LLC)
> 1500 (0x0600+)EtherTypeIndica protocollo superiore incapsulato (formato Ethernet II DIX)
0x0800EtherType → IPv4Il payload contiene un pacchetto IP versione 4
0x86DDEtherType → IPv6Il payload contiene un pacchetto IP versione 6
0x0806EtherType → ARPAddress Resolution Protocol
0x8100EtherType → 802.1QFrame con tag VLAN (4 byte aggiuntivi) — MTU diventa 1522
HEX DUMP · Lettura EtherType da Wireshark
0000 ff ff ff ff ff ff 3c 22 fb 9a 01 2a 08 06 00 01 |DST MAC |SRC MAC |TYPE| ARP... EtherType = 0x0806 = ARP Request Se fosse 0x0800 = IPv4, segue header IP 20B Se fosse 0x86DD = IPv6 Se fosse 0x8100 = VLAN tag → i prossimi 4B sono TCI, poi EtherType reale

5. Payload, FCS, MTU e Jumbo Frame

Il payload contiene il datagramma del livello superiore (tipicamente IP). Dimensione: minimo 46 byte, massimo 1500 byte.

📌 Definizione MTU

MTU (Maximum Transmission Unit): dimensione massima del payload che un frame L2 può trasportare. Per Ethernet standard: 1500 byte. I pacchetti IP più grandi vengono frammentati prima di essere incapsulati. In data center, Jumbo Frame MTU 9000 byte riduce overhead.

🎯 Perché minimo 46 byte? — legame con CSMA/CD

CSMA/CD richiede che la trasmissione di un frame duri almeno quanto il tempo di propagazione andata-ritorno sul mezzo. Con bus 2.5 km e propagazione ~200.000 km/s, il minimo frame valido è 64 byte. Tolti header (18 byte) rimangono 46 byte di payload minimi. Se il payload è più corto, si aggiunge padding di zeri. Il ricevitore usa il campo Length/IP Total Length per capire dove finiscono i dati veri.

FCS — Frame Check Sequence

Gli ultimi 4 byte contengono il CRC-32 calcolato su MAC dest + MAC sorg + EtherType + payload. Il ricevitore ricalcola il CRC: se non coincide → frame scartato silenziosamente (Ethernet non invia NACK). La correzione è affidata a TCP, ARQ, ecc.

PYTHON · Calcolo indicativo FCS (CRC-32)
import binascii frame_senza_fcs = bytes.fromhex('FFFFFFFFFFFF3C22FB9A012A0800') + b'\x45\x00...' # IP packet fcs = binascii.crc32(frame_senza_fcs) & 0xffffffff print(hex(fcs)) # da appendere in little-endian nel frame # Wireshark mostra FCS solo se NIC non lo strip

6. CSMA/CD: Carrier Sense Multiple Access / Collision Detection

CSMA/CD è l'algoritmo che permette a più stazioni di condividere lo stesso mezzo fisico (bus Ethernet) senza coordinazione centralizzata. Il nome descrive perfettamente il suo funzionamento in tre parole.

CS — CARRIER SENSE

Ascolta prima

Ascolta prima di trasmettere. Se il canale è occupato, attendi. Solo quando il mezzo è silenzioso per 96 bit time puoi trasmettere.

MA — MULTIPLE ACCESS

Mezzo condiviso

Tutte le stazioni usano lo stesso canale. Non c'è master. Architettura distribuita e robusta.

CD — COLLISION DETECTION

Rileva mentre trasmetti

Confronta segnale inviato con quello sul cavo: se differiscono → sovrapposizione. Interrompi e segnala.

1. ASCOLTA carrier sense 2. TRASMETTI se libero 3. COLLISIONE? TX != RX JAM 32bit avvisa tutti k++ fino a 16 BACKOFF ESP. rand [0, 2^k-1] × 51.2µs slot time = 512 bit

7. Algoritmo passo-passo e backoff esponenziale

PSEUDOCODICE · CSMA/CD con backoff esponenziale binario
// pseudocodice CSMA/CD - standard IEEE 802.3 k = 0 // tentativi collisione max_attempts = 16 while True: // 1. CARRIER SENSE if canale_occupato(): attendi_fino_a_libero() attendi_IFG(96 * bit_time) // 9.6us a 10Mbps // 2. TRANSMIT trasmetti_frame() // 3. COLLISION DETECTION durante TX if not collisione_rilevata(): // Successo break else: // 4. JAM SIGNAL invia_jam(32_bit) k += 1 if k > max_attempts: errore("Troppi tentativi - scarta frame") break // 5. BACKOFF ESPONENZIALE BINARIO // slot_time = 51.2 µs a 10Mbps (512 bit) r = random_int(0, 2**min(k,10) - 1) attesa = r * slot_time sleep(attesa)

Ogni volta che si verifica una collisione, l'intervallo di attesa raddoppia. Dopo 1 collisione si sceglie casualmente tra 0 e 1 slot; dopo 2 tra 0 e 3; dopo 10 tra 0 e 1023. Questo meccanismo adatta automaticamente il traffico: sotto carico elevato le stazioni si auto-distribuiscono nel tempo.

🎯 Analogia in classe

È come due persone che parlano contemporaneamente in una stanza: si fermano entrambe (jam), aspettano un tempo casuale diverso, e riprovano. Se si scontrano di nuovo, aspettano ancora più a lungo. Alla terza volta uno dei due ha quasi certamente già parlato. Il backoff casuale rompe la simmetria.

SLOT TIME

51.2 µs a 10 Mbps

512 bit time = tempo per TX 64B minimi. Garanzia rilevazione collisione fino a 2500m.

JAM SIGNAL

32 bit di 'allarme'

Sequenza che garantisce che tutte le stazioni rilevino la collisione, anche se il frame era corto.

8. Perché CSMA/CD è obsoleto oggi

⚠️ Importante — architetture moderne

Nelle reti switched moderne ogni dispositivo è collegato a una porta dedicata dello switch. Non c'è un mezzo fisico condiviso: ogni link è un segmento punto-a-punto. Con la modalità full-duplex trasmissione e ricezione avvengono contemporaneamente su coppie separate. Le collisioni non possono verificarsi. CSMA/CD rimane nello standard per compatibilità storica, ma non viene mai attivato nelle reti attuali. L'HUB invece è ancora half-duplex e collisione presente — ecco perché lo usiamo in lab didattico.

📌 Da half-duplex a full-duplex

Bus coassiale / HUB → half-duplex + CSMA/CD. Switch moderno → full-duplex, CS off, CD off, niente jam. Ogni porta è un dominio di collisione isolato, ogni VLAN un dominio di broadcast isolato.

9. Evoluzione delle velocità Ethernet

StandardVelocitàMezzoAnnoNote
10BASE-T10 MbpsDoppino UTP Cat31990CSMA/CD attivo, half-duplex
100BASE-TX100 Mbps (Fast)UTP Cat51995Auto-neg full/half
1000BASE-T1 Gbps (Gigabit)UTP Cat5e/61999Full-duplex di default
10GBASE-T10 GbpsUTP Cat6a/7, fibra2006Data center, no CSMA/CD
100GBASE-*100 GbpsFibra ottica2010Jumbo Frame MTU 9000

La codifica del nome segue la struttura: velocità (Mbps) + BASE (baseband) + mezzo/distanza. T = twisted pair, F = fibra, X = encoding speciale.

10. Verifica / Esercizio in classe

🔬 Attività lab con HUB e Wireshark

Apri in Packet Tracer il file peer-to-peer-con-hub.pkt (risorsa sotto). Due PC collegati a un hub, ping incrociato.

  1. In Simulation Mode, avvia un ping contemporaneo dai due PC. Osserva il LED collisione sull'hub. Quante volte scatta il backoff?
  2. Passa in Real-time, avvia cattura su PC0 con Wireshark (se disponibile) o mostra il dettaglio PDU: identifica Preambolo (non mostrato), MAC DST/SRC, EtherType, dimensione payload, FCS OK?
  3. Crea un frame con payload di 10 byte: quanti byte di padding aggiunge Ethernet? Dimostra calcolo 64 -18 -10 =36.
  4. Perché sostituendo hub con switch le collisioni scompaiono anche con ping simultanei? Collega a full-duplex.
✅ Soluzione ragionata

1. Con hub, dominio collisione unico → ping simultanei = collisione probabile. Backoff risolve in 1-2 retry. 2. EtherType 0x0800 per ICMP/IP, MAC broadcast ARP prima. FCS in PT non sempre visibile. 3. Padding 36 byte per arrivare a 46 payload → 64 byte minimi. 4. Switch: microsegmentazione, ogni porta dominio collisione dedicato, full-duplex TX e RX su coppie diverse, buffer store-and-forward, quindi CSMA/CD disabilitato. MTU resta 1500 ma nessuna interferenza.

💬 Tip del docente per interrogazione

Se ti chiedono "quanto è lungo al minimo un frame Ethernet?", rispondi: 64 byte di frame (DST+SRC+TYPE+PAYLOAD+FCS) + 8 byte preambolo/SFD = 72 sul cavo. Se chiedono "perché 46 di payload minimo?" → collega subito a CSMA/CD e slot time, fai colpo.

✓Il frame Ethernet 802.3 è composto da: Preambolo (7B) + SFD (1B) + MAC dst (6B) + MAC src (6B) + EtherType/Length (2B) + Payload (46–1500B) + FCS (4B). Totale 64–1518B senza preambolo.
✓EtherType >1500 indica protocollo superiore: 0x0800=IPv4, 0x86DD=IPv6, 0x0806=ARP, 0x8100=VLAN tag.
✓Il payload minimo 46B e frame minimo 64B sono imposti da CSMA/CD per garantire rilevazione collisione. Se dati <46B → padding. MTU max 1500B, Jumbo 9000B.
✓CSMA/CD: ascolta → trasmetti → rileva collisione → jam signal 32bit → backoff esponenziale binario [0, 2^k-1] slot → riprova fino a 16.
✓Nelle reti switched full-duplex moderne CSMA/CD non è attivo: non ci sono collisioni perché ogni link è dedicato punto-punto.

📚 Prossimo passo - Gli switch Ethernet: tabella MAC e tecniche di switching

Abbiamo visto il frame sul cavo. Ora vediamo chi decide dove mandarlo: lo switch impara i MAC, costruisce la tabella CAM, e inoltra con store-and-forward, cut-through e metodi di controllo. Lab con switching e MAC flapping.