生成树协议
生成树协议 (STP) 是一种在OSI模型数据链路层运行的通信协议,用于防止桥接环路和由此产生的广播风暴。它为以太网创建无环拓扑。
工作原理
当给定网络中两个节点之间存在多条路径时,就会创建桥接环路。发送消息时,特别是进行广播时,桥接器会重复重新广播相同的消息,从而淹没网络。由于数据链路层帧的报头中没有生存时间字段,因此广播帧可能会永远循环,从而使信道不堪重负。
生成树协议通过禁用构成网络中环路或循环的所有链路来创建生成树。这使得任何两个节点之间只有一条活动路径。因此,当广播消息时,不可能从替代路径接收相同的消息。参与生成树协议的桥接器通常称为 **生成树桥接器**。
为了构建生成树,桥接器会广播它们的配置路由。然后,它们执行一种分布式算法来查找网络中的最小生成树,即成本最小的生成树。未包含在此树中的链路将被禁用,但不会被移除。
如果特定的活动链路发生故障,则会再次执行该算法以查找不包含故障链路的最小生成树。通信将通过新形成的生成树继续进行。当故障链路恢复时,将重新运行该算法,包括新恢复的链路。
示例
让我们考虑一个物理拓扑结构(如下图所示),这是一个包含六个互连桥接器的以太网网络。桥接器命名为 {B1, B2, B3, B4, B5, B6},并且多个节点连接到每个桥接器。两个桥接器之间的链路命名为 {L1, L2, L3, L4, L5, L6, L7, L8, L9},其中 L1 连接 B1 和 B2,L2 连接 B1 和 B3,依此类推。假设所有链路的成本都相同。
从图中我们可以看到,从一个桥接器到网络中任何其他桥接器都存在多条路径,形成了几个桥接环路,这使得拓扑结构容易受到广播风暴的影响。
根据生成树协议,构成环路的链路将被禁用。因此,我们得到一个逻辑拓扑结构,以便任何两个桥接器之间只有一条路由。一种可能的逻辑拓扑结构如下所示,包含链路 {L1, L2, L3, L4, L5}:
在上图的逻辑配置中,如果出现链路 L4 故障的情况。然后,生成树将被重建,不包含 L4。一种可能的包含链路 {L1, L2, L3, L5, L9} 的逻辑重新配置如下: