DIPARTIMENTO DI INFORMATICA ED AUTOMAZIONE |
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, quando 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 di metri distanza dalla prima, ascolti la linea nel momento in cui la prima ha iniziato a trasmettere e la trovi 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 ulteriormente 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 deriva 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, è necessario 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 dal 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.
Dott Ing. ALDO NECCI
Dipartimento di Informatica ed Automazione Universita' degli Studi "Roma Tre" Via della Vasca Navale, 79 ROMA |
|
e-mail: necci@inf.uniroma3.it |