La versión IEEE 802.1D de STP utiliza el algoritmo de árbol de expansión (STA) para determinar qué puertos de switch de una red se deben colocar en estado de bloqueo y evitar que ocurran bucles. El STA designa un único switch como puente raíz y lo utiliza como punto de referencia para todos los cálculos de rutas. En la ilustración, el puente raíz (el switch S1) se elige mediante un proceso de elección. Todos los switches que comparten STP intercambian tramas de BPDU para determinar el switch que posee el menor ID de puente (BID) en la red. El switch con el menor BID se transforma en el puente raíz en forma automática según los cálculos del STA.
Nota: para simplificar, suponga que todos los puertos en todos los switches están asignados a la VLAN 1, hasta que se indique lo contrario. Cada switch posee una dirección MAC única asociada a la VLAN 1.
Una BPDU es una trama de mensaje que intercambian los switches para STP. Cada BPDU contiene un BID que identifica al switch que envió la BPDU. El BID contiene un valor de prioridad, la dirección MAC del switch emisor y una ID de sistema extendido optativa. El valor de BID más bajo lo determina la combinación de estos tres campos.
Después de determinar el puente raíz, el STA calcula la ruta más corta hacia dicho puente. Todos los switches utilizan el STA para determinar los puertos que deben bloquearse. Mientras el STA determina las mejores rutas al puente raíz para todos los puertos de switch en el dominio de difusión, se evita que el tráfico se reenvíe a través de la red. El STA tiene en cuenta tanto los costos de ruta como de puerto cuando determina qué puertos bloquear. El costo de la ruta se calcula mediante los valores de costo de puerto asociados con las velocidades de los puertos para cada puerto de switch que atraviesa una ruta determinada. La suma de los valores de costo de puerto determina el costo de ruta total para el puente raíz. Si existe más de una ruta a escoger, el STA elige la de menor costo de ruta.
Una vez que el STA determinó las rutas más deseables en relación con cada switch, asigna funciones de puerto a los puertos de switch que participan. Las funciones de puerto describen la relación que estos tienen en la red con el puente raíz y si se les permite reenviar tráfico:
- Puertos raíz: los puertos de switch más cercanos al puente raíz. En la ilustración, el puerto raíz en el S2 es F0/1, configurado para el enlace troncal entre el S2 y el S1. El puerto raíz en el S3 es F0/1, configurado para el enlace troncal entre el S3 y el S1. Los puertos raíz se seleccionan por switch.
- Puertos designados: todos los puertos que no son raíz y que aún pueden enviar tráfico a la red. En la ilustración, los puertos de switch (F0/1 y F0/2) en el S1 son puertos designados. El puerto F0/2 del S2 también está configurado como puerto designado. Los puertos designados se seleccionan por enlace troncal. Si un extremo de un enlace troncal es un puerto raíz, el otro extremo es un puerto designado. Todos los puertos en el puente raíz son puertos designados.
- Puertos alternativos y de respaldo: los puertos alternativos y de respaldo están configurados en estado de bloqueo para evitar bucles. En la ilustración, el STA configuró el puerto F0/2 en el S3 en la función alternativa. El puerto F0/2 en el S3 está en estado de bloqueo. Los puertos alternativos se seleccionan solo en los enlaces troncales en los que ninguno de los extremos es un puerto raíz. Observe en la ilustración que solo un extremo del enlace troncal está bloqueado. Esto permite una transición más rápida al estado de reenvío, cuando es necesario. (Los puertos en estado de bloqueo solo entran en acción cuando hay dos puertos en el mismo switch conectados entre sí mediante un hub o un único cable).
- Puertos deshabilitados: un puerto deshabilitado es un puerto de switch que está desactivado.