|
Topologie
di Rete
L'aspetto più evidente di una rete è la topologia delle connessioni, ovvero la disposizione geometrica dei nodi.
Al crescere del numero dei nodi aumentano le geometrie possibili: ciascun tipo sarà più o meno adatto ad una particolare esigenza; non è quindi possibile una classificazione rigorosa delle topologie di rete, possiamo solo individuare alcune tipologie fondamentali di riferimento.
Alcune reti utilizzano i collegamenti Punto-Punto, cioè la connessione diretta tra coppie di nodi, con canali riservati, senza stazioni intermedie.
Altre prevedono i collegamenti Multipunto; in altre parole utilizzano un canale comune su cui possono accedere più nodi.
Topologia a stella
In una Topologia a Stella tutti i nodi sono collegati ad un unico nodo centrale, detto Hub. Ogni collegamento tra unità centrale e nodo terminale, può essere di tipo Simplex, Half duplex o Full duplex.
Tutti i pacchetti di informazioni vengono sempre trasmessi all'Hub centrale che provvede a ritrasmetterli ai destinatari: l'unità centrale, che in genere è un computer dedicato esclusivamente alla gestione della rete (Server di rete) detiene il controllo del protocollo di trasmissione e abilita al colloquio di volta in volta i nodi terminali. Se uno o più collegamenti vengono interrotti, il resto della rete continua a funzionare; viceversa se si guasta l'hub centrale, tutta la rete è bloccata. La rete a stella può essere allargata aggiungendo altri nodi, ma solo fino al numero massimo di connessioni previste dall'hub.
Per superare questa limitazione, ed anche per evitare il pericolo di una caduta totale della rete, si utilizza la rete a Stelle Connesse in cui più reti a stella sono collegate tra loro attraverso il nodo centrale.
Topologia ad anello
Nella Topologia ad Anello ogni nodo è collegato con altri nodi in modo da formare una struttura circolare in cui il flusso delle informazioni è in generale di tipo Simplex.
Ogni informazione da trasferire deve percorrere l'anello fino al destinatario: se consideriamo il messaggio di risposta per la conferma, ogni scambio d'informazioni coinvolge tutti i nodi della rete, che devono cooperare alla comunicazione anche se non sono direttamente interessati ai messaggi. Il guasto di un nodo, quindi, causa la "caduta" dell'intera rete anche se è facile ponticellare l'ingresso e l'uscita di un nodo per escluderlo.
È possibile aggiungere altri nodi all'anello senza limitazioni (salvo il numero di combinazioni del codice d'identificazione del nodo), ma le prestazioni della rete decadono rapidamente al crescere del numero dei computer.
Il protocollo utilizzato è detto Token-ring: ogni nodo è autorizzato ad utilizzare il canale solo quando riceve un codice particolare detto
Token, generato dal primo nodo acceso sull'anello e non duplicabile :
-
Se un nodo non ha bisogno di inviare messaggi, ritrasmette il Token al nodo successivo.
-
Viceversa trattiene il token e invia il messaggio con una struttura in campi prestabiliti
(pacchetto):
| End |
FCS |
Dati |
Mitt |
Dest |
Start |
-
Start: campo di intestazione, che distingue il messaggio da un token libero, contiene la priorità del messaggio e un'eventuale prenotazione per comunicazioni successive.
-
Destinatario, con il codice del nodo a cui è diretto il messaggio.
-
Mittente, con il codice del nodo che ha generato il messaggio.
-
Dati, con il messaggio vero e proprio.
-
FCS (Frame Check Sequence): codici di controllo del messaggio.
-
End: delimitatore di chiusura pacchetto.
-
Ogni nodo che riceve il pacchetto esamina il campo destinatario: se non corrisponde al proprio codice, ritrasmette integralmente il pacchetto al nodo successivo (operando al più una verifica degli errori).
Se il campo Mittente corrisponde al proprio codice, si tratta di un
messaggio inviato che non ha trovato il destinatario: in questo caso il nodo
distrugge il pacchetto e ritrasmette il token libero.
-
Se un nodo si riconosce come destinatario, acquisisce il messaggio e,
secondo il protocollo, trasmette il token libero o un codice di risposta
(che prosegue fino al nodo trasmettitore iniziale).
Il tempo di trasferimento dei dati è sempre calcolabile apriori (protocollo di accesso di tipo deterministico) e non c'è il pericolo di contese tra i nodi per l'accesso al canale.
Particolari problemi sorgono solo nella fase iniziale in cui alcuni nodi sono in funzione mentre altri sono ancora spenti: l'inserimento nella catena di un nodo può causare la perdita del token; il protocollo prevede particolari procedure per la verifica delle situazioni di stallo e di ricostruzione del token, senza duplicarlo.
È possibile usare un canale bidirezionale su tutti i collegamenti; in questo caso ogni nodo,
tramite un algoritmo di routing, può scegliere qual è il canale più vantaggioso per inoltrare il messaggio, in base alla distanza, al maggior traffico su una linea o alla momentanea caduta di un nodo (che in questo caso non compromette l'intera rete).
Topologia Completamente Connessa
La completa connessione dei nodi usa un canale indipendente tra tutte le coppie possibili di nodi. Ogni comunicazione può avvenire in modo diretto senza pericoli di collisioni o interferenze e senza tempi di attesa; per contro è un sistema molto dispendioso poiché la quantità dei cavi e delle schede di rete cresce in modo proporzionale al quadrato del numero dei nodi.
Topologia a Bus
Nel collegamento "a Bus" (di tipo Multipunto) N nodi sono connessi ad un unico canale comune, condiviso da tutte le comunicazioni. I messaggi, organizzati in pacchetti vengono inviati sul canale e tutti i nodi possono valutarli, ma solo il nodo che riconosce di essere il destinatario acquisisce il messaggio; ovviamente, solo un nodo alla volta può trasmettere sul canale.
Per evitare collisioni, ovvero sovrapposizioni di segnali da parte di più nodi, verranno adottate tecniche di Accesso a Contesa che hanno lo svantaggio di da non garantire
il tempo necessario per il trasferimento dei dati:
-
ALOHA ogni utente accede al canale nel momento in cui ha bisogno di trasmettere un messaggio, senza fare alcuna verifica sul canale: se entro un certo tempo prestabilito non riceve una conferma dal destinatario, il trasmettitore deduce che il frame è andato distrutto per una collisione e ritenta la trasmissione.
-
CSMA (Carrier Sense Multiple Access): ogni nodo, prima di trasmettere dei dati, verifica che il canale sia libero rilevando la portante: se è in corso un'altra trasmissione, il nodo attende un tempo casuale e ritenta l'accesso.
Se due nodi verificano contemporaneamente il canale, trovandolo libero, ci sarà una collisione nella trasmissione, che però verrà riscontrata solo per la mancata risposta da parte del destinatario.
-
CSMA/CD (Carrier Sense Multiple Access / Collision Detection): ogni nodo deve innanzitutto assicurarsi che il canale sia libero, iniziare al più presto la trasmissione, ed in seguito verificare che non vi sia sovrapposizione di segnali da parte di altri utenti continuando a monitorare la linea.
Questa procedura minimizza le probabilità di errore, ma richiede una maggiore complessità hardware e software.
La topologia a Bus è in disuso, ed è stata sostituita da
una topologia a stella in cui il nodo centrale non è un computer ma un
dispositivo (Hub o Switch)
dedicato alla ritrasmissione dei pacchetti a tutti gli altri
collegamenti.
Rimane perciò il problema delle collisioni e il protocollo utilizzato è
comunque lo standard Ethernet delle reti a Bus, con un pacchetto organizzato in campi prestabiliti:
| CRC |
PAD |
Dati |
N |
Mitt |
Dest |
Start |
-
Start : costituito da un Preambolo necessario per sincronizzare i clock dei
ricevitori e uno Startig Delimiter che segnala l'inizio del frame.
-
Destinatario : indirizzo del nodo cui è diretto il messaggio.
-
Mittente : indirizzo del nodo che ha inviato il messaggio.
-
N : numero dei byte di Dati
-
Dati : caratteri che compongono il messaggio vero e proprio.
-
PAD : caratteri ridondanti necessari per raggiungere la minima lunghezza del pacchetto.
-
CRC : codice per il controllo degli errori.
Ogni nodo è sempre in ascolto sul canale: quando riceve un pacchetto esamina se il campo destinatario corrisponde al proprio codice-indirizzo (unico): in caso affermativo acquisisce i dati, viceversa ignora la trasmissione.
Per garantire la verifica dell'Overrun, l'inizio del pacchetto deve raggiungere l'estremità opposta del canale prima che il trasmettitore abbia terminato l'invio; una collisione può infatti avvenire solo nell'intervallo tra l'emissione del pacchetto e la propagazione dello stesso sull'intera rete (Finestra di collisione): il pacchetto deve quindi avere una lunghezza
minima legata alla lunghezza del cavo ed alla
frequenza di trasmissione.
|