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: