
Le reti locali viste fino ad ora devono rispettare dei vincoli riguardo alle distanze massime ammesse, al numero di elaboratori collegabili, al mezzo trasmissivo da utilizzare e così via. Se si vogliono interconnettere due LAN, cioè se si vogliono oltrepassare i limiti imposti, bisogna utilizzare dei repeater, bridge o router.
Facendo riferimento alla pila OSI, come mostrato nella figura precedente, un repeater collega esclusivamente il livello 1 Phisycal, cioè interconnette singoli segmenti di reti, al fine di formare una rete estesa più grande. La sua funzione è quella di ricevere un messaggio e di ritrasmetterlo, rigenerando l'intensità originale del segnale.
Un bridge opera al livello 2 della pila OSI.
E' quindi in grado di connettere reti fisicamente distinte, poiché contiene due MAC, mentre LLC delle reti da interconnettere deve essere lo stesso.
Un router, invece, è in grado di interconnettere anche LAN con architetture di rete e sistemi operativi differenti, quali per esempio TCP/IP e DECnet fase V, in quanto opera al livello 3 della pila OSI.
I bridge ritrasmettono solamente i pacchetti che devono effettivamente
transitare da una LAN ad un'altra, mantenendo separati i traffici locali
delle singole LAN che interconnettono. Questa funzionalità, detta di
"filtering" permette di ottenere un traffico globale sulla BLAN (in questo
modo viene detta una rete locale estesa interconnessa tramite bridge) superiore
a quello massimo ammesso per ogni singola LAN.
Tale ritrasmissione avviene in modalità store and forward in
quanto il pacchetto viene ricevuto dal bridge che effettua i suoi controlli
e poi viene eventualmente ritrasmesso.
Un bridge può quindi mettere in comunicazione reti con architettura MAC uguale oppure può collegare una Token Ring con Ethernet 802.3, una FDDI con Ethernet 802.3 o con Ethernet v2.0. In questi casi dovrà effettuare una conversione dei formati delle trame a livello MAC. Tuttavia, la rete Ethernet v2.0 non utilizza LLC 802.2, quindi il bridge dovrà convertire la LLC-PDU in una LLC snap-PDU, (pacchetto contenente PDU di livello 3 di protocolli proprietari), inserendo, accanto al campo Type (tipo di protocollo che ha generato il pacchetto) anche il campo OUI che è l'identificativo dell'organizzazione che ha proposto tale protocollo.
I bridge hanno algoritmi di instradamento molto semplici: ogni bridge calcola
autonomamente le sue tabelle di intradamento senza interagire con gli
altri presenti sulla rete con un algoritmo di routing isolato.
I bridge possono essere di due tipi che differiscono dal modo
di memorizzare le tabelle di instradamento:
Le tabelle di instradamento, se la topologia delle reti interconnesse è ad albero, si possono creare facilmente tramite un processo di apprendimento proprio dei bridge. Se invece la topologia è a maglia, si deve utilizzare un algoritmo, detto Spanning Tree, per convertire la topologia magliata in un albero, escludendo alcune porte di alcuni bridge.
I bridge che operano tra LAN eterogenee hanno il problema aggiuntivo
della diversa lunghezza massimo del campo dati (INFO) del pacchetto MAC.
Questa lunghezza, la cosiddetta MTU, varia a seconda degli standard:
di va da 1500 byte per 802.3 a 4478 byte per FDDI fino a 17749 per
802.5 (Token Ring). Poichè non è possibile violare tali
dimensioni massime, quando un bridge deve ritrasmettere un pacchetto
di dimensione superiore a quella massima ammessa ha due possibilità:
scartare il pacchetto oppure frammentarlo.
L'operazione della frammentazione è tipica del livello 3 e non
può essere fatta da un bridge in modo generalizzato per tutti i
protocolli.
Fortunatamente molti protocolli non superano mai il limite di 1500 byte ed il problema non si pone. Invece TCP/IP genera sistematicamente pacchetti più grandi ed il pacchetto va frammentato. Parecchi bridge realizzano perciò la frammentazione anche se limitatamente al protocollo IP.
Importanti sono le prestazioni di un bridge in quanto influenzano
le prestazioni di tutta la rete.
I parametri principali sono:
Nel progetto OSI i bridge sono stati concepiti per interconnettere LAN su base locale, mentre l'interconnessione su base geografica è demandata ai router. Tuttavia, dato che i bridge sono trasparenti ai protocolli di livello 3 e poichè si sono resi disponibili prima dei router multiprotocollo, sono stati modificati per operare anche su scala geografica e sono nati i cosiddetti bridge remoti. I protocolli più usati sulle linee sono HDLC e PPP. I bridge remoti non si prestano tuttavia a realizzare strutture magliate in quanto l'algoritmo di spannig tree mette in backup (stato di blocking) costose linee pubbliche fino a ridurre la rete ad un albero.
I bridge sono costituiti, come mostrato nella figura seguente, da una o più CPU, una memoria ROM ed una RAM e due o più interfacce fisiche per le LAN da interconnettere.
Da un punto di vista logico, un bridge è costituito da seguenti elementi:
Ogni porta riceve/trasmette pacchetti da/a una LAN usando il servizio
fornito dall'entità MAC associata a tale porta.
La MAC Relay si occupa della trasmissione tra due porte e del
filtraggio dei pacchetti.
Le entità di livello superiore (HLE), invece, fanno uso delle procedure proprie dell'LLC che sono:
I pacchetti trasmessi da un sistema S1 ad un sistema S2 vengono confinati dai bridge nelle LAN che formano il percorso tra S1 e S2. Questo tipo è il più comune e serve a ridurre il traffico globale e viene effettuato grazie ad algoritmi di apprendimento automatico e grazie all'algoritmo di spannig-tree che effettua il calcolo e la configurazione della BLAN. Qualora esistano diversi percorsi per passare da S1 a S2 i bridge operano un ulteriore filtraggio per prevenire la duplicazione di pacchetti. Esiste anche la possibilità di attivare un filtraggio statico in cui filtrare a priori oppure non filtrare certi pacchetti.
Le porte possono infatti essere attive o passive. Se attive possono essere in uno dei seguenti stati:
Nelle tabelle di instradamento sono quindi contenute queste informazioni
sottoforma di righe (entry). Le entry sono statiche (informazioni
di filtraggio configurate tramite operazioni di management) o
dinamiche (registrate automaticamente dal processo di apprendimento).
Le entry dinamiche non vengono create se ne esiste già
una statica relativa allo stesso indirizzo MAC, mentre la creazione
di un'entry statica determina la cancellazione di quella dinamica,
se già esistente.
Inoltre, le entry dinamiche vengono rimosse se non sono aggiornate
prima dello scadere di un tempo di timeout.
Al momento della ricezione di un pacchetto, il bridge osserva l'indirizzo del mittente, il MAC SSAP, e la porta da cui è arrivato. Il bridge andrà poi a creare o modificare un'entry dinamica nella tabella di instradamento nella quale specificherà che il tale indirizzo è raggiungibile tramite la tale porta.
Si tratta quindi di informazioni che il bridge potrà utilizzare
solo in futuro, quando riceverà un pacchetto con il MAC
DSSAP uguale al MAC SSAP precedente.
Tale metodologia di apprendimento è detta routing isolato -
backward learning.
Il bridge, comunque, creerà la nuova entry dinamica se e solo se
non ne esista già una statica che faccia riferimento allo
stesso indirizzo o se le porte in questione siano attive e in stato di
learning o forwarding.
Le entità di protocollo dei bridge effettuano la modifica delle informazioni di stato delle porte e la modifica delle tabelle di instradamento suggerite dall'algoritmo di spanning tree. Esse operano tramite delle speciali PDU, le cosiddette BPDU (Bridge PDU), trasmesse in modalità multicast ad un indirizzo MAC speciale denominato Bridge Group Access (il cui valore è 01-80-C2-00-00-00).
Le entità di management, invece, comunicano usando il servizio fornito dai LLC associati alle porte, tramite l'indirizzo All LANs Bridge Management Group Access (01-80-C2-00-00-10).
Lo Spanning Tree riconfigura una topologia di BLAN a maglia in
una topologia ad albero, per evitare la presenza di percorsi alternativi
e la conseguente duplicazione dei pacchetti e per evitare percorsi
chiusi, i loop.
Deve essere in grado di farlo nel più breve tempo possibile,
deve utilizzare una banda limitata per le BPDU che i bridge si
devono scambiare ed inoltre deve essere flessibile, cioè
deve poter ammettere che un bridge venga aggiunto successivamente
a rete configurata senza che sia indispensabile riconfigurare
tutta la rete. Per gestire ed assolvere questo compito, si assegna
ai bridge a livello di management un valore di priorità
di 2 byte, che, aggiunto all'indirizzo MAC di 6 byte, compone
un identificativo univoco (bridge ID) di 8 byte per il bridge
stesso. La configurazione di una topologia ad albero partendo da una topologia
a maglia avviene ponendo alcune porte in stato di blocking; le porte in questo
stato non partecipano alla topologia attiva ma sono in attesa ed entrano in
funzione in caso di guasto in qualche componente della BLAN.
Anche le porte hanno un valore di priorità di 1 byte ed
il valore prioritario è quello minore.
L'algoritmo opera nei seguenti passi:
Il fattore che determina la configurazione è il path cost: ad ogni porta viene assegnato un path cost che può essere configurato da management e che indica il costo di attraversamento di quella porta. Per ogni bridge e per ogni porta del bridge viene anche definito il root path cost come il costo totale di percorso per raggiungere il root bridge. Con questo ultimo parametro si sceglie all'interno di un bridge quale sia la root port (quella con root path cost minore) e tra le non root port dei bridge che si collegano su una LAN la designated port (quella con root path cost minore).
Il gestore della BLAN può controllare la formazione delle topologie attive intervenendo sui parametri Bridge ID, port priority e path cost.
Risulta, perciò, evidente che, per poter implementare lo spanning tree, i bridge devono scambiarsi delle informazioni. Lo fanno tramite le cosiddette BPDU, Bridge Protocol Data Unit.
Le BPDU sono pacchetti aventi come DSAP l'indirizzo di Bridge Group Access (indirizzo multicast per tutti i bridge presenti sulla LAN).La trama contiene l'SSAP e una parte è riservata per il Configuration Message, composto come nella figura seguente:

I campi presenti nella Configuration BPDU sono:
Tutti i bridge, al momento dell'accensione, si credono i root
ed incominciano a trasmettere le Configuration PDU. Quando ne
ricevono una, confrontano il bridge ID con il proprio e, nel caso
che quest'ultimo sia maggiore, smettono di trasmettere. Si elegge
così rapidamente il Root Bridge, quello con l'identificativo
minore, l'unico che trasmette le Configuration BPDU.
Un bridge, in questo stadio, riceve i pacchetti di configurazione
del root bridge da tutte le porte ed eleggerà la sua Root
Port confrontando i valori di Root Path Cost.
Le rimanenti porte sono ancora in stato di listening. Quando da
una porta riceve una BPDU maggiore, cioè con parametri
quali i root path cost, il bridge identifier e il port identifier
maggiori rispetto ad una BPDU ricevuta precedentemente da un'altra
porta, il bridge metterà in stato di blocking tale porta.
Infine, le porte prescelte sono messe in stato di forwarding.
La configurazione ad albero è stata così realizzata.
Un bridge, durante la sua normale attività, può
accorgersi che la topologia è stata modificata, senza che
questo possa essere avvertito dagli altri bridge. Questo può
causare la presenza di loop nella topologia ad albero, con una
conseguente proliferazione di pacchetti e possibile duplicazione
di essi.
In questo caso il bridge trasmette sulla root port una Topology
Change Notification BPDU per avvertire
il root bridge.
Il root risponderà con una BPDU in cui il flag TC è
messo ad 1.
La TCN viene ritrasmessa fino a che il designated bridge della
LAN non pone ad 1 il flag TCA (Acknowledgment) nella Configuration
BPDU.
I bridge source routing sono stati sviluppati per operare tra reti token
ring. Essi sono esplicitamente indirizzati dalle stazioni che necessitano di
inviare un messaggio sulla BLAN.
I bridge source routing basano l'instradamento del pacchetto sulle
informazioni contenute nel pacchetto stesso nel campo RI (routing information).
Se un pacchetto non ha il campo RI (ossia se è destinato alla stessa
LAN) viene ignorato dal bridge. I sistemi devono perciò mantenere
una tabella di instradamento contenente le destinazioni con cui sono
interessati a comunicare e che richiedono l'attraversamento di un bridge.
Le entry di tali tabelle vengono calcolate automaticamente tramite un processo
chiamato route discovery.