# Spanning Tree Protocol

Spanning Tree Protocol (STP) és un protocol de xarxa de la segona capa OSI, (capa d'enllaç de dades), que gestiona enllaços redundants (per exemple: xarxes en anell), prevenint bucles infinits de repetició de dades en xarxes que presenten configuració redundant. STP és transparent a les estacions d'usuari. Està basat en un algorisme dissenyat per Radia Perlman mentre treballava per a DEC. Hi ha 2 versions del STP:
* l'original (DEC STP)
* l'estandarditzada pel IEEE: IEEE 802.1D.
No són compatibles entre si.
Els bucles infinits succeeixen quan hi ha rutes alternatives entre hosts. Aquestes rutes alternatives són necessàries perquè, en proporcionar redundància, donen una major fiabilitat, ja que, en existir diferents enllaços, en el cas que un falli, un altre enllaç pot seguir suportant el trànsit de la xarxa. No obstant això, el problema arriba, ja que l'existir aquests cicles en la topologia de xarxa, les trames broadcast i multicast poden quedar-se atrapades en un cicle, al no existir cap camp TTL (Time To Leave, Temps per a sortir) en la Capa 2, tal com succeeix en la Capa 3. Això desperdicia amplada de banda i inutilitza la xarxa. La solució consisteix a permetre cicles físics, però creant una topologia lògica sense cicles. STP permet només una trajectòria activa a la vegada entre dos dispositius de la xarxa (això preveu els bucles) però manté els camins redundants com a reserva si el camí inicial falla.
Si la configuració de STP canvia, o si un segment en la xarxa redundant arriba a ser inassolible, l'algorisme de l'arbre que l'atravessa es reconfigura i restableix l'acoblament activant la trajectòria de reserva. Si el protocol falla, és possible que ambdues connexions estiguin actives simultàniament, i això podria donar lloc a un bucle de trànsit infinit a la LAN.
Existeixen diferents variants del Spanning Tree Protocol, principalment a causa del temps que tarda l'algorisme utilitzat en convergir. Una d'aquestes variants és el Rapid Spanning Tree Protocol.
L'arbre d'expansió (Spanning tree) roman efectiu fins que succeeix un canvi en la topologia. Quan això succeeix, el protocol ho sap. El màxim temps de duració de l'arbre d'expansió és de cinc minuts. Quan succeeix un d'aquests canvis, el pont arrel actual redefineix la topologia de l'arbre d'expansió o s'escull un nou pont arrel.

## Funcionament

Aquest algorisme canvia una xarxa física amb forma de malla, en la que es poden formar bucles, per una xarxa lògica en arbre en la que no es pot produir cap bucle. Els ponts de xarxa es comuniquen mitjançant missatges de configuració anomenats Bridge Protocol Data Units (B.P.D.U).
El protocol estableix identificadors per pont i escull el que té la prioritat més alta (el número més baix de prioritat numèrica) es constitueix en el pont arrel. Aquest pont arrel establirà el camí de menor cost per a totes les xarxes; cada port té un paràmetre configurable: el Span path cost. Després, entre tots els ponts que connecten un segment de xarxa, s'escull un pont designat, el de menor cost (en el cas que hi hagi el mateix cost en dos ponts, s'escull el que tingui el menor identificador), per a transmetre les trames cap a l'arrel. En aquest pont designat, el port que connecta amb el segment, és el port designat i el que ofereix un camí de menor cost cap a l'arrel, el port arrel. Tots els altres ports i camins són bloquejats.

### Elecció del pont arrel

La primera decisió que prenen tots els switches de la xarxa és identificar el pont arrel, ja que això afectarà el flux de trànsit.
Quan un switch es posa en marxa, suposa que és el switch arrel i envia les BPDU que contenen la direcció MAC de si mateix tant en el ID arrel com en l'emissor.

## Vegeu també

* IEEE 802
* IEEE 802.1w - 2004 Rapid Spanning Tree Protocol (RSTP)
* IEEE 802.1s - 2005 Multiple Spanning Tree Protocol (MSTP)
* IEEE 802.1aq - 2012 Shortest path bridging (SPB)