Spanning tree
Lo spanning tree è un algoritmo utilizzato soprattutto dai bridge per evitare anelli nella comunicazione.
In una LAN, infatti, il bridge è un punto critico perché se subisce dei malfunzionamenti tutta la LAN non riesce ad operare. Per ovviare a questo problema si creano connessioni multiple e percorsi alternativi. Ciò crea, però, dei problemi perché inserisce degli anelli nella rete che, per frame non gestiti, può condurre a percorsi ciclici e ad una loro proliferazione fino a saturare la rete.
Il bridge, infatti, conosce gli indirizzi LAN degli host connessi su ogni segmento, ma se riceve un frame con destinazione sconosciuta allora lo invia a tutti segmenti. Se esiste un anello nella rete capita che tutti i bridge hanno lo stesso comportamento per cui un nodo che ha inviato il frame lo riceve di nuovo e così all'infinito.
Per evitare questo problema si fa ricorso ad un algoritmo che opera in maniera automatica su tutti i bridge (spanning tree), in pratica questi costruiscono una struttura ad albero facendo attenzione che non vi siano percorsi ad anello. Ciò si ottiene mediante la creazione di una gerarchia di bridge in base al numero di serie (che è univoco). Il bridge col numero di serie più basso diventa nodo principale, a questo si collegano via via gli altri, finite le possibilità di connessione al nodo principale, si procede allo stesso modo con ogni altro nodo.
Questo processo avviene periodicamente per cui se si scollega o si rovina un bridge si ricostruisce lo spanning tree e la rete continua a funzionare.
Tale algoritmo è stato inventato da Radia Perlman e standardizzato in IEEE 802.1D.
| thumb|150px|Circolo vizioso in una LAN senza spanning tree | thumb|160px|Spanning tree |
