Spanning Tree Protocol
Spanning tree provides a loop free topology usually for ethernet networks although it is really applicable across any layer 2 network. Ethernet networks must have only one path to any destination active at any one point in time to avoid the same data packet arriving at the destination multiple times. The spanning tree algorithm ensures that if multiple paths exist to the same destination then all bar one will be blocked.
Redundant ethernet networks can be built in this way, however the latency of spanning tree decisions must be taken into account as by default the maxium time for recalculations of the minium spanning tree is 30 seconds.
A root bridge is usually automatically selected by the algorithim as the root of the tree. As with most networking protocols this is highly configurable and therefore any ethernet device could be forced into this role.
In switched environments where multilple VLANs exist, spanning tree can be deployed per vlan. Cisco call this per VLAN spanning tree.