Per collegare tra loro più reti locali si possono usare i bridge (dispositivi multiporta simili agli hub, che però lavorano a livello di data link).
Per collegare una rete locale a una rete geografica invece serve un router.
Può essere necessario usare un bridge perché:
-
si vogliono collegare reti locali di natura diversa (per esempio una rete 802.3 e una rete 802.5);
-
si vuole suddividere quella che potrebbe essere un’unica rete per problemi di carico o di distanza fisica;
-
si vogliono isolare parti di una rete per motivi di sicurezza.
Il bridge è un dispositivo che opera a livello di data link; ha un solo livello LLC e tanti livelli MAC e fisico quante sono le diverse LAN che interconnette; le porte devono permettere la connessione dei diversi mezzi trasmissivi conformi ai diversi standard di LAN.
Quando il bridge riceve un frame che deve passare da una rete ad un’altra, il livello MAC relativo alla rete mittente toglie l’intestazione e passa i dati contenuti al livello LLC, il quale li passa al livello MAC dell’altra rete che aggiunge la nuova intestazione.
La ritrasmissione avviene con modalità store and forward, cioè il bridge riceve interamente il frame prima di ritrasmetterlo; ciò permette di superare i limiti sulle distanze massime e sul numero massimo di stazioni collegabili imposti dal livello fisico.
I bridge ritrasmettono solo i frame che devono effettivamente passare da una LAN a un’altra, mantenendo separati i traffici locali delle singole LAN; questa funzionalità è detta filtraggio (filtering); la rete complessiva (BLAN) ha un traffico globale superiore a quello massimo ammesso per ogni LAN.
I problemi più grossi nel collegamento di reti diverse sono:
-
la diversa velocità di trasmissione; il bridge deve essere in grado di bufferizzare i frame per non perderli;
-
la diversa dimensione dei frame (per esempio nelle reti 802.3 la dimensione massima è di 1.500 byte, mentre nelle reti 802.5 la dimensione massima dipende solo dal tempo di possesso del token); questo è un grosso problema perché i frame troppo grandi per una rete non possono essere frammentati e vengono scartati;
-
le intestazioni dei frame possono contenere dei valori che hanno senso solo in un tipo di rete e sono di difficile gestione; per esempio il campo durata del frame 802.11 non ha senso nelle reti 802.3; oppure si può pensare al caso di una stazione di una rete 802.5 che manda un frame a una stazione di una rete 802.3: poi si aspetta di veder ritornare il frame con impostati i bit che indicano se la stazione era presente e ha ricevuto correttamente il frame; può essere il bridge a impostarli ma ciò garantisce solo che il frame è stato ricevuto dal bridge e non dalla stazione destinataria.
-
l’uso della crittografia; le reti 802.11 supportano l’uso della crittografia a livello di data link; se una stazione 802.11 usa la crittografia a livello di data link, una stazione 802.3 non è in grado di decifrare la comunicazione;
-
l’uso della qualità di servizio: 802.11 in modalità PCF garantisce la qualità del servizio, che però non può essere considerata in una rete 802.3.
In una rete con bridge viene realizzato esclusivamente un servizio non connesso non confermato: il bridge non conferma alla stazione mittente di aver ritrasmesso il frame.
Il funzionamento di una rete in cui siano presenti bridge è molto simile a quello di una rete singola, però aumenta la possibilità che i frame vadano persi: il bridge può perdere frame per esempio perché la velocità di arrivo dei frame è troppo elevata rispetto a quella di invio sulla rete di destinazione e i buffer si riempiono o perché il frame in arrivo è troppo grande per la rete di destinazione.
Esistono due tipi di bridge, che operano con modalità diverse: i bridge trasparenti (trasparent bridge) e i bridge di instradamento da sorgente (source routing bridge). Attualmente i bridge standard sono del tipo trasparent (mentre il source routing è una prestazione addizionale).
Trasparent bridge
I bridge trasparenti possono essere collegati e funzionare senza problemi di configurazione; sono descritti nello standard 802.1D.
Quando il bridge riceve un frame, se le reti di provenienza e di destinazione sono uguali lo scarta, altrimenti deve decidere su quale porta inviarlo.
Il bridge usa una tabella di instradamento, detta anche di filtraggio, che elenca tutte le possibili destinazioni e la linea di output da usare. Quando il bridge viene collegato la tabella è vuota.
Se il bridge non ha informazioni sulla destinazione usa il flooding, cioè invia il frame a tutte le reti (tranne quella da cui il frame proviene).
Alcune informazioni possono venire configurate esplicitamente nella tabella di instradamento, in modo statico, altre vengono registrate automaticamente dal bridge durante un processo di apprendimento degli indirizzi (backward learning); in pratica, quando riceve un frame, il bridge può registrare da quale stazione e su quale linea proviene e quindi come raggiungere la stazione mittente; vi è anche un’indicazione sull’orario in cui l’informazione è stata registrata in modo da poter eliminare periodicamente le informazioni più vecchie, per gestire i cambiamenti di topologia; se una stazione non invia frame per un certo periodo le informazioni che la riguardano vengono cancellate; se arriva un frame con quella destinazione deve essere inviato usando il flooding.
In pratica il bridge funziona così:
-
se le reti di provenienza e di destinazione sono uguali scarta il frame;
-
se le reti sono diverse e ha una informazione sulla destinazione nella tabella di instradamento invia il frame sulla linea indicata;
-
se le reti sono diverse e non ha informazioni sulla stazione di destinazione usa il flooding;
-
se l’indirizzo di destinazione è l’indirizzo di broadcast invia il frame su tutte le porte.
Oltre a frame di dati diretti ad altre reti il bridge può ricevere frame di controllo, diretti al livello LLC del bridge.
La gestione del bridge è descritta nello standard 802.1B.
I frame di controllo hanno come indirizzo di destinazione l’indirizzo MAC di una porta del bridge o un indirizzo multicast cui appartiene almeno una porta del bridge.
Sia le porte dei bridge che i bridge hanno un indirizzo MAC; le porte vengono identificate all’interno del bridge con un numero progressivo a partire da 1; l’indirizzo del bridge coincide con l’indirizzo MAC della prima porta.
Ci sono degli indirizzi multicast usati per la gestione, per esempio l’indirizzo di tutti i bridge della rete.
Gli indirizzi dei bridge sono usati solo per scopi di gestione, non vengono mai usati durante la trasmissione di frame di dati.
Bridge source routing
Prima dei bridge trasparenti venivano usati i bridge source routing, preferiti dai sostenitori delle reti token ring.
La rete che usa i bridge source routing deve essere opportunamente configurata; a ogni rete viene assegnato un numero univoco di 12 bit e a ogni bridge un numero univoco di 4 bit.
Ogni stazione che invia un frame a una stazione che non appartiene alla stessa rete deve indicare esplicitamente il percorso che il frame deve seguire, espresso come una sequenza di numero di bridge, numero di rete, numero di bridge e così via.
Il percorso da seguire viene inserito nel frame, all’inizio del campo dati (tale valore è chiamato routing information); per segnalare la presenza di queste informazioni la stazione mittente attiva il bit dell’indirizzo del mittente che indica se l’indirizzo è locale o globale (questo bit nell’indirizzo del mittente non è mai usato col suo significato perché il mittente è sempre singolo). Quando un bridge riceve un frame esamina questo bit; se il bit non è attivato vuol dire che il frame è diretto a una stazione sulla stessa rete di provenienza e ignora il frame; se il bit è attivato cerca nelle informazioni sul percorso il numero della rete da cui il frame proviene e, se questo è seguito dal suo numero di bridge, trasmette il frame sulla rete indicata dal numero che segue.
Ogni stazione deve conoscere o poter determinare il percorso da seguire per poter raggiungere ogni altra stazione, quindi deve avere una propria tabella di instradamento; la tabella di instradamento viene calcolata automaticamente mediante un processo chiamato Route Discovery che permette al mittente di scoprire il percorso migliore verso la destinazione.
Quando la destinazione è sconosciuta il mittente manda un frame di esplorazione in broadcast; i bridge inseriscono il loro indirizzo in ogni frame di questo tipo che ritrasmettono. La stazione di destinazione rimanda il frame alla stazione mittente che vi trova le informazioni da inserire nella tabella di instradamento per raggiungere quella destinazione.
La destinazione in realtà riceve più copie del frame di scoperta ma considera solo la prima copia ricevuta e in tal modo individua il percorso più conveniente.