Nella rete Ethernet non esiste un arbitro degli accessi bensì un meccanismo
in base al quale le singole stazioni di lavoro si "autodisciplinano",
astenendosi dal trasmettere quando qualcun'altra lo sta già facendo. Tecnicamente
questo sistema prende il nome di CSMA/CD (Carrier Sense Multiple Access/Collision
Detection - accesso multiplo a rilevazione di portante con segnalazione
di collisione). Vedi CSMA. Interpretando il significato di questa sigla
si comprende anche l'anatomia del meccansimo. La prima azione che qualsiasi
scheda d'interfaccia esegue prima d'iniziare a trasmettere consiste nell'ascoltare
se qualcuno lo sta già facendo, ecco la rilevazione della portante. Nel
caso qualcuno stia trasmettendo, sul cavo sarà presente un segnale a 20
MHz su cui viaggiano 10 Mbit per secondo (codificati con il sistema di
Manchester). In caso di "occupato" la workstation desiste e tenta di ritrasmettere
più tardi. L'accesso alla rete è multiplo, perciò tutte le stazioni hanno
la stessa facolta di parlare a condizione di accertarsi prima che la linea
sia libera, operazione che possono eseguire tutte in contemporanea. Supponiamo,
a questo punto, che due stazioni siano pronte a trasmettere e che abbiano
trovato la linea libera. La trasmissione parte nello stesso momento e
quella della prima inevitabilmente collide con quella della seconda provocando
l'ingarbugliamento del segnale elettrico e l'impossibilità di riconoscere
i bit che vi erano contenuti. Se non esistesse nessun sistema che segnalasse
l'avvenuta collisione, le due stazioni continuerebbero a trasmettere i
rispettivi messaggi per intero, nella convinzione che questi arriveranno
a buon fine. Per questo motivo i progettisti hanno inserito nella scheda
d'interfaccia un ulteriore circuito che rimane sempre in ascolto, anche
quando la scheda medesima sta trasmettendo, per verificare che non siano
avvenute collisioni. Il circuito in sé non è complesso, infatti tutto
quel che deve verificare è l'esistenza di valori di tensione superiori
alla norma. In caso di collisione, infatti, i segnali elettrici delle
due stazioni si mescolano e finiscono anche per sommarsi, perciò la tensione
risultante che circola in rete è maggiore. Non appena la collisione viene
rilevata, le schede d'interfaccia di entrambe le stazioni non interrompono
immediatamente la trasmissione, ma continuano a inviare bit fino a raggiungere
la dimensione minima di un pacchetto di 64 Byte. Questo per fare in modo
che anche tutte le altre macchine sulla rete si accorgano che la collisione
è in corso e che la rete è momentaneamente bloccata. Dopo di che interrompono
la trasmissione e attivano un timer 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. Nella realtà le collisioni sono più frequenti di quello
che a prima vista potrebbe sembrare. Infatti, oltre al caso fortuito visto
prima di due stazioni che trasmettono esattamente nello stesso momento,
esistono anche altri casi in cui due o più macchine cercano di prendere
possesso della linea con la convinzione che sia libera, quaundo questa
in realtà non lo è e c'è già qualcun altro che ha cominciato a trasmettere.
Per capire come questo possa accadere dobbiamo parlare di tempi: alla
velocità di 10 Mbit per secondo ci vogliono 100 nanosecondi per inviare
un singolo bit. Trattandosi di un impulso elettrico che viaggia alla velocità
della luce, la propagazione non è istantanea anche se molto veloce. Si
verifica quello che in termini tecnici si chiama "ritardo di propagazione".
Ci vuole circa un nanosecondo per percorrere 30 centimetri e, prima che
il secondo bit sia uscito dalla scheda di rete che sta trasmettendo, il
primo bit ha circa trenta metri di vantaggio. Le reti Ethernet hanno lunghezze
di centinaia di metri perciò può benissimo accadere che una seconda stazione,
diciamo a 90 metri distanza dalla prima, ascolti la linea nel momento
in cui la prima ha iniziato a trasmettere e la troveri comunque libera,
visto che il primo bit non è ancora arrivato fino a lei. In tal caso la
seconda stazione inizierebbe la propria trasmissione e quasi subito si
troverebbe coinvolta in una collisione. Anzi, anche una terza stazione,
ancora più distante potrebbe partire nel frattempo e provocare un vero
e proprio "tamponamento a catena". Questo ci fa capire per quale motivo,
al crescere del numero di stazioni presenti sulla rete, aumenti anche
il numero di collisioni e ci spiega anche perché una rete Ethernet non
possa superare una certa lunghezza. Il problema viene ulterioremente complicato
dal fatto che, mentre la seconda e la terza stazione si accorgono della
collisione quasi immediatamente, la prima non se ne rende conto fino a
quando il segnale di collisione rimbalza indietro lungo la rete e ritorna
fino a lei. Quindi si aggiungono ulteriori tempi morti perché, come abbiamo
visto prima, bisogna continuare a trasmettere almeno 64 Byte anche in
caso di collisione, così da far proseguire la collisione abbastanza a
lungo da consentire a tutte le stazioni coinvolte di accorgersene. La
quantità di Byte da trasmettere è legata al tempo che il segnale elettrico
impiega per completare un viaggio di andata e ritorno (round trip) sull'intera
rete. Per l'Ethernet a 10 Mbps le specifiche dicono che, qualunque sia
il tipo di cavo utilizzato, un singolo bit non deve impiegare più di 50
microsecondi per coprire l'intera lunghezza della rete nei due sensi,
il che equivale a trasmettere 500 bit, cioè 62,5 Byte, arrotondati a 64.
Da questi parametri di partenza derivano una serie di vincoli di lunghezza
del cavo, di numero massimo delle stazioni per tratta di cavo e di numero
massimo di ripetitori. Questi vincoli cambiano per i vari tipi di Ethernet,
come vedremo più avanti. Per estendere il limite della rete oltre il valore
di 50 microsecondi, per l'andata e ritorno, è nececessario creare una
seconda rete e collegarla alla prima attraverso un dispositivo "ponte"
(chiamato bridge) che memorizza ogni messaggio in arrivo da una parte
e lo ritrasmette alla rete successiva solo se è destinato a questa, oppure
lo scarta se si tratta di un messaggio che deve rimanere all'interno della
prima rete. Così facendo svincoliamo le temporizzazioni della prima rete
(che da punto di vista del bridge diventa un "segmento") dalla temporizzazione
della seconda. Inoltre riduciamo il traffico generale e le collisioni,
visto che evitiamo il propagarsi di traffico inutile tra le due. La velocità
massima di trasmissione per una rete Ethernet classica è di 10 Mbit per
secondo, ma esiste anche una versione a 1 Mbit per secondo creata da AT&T
col nome di StarLAN e usata per un certo periodo tra il 1985 e il 1987
come sistema per sfruttare il doppino telefonico per la trasmissione dati
(decaduta con l'avvento dell'Ethernet su doppino che trasmette 10 Mbps
su cavo di tipo telefonico). Negli ultimi due anni, poi, ha cominciato
a diffondersi anche una versione a 100 Mbps, chiamata Fast Ethernet. Qualunque
sia la velocità massima nominale di queste tre varianti, la pratica ci
dice che è difficile sfruttarne più del 40% quando le si utilizza nella
loro forma originale, cioè numerose macchine connesse a un singolo percorso
trasmissivo. Talvolta si arriva anche al 50 e al 60%, ma non in modo continuativo.
Oltre il 40%, infatti, le collisioni aumentano molto rapidamente e oltre
il 60% diventano predominanti. In ragione di questo fatto Ethernet ha
dovuto per anni respingere la concorrenza di Token Ring che, in quanto
priva di collisioni, riusciva con i propri 4 Mbps a far viaggiare tante
informazioni di quante ne conteneva un'Ethernet a 10 Mbps. Una Token Ring
a 16 Mbps si difende meno bene rispetto a una Fast Ethernet a 100 Mbps,
ma il divario non è enorme visto che quest'ultima, in realtà, non riesce
a mettere in campo più di 40 o 60 Mbps reali quando deve servire diverse
macchine contemporaneamente. Esistono modi per ridurre l'effetto delle
collisioni, a fronte di un maggiore investimento sull'hardware, ma questi
sono possibili solo con le reti che usano il doppino oppure la fibra,
perciò li vedremo più avanti.
|