Le protocole STP IEEE 802.1D utilise l'algorithme Spanning Tree (STA, Spanning Tree Algorithm) pour déterminer quels sont les ports de commutation d'un réseau à bloquer (état de blocage) pour empêcher la formation de boucles. L’algorithme STA désigne un commutateur unique comme pont racine et il l’utilise comme point de référence pour le calcul de tous les chemins. Dans cette figure, le pont racine (commutateur S1) a été choisi par le biais d'un processus de sélection. Tous les commutateurs associés au protocole STP échangent des trames BPDU pour identifier le commutateur doté de l'ID de pont le plus faible sur le réseau. Le commutateur doté de l'identificateur (ID) le plus faible devient automatiquement le pont racine pour les calculs de l’algorithme STA.
Remarque : pour plus de simplicité et sauf spécification contraire, partons de l'hypothèse que tous les ports de tous les commutateurs sont affectés au VLAN 1. Chaque commutateur dispose d'une adresse MAC unique, associée au VLAN 1.
Une BPDU est une trame de message échangée par les commutateurs pour le protocole STP. Chaque trame BPDU contient un identificateur de pont qui identifie le commutateur ayant envoyé la trame BPDU. L'ID de pont contient une valeur de priorité, l'adresse MAC du commutateur émetteur et un ID système étendu facultatif. La valeur d'ID de pont la plus basse est déterminée par une combinaison de ces trois champs.
Une fois le pont racine défini, l'algorithme STA calcule le chemin le plus court pour y parvenir. Chaque commutateur utilise l’algorithme STA pour identifier les ports devant être bloqués. Pendant que l'algorithme STA détermine les meilleurs chemins pour accéder au pont racine, depuis l'ensemble des ports de commutation du domaine de diffusion, le réacheminement du trafic au sein du réseau est interdit. L'algorithme STA prend en compte le coût des chemins comme celui des ports lorsqu'il détermine quels ports bloquer. Le coût de la route est calculé à l’aide des valeurs de coût de port associées à la vitesse de port de chacun des ports des commutateurs sur un chemin donné. La somme des valeurs des coûts de ports détermine le coût du chemin global vers le pont racine. Si plusieurs chemins sont disponibles, l’algorithme STA choisit le chemin doté du coût de chemin le plus faible.
Lorsque l'algorithme STA a déterminé quels sont les meilleurs chemins possibles pour chaque commutateur, il attribue un rôle aux ports de commutation participants. Les rôles de port décrivent la relation entre les ports du réseau et le pont racine, et indiquent s'ils sont autorisés à réacheminer du trafic de données :
- Ports racine : il s’agit des ports de commutation les plus proches du pont racine. Dans la figure, le port racine de S2 est F0/1, configuré pour la liaison trunk entre S2 et S1. Le port racine de S3 est F0/1, configuré pour la liaison trunk entre S3 et S1. Les ports racine sont sélectionnés individuellement pour chaque commutateur.
- Ports désignés : il s’agit de tous les ports non racine qui sont autorisés à acheminer le trafic sur le réseau. Dans la figure, les ports de commutation (F0/1 et F0/2) sur S1 sont des ports désignés. Le port F0/2 de S2 est également configuré comme port désigné. Les ports désignés sont sélectionnés individuellement pour chaque trunk. Si l'une des extrémités d'un trunk est un port racine, l'autre extrémité est alors un port désigné. Tous les ports du pont racine sont des ports désignés.
- Ports alternatifs et ports de sauvegarde : les ports alternatifs et les ports de sauvegarde sont configurés avec un état de blocage, pour éviter la formation de boucles. Dans la figure, le port F0/2 configuré STA sur S3 a un rôle de port alternatif. Le port F0/2 sur S3 présente un état de blocage. Des ports alternatifs sont sélectionnés uniquement sur les liaisons trunk où aucun port de périphérie n'est un port racine. Notez que, dans la figure, seule l'une des extrémités du trunk est bloquée. Cela permet une transition plus rapide vers l'état de réacheminement, si nécessaire. (Les ports bloqués entrent en jeu uniquement lorsque deux ports du même commutateur sont connectés l'un à l'autre via un concentrateur ou un câble simple.)
- Ports désactivés : un port désactivé est un port de commutation arrêté.