Ethernet

Ethernet nasce a meta degli anni 70, ha continuato ad evolversi e a crescere e ha mantenuto la sua posizione dominante. Attualmente ethernet è di gran lunga la tecnologia utilizzata per LAN cablate.
Il successo fu dovuto principalmente al fatto che ethernet fu la prima LAN ad alta velocità con vasta diffusione, quindi gli amministratori di rete, dopo aver acquisto familiarità con la tecnologia si dimostrarono riluttanti al cambiamento quando apparvero sulla scena altre tecnologie. In secondo luogo, altre tecnologie tentarono di competere con ethernet (FDDI, token ring, ATM), ma si dimostrarono più costose e complesse.
All'inizio, a metà anni 70, le LAN ethernet utilizzavano un cavo coassiale con una topologia a stella basata su hub.

Cos'è un hub?

Un hub è un dispositivo a livello fisico che agisce sui singoli bit, piuttosto che sui frame. Quando un bit (0, 1) arriva ad un'interfaccia, l'hub semplicemente rigenera il bit, amplifica la sua potenza e lo trasmette su tutte le altre interfacce.

Quindi una LAN ethernet con topologia a stella basata su hub è una LAN broadcast.
Se un hub riceve un frame su due diverse interfacce contemporaneamente, si verifica una collisione e i nodi che avevano inviato i frame inizialmente devono ritrasmetterli.
Un cambiamento rivoluzionario si verificò intorno al 2000, quando ethernet introdusse gli switch.
Per il momento accenniamo solo che uno switch è privo di collisioni, ma è anche un vero e proprio commutatore di pacchetti store-and-forward. Tuttavia a differenza dei router che operano a livello 3, gli switch operano al livello 2.

Struttura dei frame Ethernet
...

Pasted image 20231022123554.png

Nota

A questo punto della trattazione può essere utile ripassare gli indirizzi MAC e il protocollo ARP per la risoluzione degli indirizzi che abbiamo affrontato nel capitolo 4:

Consideriamo l'invio di un datagramma IP da un host all'altro, sulla stessa LAN ethernet, come nella figura sopra. Il payload di un frame ethernet è un datagramma IP, ma facciamo notare che ethernet può trasportare altri tipi di pacchetti.
Supponiamo che il mittente abbiamo indirizzo MAC: AA-AA-AA-AA-AA-AA, e che il ricevente, B, abbiamo indirizzo MAC: BB-BB-BB-BB-BB-BB. La scheda di rete incapsula il datagramma IP in un frame ethernet e lo passa al livello fisico. Il destinatario riceve il frame dal livello fisico, estrae il datagramma IP e lo passa al livello di rete.
Esaminiamo adesso i campi di Ehternet:
Pasted image 20231022124550.png

  • Campi dati: questo campo contiene il datagramma IP. La MTU di Ethernet è di 1500 byte, quindi se un datagramma IP supera questa dimensione il datagramma deve essere frammentato in più frame. D'altra parte, se un datagramma IP, non è grande almeno 46 byte (dimensione minima per il campo dati di un frame) esso viene riempito (stuffed). I byte di riempimento verranno rimossi utilizzando il campo lunghezza del datagramma IP.
  • Indirizzo di destinazione (6 byte): questo campo contiene il MAC della scheda di rete di destinazione. Quando un destinatario riceve un frame poiché è il destinatario o in caso di frame inviati in broadcast, viene estratto il datagramma dal frame e consegnato al livello di rete.
  • Indirizzo sorgente (6 byte): questo campo è destinato al MAC della scheda di rete del mittente.
  • Tipo (2 byte): questo campo consente a ethernet di utilizzare vari protocolli di rete. Ciascun protocollo di rete ha il suo codice standard.
  • Controllo a ridondanza ciclica (CRC, 4 byte): questo campo consente alla scheda di rete di rilevare errori di bit nel frame.
  • Preambolo (8 byte): i frame ethernet iniziano con un campo di 8 byte: sette hanno i bit posti a 10101010 e l'ultimo byte posto a 10101011. I primi sette byte del preambolo servono per risvegliare le schede di rete dei riceventi e sincronizzare i loro clock con quello del mittente. In funzione del tipo di LAN Ethernet, la scheda di rete cercherà di trasmettere a 10 Mbps o 100 o 1 Gbps; si verificherà tuttavia sempre una variazione rispetto all'esatto tasso previsto, che non è conosciuta a priori dalle altre schede di rete sulla LAN. Quindi, il ricevente può utilizzare i primi sette byte del preambolo per sincronizzare con il clock del mittente. Gli ultimi due bit del preambolo (11) avvisano la scheda di rete destinataria che stanno arrivando le cose importanti.

Ethernet fornisce un servizio senza connessione: quando una scheda di rete vuole inviare un datagramma ad un host della rete, lo incapsula in frame e lo immette nella LAN.
Questo servizio è analogo ai servizi senza connessione di IP e UDP.
Ethernet fornisce un servizio non affidabile.
Anche se il destinatario dovesse riscontrare errori nel frame dovuto ad un controllo CRC non lo comunica al mittente in nessun caso, positivo o negativo che sia.
Questo è parte di ciò che mantiene ethernet semplice ed economico, ma significa anche che il flusso dei datagrammi che attraversano il livello di rete può presentare delle lacune.

Come può un'applicazione nell'host destinatario rilevare lacune dovute ai frame ethernet scartati?

Dipende se l'applicazione usa TCP o UDP. Se si usa UDP, allora l'app nell'host destinatario vedrà delle lacune nei dati. Nel caso di TCP, se l'host destinatario non invia ACK relativo ai dati che sono stati scartati, il mittente è forzato a ritrasmettere. Si noti inoltre che il mittente, ad un certo punto ritrasmetterà dei pacchetti, al livello di collegamento ethernet li spedirà, ma non saprà se si tratta di pacchetti nuovi o già trasmessi.

Tecnologie Ethernet
...

Fino a qui ci siamo riferiti a ethernet come se fosse un unico standard.
In realtà ethernet compare sotto diverse forme e con svariate denominazioni: 10BASE-T, 10BASE-2, 100BASE-T, ecc.
La prima parte del nome: 10, 100, 1G, 10G, 40G, si riferisce alla velocità dello standard (10, 100 megabit e 1, 10, 40 gigabit).
BASE si riferisce a ethernet in banda base, cioè che il mezzo fisico trasporta solo traffico ethernet.
La parte finale rimanda all'acronico del mezzo fisico: T indica doppino in rame intrecciato.
Oggi si utilizzano standard ethernet con i cavi in rame (100BASE-T) e in fibra ottica (100BASE-FX, 100BASE-FS, 100BASE-BX). In base al mezzo fisico utilizzato si riescono a raggiungere distanze diverse: con i doppini in rame centinaia di metri, mentre con la fibra anche diversi chilometri, consentendo l'interconnessione di LAN su diversi edifici.

Potrebbe sorgere una domanda: nelle topologie di ethernet con bus condiviso e hub, diversi dispositivi condividevano lo stesso canale, ethernet inglobava nella sua configurazione CSMA/CD, inoltre in questo contesto era necessario sapere a quale scheda di rete destinare un pacchetto, dato che tutti condividevano lo stesso canale. In una topologia a stella, in cui vi sono gli switch (e in cui ciascun dispositivo non condivide fisicamente il mezzo con altri dispositivi) il MAC è ancora necessario? Molto spesso no.

Switch a livello di collegamento
...

Il ruolo di uno switch è quello di ricevere frame in ingresso e inoltrarli in uscita.
Lo switch è trasparente ai nodi, ovvero i nodi si inviano i pacchetti tra di loro, non li inoltrano in modo specifico ad uno switch che poi deve avere il compito di inoltrarlo ad un altro nodo. In automatico il frame inviato da un nodo arriva agli switch che li inoltrano in uscita. Può succedere che il tasso con cui i frame giungono ad una qualsiasi interfaccia di uscita può temporaneamente eccedere la capacità del collegamento di quell'interfaccia. Per risolvere questo problema le interfacce di uscita degli switch hanno dei buffer, come nei router per i datagrammi.

Inoltro e filtraggio
...

Il filtraggio (filtering) è la funzione dello switch che determina se un frame debba essere inoltrato ad una qualche interfaccia o scartato.
L'inoltro (forwading) consiste nell'individuare l'interfaccia verso cui il frame deve essere diretto e, quindi nell'inviarlo a quell'interfaccia.
Tali operazioni vengono eseguite utilizzando delle tabelle di commutazione (switch table), composta da voci che riflettono alcuni dispositivi della LAN (non necessariamente tutti).
Tali tabelle contengono:

  • MAC del nodo
  • interfaccia dello switch collegata a tale nodo
  • il momento in cui la voce è stata aggiunta alla tabella.
    Nella parte in cui abbiamo tratta gli SDN abbiamo detto che gli switch possono essere utilizzati anche per inoltrare datagrammi IP, in questo contesto distingueremo lo switch come un dispositivo che indirizza MAC e non IP.

Pasted image 20231022171418.png

Per comprendere come uno switch esegue filtraggio e inoltro ipotizziamo che un frame con indirizzo di destinazione DD-DD-DD-DD-DD-DD giunga allo switch sull'interfaccia x. Lo switch cerca nella sua tabella il MAC DD-DD-DD-DD-DD-DD, e i casi che si possono verificare sono tre:

  • non vi è una voce per DD-DD-DD-DD-DD-DD; in questo caso lo switch manda il frame in broadcast su tutte le interfacce (tranne x).
  • Vi è una voce nella tabella che associa x a DD-DD-DD-DD-DD-DD. In questo caso il frame è diretto al mittente stesso. Non occorre quindi inoltrare il frame ad un'altra interfaccia e lo switch esegue il filtraggio, scartando il frame.
  • Vi è una voce nella tabella che associa DD-DD-DD-DD-DD-DD a . In questo caso il frame deve essere inoltrato al segmento di LAN collegato all'interfaccia y. Lo switch esegue l'inoltro.
    Lo switch è più intelligente di un hub, in quanto non effettua inoltri broadcast, ma mirati.
    Esistono per gli switch dei protocolli di instradamento come il livello di rete?
    Esistono protocolli di instradamento a livello di collegamento, equivalenti a quelli del livello di rete, o l'amministratore deve configurare manualmente le tabelle degli switch?
Autoapprendimento
...

Uno switch ha la pregevole proprietà di costruire in automatico la sua tabella di commutazione, nel seguente modo:

  1. all'inizio la tabella è vuota;
  2. di ogni frame che riceve, lo switch archivia nella sua tabella: il MAC sorgente, l'interfaccia da cui arriva il frame e il tempo di arrivo;
  3. dopo un certo periodo di tempo, detto aging time, se lo switch non ha ricevuto frame da un certo indirizzo sorgente lo elimina dalla tabella. In tal modo se un calcolatore viene sostituito da un altro (con un'altra scheda di rete e quindi indirizzo diverso), la riga relativa al MAC precedente viene eliminata.

Pasted image 20231215154934.png

Proprietà della commutazione a livello di collegamento:
...
  • Eliminazione delle collisioni. In una LAN costituita da switch e senza hub non vi è spreco di banda a causa delle collisioni. Gli switch mettono i frame nei buffer e non trasmettono più di un frame su ogni segmento di LAN in un certo istante. Come in un'architettura basata su una rete di interconnessione, il massimo throughput aggregato di uno switch è la somma dei tassi trasmissivi di tutte le sue interfacce.
  • Collegamenti eterogenei. Dato che uno switch isola un collegamento da un altro, i diversi collegamenti nella LAN, possono funzionare a velocità diverse e possono usare mezzi trasmisivi diversi.
  • Gestione. Oltre a fornire maggiore sicurezza uno switch facilita anche la gestione di rete. Per esempio, se una scheda di rete ha un malfunzionamento e manda continuamente frame Ethernet, uno switch può individuare il problema e disconnettere internamente la scheda di rete non funzionante. L'amministratore di rete non ha bisogno neanche di essere sul posto per risolvere il problema.
Switch e router a confronto
...

Entrambi sono commutatori di pacchetti store-and-forward che inoltrano i pacchetti usando indirizzi: gli switch usano indirizzi a livello di collegamento, mentre i router indirizzi a livello di rete.
Gli switch sono plug-and-play (non hanno bisogno di alcuna configurazione), possono avere capacità di filtraggio e di inoltro di pacchetti relativamente alte, ma devono elaborare pacchetti solo fino al livello 2. La topologia di una rete di switch è ristretta ad una architettura ad albero per evitare cicli di instradamento con i frame broadcast. Inoltre, una rete di switch molto grande richiederebbe grandi tabelle ARP nei nodi e nei router generando un considerevole traffico ARP. Inoltre gli switch non non offrono protezione contro le tempeste broadcast, se un host cominciasse a trasmettere un flusso ininterrotto di pacchetti broadcast, gli switch li inoltrerebbero, provocando il collasso della rete.
Dato che gli indirizzi di rete sono gerarchici (e non lineari come i MAC), generalmente i pacchetti non presentano cicli di instradamento attraverso i router, anche nel caso in cui la rete presenti percorsi ridondanti. I pacchetti rischiano di percorrere cicli solo se le tabelle dei router sono configurate male (tuttavia i pacchetti IP hanno un campo che limita la percorrenza di cicli). Pertanto, i pacchetti non sono vincolanti a un albero di copertura e possono utilizzare il miglior percorso tra sorgente e destinazione. I router proteggono dalle tempeste di broadcast, ma non sono plug-and-play.