Sei sulla pagina 1di 4

Le collisioni in ethernet

Si descrive dettagliatamente il sottolivello MAC.


Il sottolivello MAC
Il sottolivello MAC si trova direttamente a contatto con il livello fisico (livello1,
cablaggio) e, indipendentemente dalla topologia di rete, si occupa delle seguenti
problematiche:
 Regolamentazione dell’accesso al mezzo trasmissivo;
 Verifica della lunghezza minima del pacchetto, scartando i pacchetti ricevuti che
hanno una lunghezza inferiore al valore minimo ammesso (64 byte);
 Riconoscimento dell’indirizzo di destinazione del pacchetto (frame);
 Generazione del preambolo: in trasmissione il MAC prepone un preambolo al
pacchetto che deve essere trasmesso;
 Assemblaggio dei dati provenienti dal sottolivello superiore LLC in trame con
l’indirizzo sorgente, di destinazione e il campo per il controllo degli errori;
 Rimozione del preambolo: in ricezione il MAC rimuove il preambolo;
 Disassemblaggio delle trame ricevute e consegna dei dati al sottolivello LLC;
 Individuazione degli errori ed eliminazione del frame ritenuto errato.
La criticità delle reti locali è dovuta al fatto che utilizzano un unico mezzo condiviso
dai calcolatori connessi: reti di questo tipo sono dette reti broadcast, perché i dati
trasmessi sul canale da una macchina vengono ricevuti da tutte le altre.
Per richiedere l’accesso al canale il livello MAC può usare due protocolli di accesso:
 Deterministico o protocollo ad accesso controllato: prima di trasmettere è
necessario entrare in possesso del controllo esclusivo della risorsa così da evitare
qualsiasi tipo di collisione; ogni stazione deve aspettare il proprio turno, che le
viene concesso secondo diverse politiche di gestione (tecnica token passing usata da
reti Token Ring e FDDI);
 Non deterministico o protocollo ad accesso casuale: il primo che arriva inizia a
trasmettere senza acquisire il controllo esclusivo della risorsa canale e quindi
esiste la possibilità di creare delle collisioni che provocano la perdita
dell’informazione; il protocollo gestisce le collisioni con un apposito algoritmo,
detto CRA (Collision Resolution Algorithm). Questa modalità viene utilizzata da
Ethernet ed è chiamata CSMA/CD (Carrier Sense Multiple Access with Collision
Detection).
Per ridurre il tasso di collisioni si può suddividere la LAN in più porzioni dette
“domini di collisione” in modo che la contesa del mezzo avvenga solo tra stazioni
appartenenti a un singolo dominio.
BIT TIME
Indica il tempo durante il quale un bit permane sulla linea, dipende dalla frequenza
di trasmissione. Tbit = 1/f [s]
SLOT TIME
Indica il tempo che impiega uno slot a compiere il tragitto di massima distanza
teorica tra due nodi.
ROUND TRIP DELAY
Se indichiamo con T il tempo massimo di propagazione del segnale tra due stazioni
qualsiasi presenti sulla rete, 2T rappresenta il tempo massimo di trasmissione per
una stazione prima di accorgersi di una collisione (andata e ritorno). Il tempo 2T
prende il nome di round trip delay.
SPAZIO INTERFRAME
Il minimo spazio tra due frame che non collidono è detto spazio interframe.
È fissato a 96 bit time (9,6 microsecondi).
Rilevamento delle collisioni
Le tre funzioni svolte con il protocollo CSMA/CD sono:
 trasmettere e ricevere i pacchetti;
 rilevare gli errori nei pacchetti;
 decodificare i pacchetti e controllare gli indirizzi prima di passarli ai livelli
superiori; è realizzata da due sottosistemi che operano a livello MAC:
- CAP (Channel Access Procedure): l’insieme delle procedure che la stazione
effettua per realizzare l’accesso al canale;
- CRA (Collision Resolution Algorithm): l’insieme delle procedure che la
stazione effettua per rilevare ed eventualmente recuperare situazioni di
collisione.
Il protocollo CSMA/CD opera in questo modo:
 Se la linea è inattiva (idle) non viene rilevata alcuna portante, quindi:
– viene immediatamente inviato il pacchetto di dimensione massima
1500 byte;
– si ascolta che nessun altro inizi a trasmettere;
– si deve aspettare 9,6 microsecondi tra i frame back to back.
 Se la linea è occupata (busy) viene rilevata una portante e quindi:
– si aspetta un tempo casuale prima di riprovare (strategia di backoff);
– si riprova fi no a quando la linea ritorna libera per procedere
all’immediata trasmissione del pacchetto.
 Se viene rilevata la collisione:
– si interrompe l’invio e si inserisce il segnale di disturbo (jam signal);
– si riprova successivamente.
Non appena avviene una collisione (si trova analizzando la dimensione del segnale,
che diventa maggiore rispetto allo stato normale) invece di sospendere la
trasmissione, si cerca di aumentare le collisioni trasmettendo un segnale di disturbo
(un jamming signal composto da 48 bit con un’alternanza di 0 e di 1) in modo che
tutti gli utilizzatori del mezzo trasmissivo si accorgano al più presto della collisione.
Gli errori in Ethernet
Il frame Ethernet è costituito da un preambolo di 8 byte, che ha lo scopo di
assicurarsi dell’effettiva disponibilità della linea: se avvengono delle collisioni,
queste hanno luogo generalmente sul preambolo, quindi prima che inizi la
trasmissione del segnale SFD di inizio messaggio.
Non appena la collisione viene rilevata, le schede di rete d’interfaccia di entrambi gli
host non interrompono immediatamente la trasmissione, ma continuano a inviare
bit fino a raggiungere la dimensione minima di un pacchetto di 64 byte; questo
accorgimento è necessario per fare in modo che le altre eventuali macchine presenti
sulla rete si accorgano che la collisione è in corso e che la rete è momentaneamente
bloccata.
Successivamente interrompono la trasmissione e attivano un timer nell’algoritmo di
backoff di durata casuale prima di ritentare la trasmissione. Il fatto che il timer sia
casuale impedisce che entrambe ripartano nello stesso istante, causando una nuova
collisione. Se, nonostante l’uso dei timer, la collisione si verificasse ancora, il timer
verrebbe allungato progressivamente fino a un punto in cui il continuare delle
collisioni indicherebbe un guasto fisico sulla rete e le singole schede d’interfaccia
comunicherebbero al rispettivo computer l’impossibilità di trasmettere.
Esempio
Vediamo un esempio con due stazioni poste a 60 metri di distanza:
1) alla velocità di 10 Mbit per secondo ci vogliono 100 nanosecondi per inviare
un singolo bit:
ts = 1/ (10*106 )= 1/107=10-7 = per avere il risultato in una potenza del 10 multipla di 3
= 100*109 (o 0.1*10-6) secondi
2) l’impulso elettrico viaggia alla velocità della luce, ma su un cavo di rame la
propagazione non è istantanea per effetto del “ritardo di propagazione”
(65%), quindi ≈ 200.000 km/s.
Otteniamo lo spazio percorso dalla relazione fisica che lega lo spazio con la
velocità:
s = v*t = (200*106 ) x (100*10-9 )= 20 m
3) in un nanosecondo il primo bit ha quindi percorso 20 centimetri e prima che il
secondo bit sia “uscito dalla scheda di rete” che sta trasmettendo (100
nanosecondi), il primo bit ha percorso circa 20 metri. Prima che tutto il
preambolo sia stato trasmesso, cioè 48 bit in 4,8 microsecondi (100*10-9*48),
il primo bit ha percorso 960 metri.
Se una seconda stazione, a 60 di metri distanza dalla prima, deve iniziare a
trasmettere, lo può fare solo 3 nanosecondi dopo l’inizio della prima,
altrimenti le arriva il segnale del preambolo che le fa sentire la linea occupata;
se le due stazioni iniziassero contemporaneamente la trasmissione dopo la
metà del tempo si troverebbero in collisione. Se contemporaneamente una
terza stazione, ancora più distante, iniziasse a trasmettere, questa
colliderebbe con entrambe, e via di seguito.