生成树协议

17 Mar 2025 | 5 分钟阅读

生成树协议也称为 STP。它是一个监控网络整体性能的协议。生成树协议的主要任务是移除冗余链路。该协议使用生成树算法 (STA) 来检测冗余链路。STA 维护一个拓扑数据库,用于查找冗余链路。如果发现冗余链路,则该链路将被禁用。一旦冗余链路被移除,则只有由 STA 选择的链路会保持活动状态。如果添加了新链路或移除了现有链路,STA 将重新执行以调整更改。

在理解生成树协议之前,我们首先了解一下完全图和生成树。

完全图是一个图中每对顶点都由一条线连接的图。换句话说,我们可以说所有点都由最大数量的线连接。在计算机网络中,完全图也可以称为全网状网络。

让我们通过一个例子来理解完全图。

假设有三个点,即 A、B 和 C。三条线连接这三个点。每两点之间连接一条线,我们就得到一个完全图。

Spanning Tree Protocol

当最大数量的线连接所有点时形成完全图,而当最小数量的线连接所有点时形成生成树。

从上面的完全图,我们可以得到三个生成树。

Spanning Tree Protocol
  1. A 直接连接到 B 和 C,而 B 和 C 通过 A 间接连接。在这个生成树中,A 是中心点,所有点都连接在一起,没有形成任何环路。
  2. B 直接连接到 A 和 C,而 A 和 C 通过 B 连接。B 是 A 和 C 之间的桥梁,或者我们可以说 B 是中心点。在这种情况下,所有点也连接在一起,没有形成任何环路。
  3. C 直接连接到 A 和 B,而 A 和 B 通过 C 连接。因此,C 是 A 和 B 之间的桥梁,C 是中心点。在这种情况下,所有点都连接在一起,没有形成任何环路。

到目前为止,我们已经观察到生成树的两个基本特征

  • 它不包含任何环路。
  • 它是最小连接的。

什么是生成树协议?

生成树协议是一个第 2 层协议,旨在解决当计算机在局域网中使用共享电信路径时出现的问题。当它们共享公共路径时,如果所有计算机同时发送数据,会影响整体网络性能,并使所有网络流量几乎停止。

生成树协议 (STP) 通过使用桥接环路的概念来克服这种情况。当两个端点之间存在多个连接并且消息连续发送时,会发生桥接环路,这导致网络泛洪。为了消除环路,STP 借助称为网桥的设备将 LAN 网络划分为两个或更多段。网桥用于连接这两个段,因此当发送消息时,消息通过网桥到达预期的目的地。网桥确定消息是针对同一段还是不同段,并相应地工作。这种网络分段大大降低了网络停顿的可能性。

生成树协议如何工作?

生成树协议使用以下步骤

  • 该协议选择一个交换机作为根网桥,其中根网桥是一个中心点,当发送消息时,它总是通过该网桥。
  • 它选择从交换机到根网桥的最短路径。
  • 它会阻塞导致网络环路的链路,并且所有被阻塞的链路都作为备份进行维护。它还可以在活动链路失败时激活被阻塞的链路。因此,我们可以说它还在网络上提供了容错功能。

STP 中的端口

STP 中使用了五种端口

  • 根端口:根端口是到根网桥路径成本最低的端口。
  • 指定端口:指定端口是转发远离根网桥流量的端口。
  • 阻塞端口:阻塞端口是接收帧但既不转发也不发送帧的端口。它只是丢弃接收到的帧。
  • 备份端口:备份端口是在生成树中提供备份路径的端口
  • 当指定端口失败时。此端口在指定端口失败时立即激活。
  • 备用端口:备用端口是在根网桥失败时提供到根网桥的备用路径的端口。

让我们通过一个例子来理解。

Spanning Tree Protocol

假设局域网中有四个交换机 A、B、C 和 D。这些互连设备之间存在冗余链路。在上图中,存在两条路径,即 DBA 和 DCA。链路冗余有利于网络可用性,但它会创建第 2 层环路。问题是“网络如何在不破坏链路冗余的情况下阻塞不需要的链路以避免环路?”。这个问题的答案是 STP。首先,STP 选择一个交换机作为根网桥。在上述情况下,选择 A 交换机作为根网桥。接下来,其他交换机选择到达根网桥的路径,该路径具有最低的路径成本。现在我们看交换机 B。对于交换机 B,存在两条路径可以到达交换机 A(根网桥),即 BDCA 和 BA。路径 BDCA 的成本为 7,而路径 BA 的成本为 2。因此,选择路径 BA 到达根网桥。交换机 B 上的端口被选为根端口,而另一端是指定端口。现在我们看交换机 C。从交换机 C,存在两条路径,即 CDBA 和 CA。最低成本路径是 CA,因为它的成本为 1。因此,它被选为根端口,而另一端被选为指定端口。现在我们看交换机 D。对于交换机 D,存在两条路径可以到达交换机 A,即 DBA 和 DCA。路径 DBA 的成本为 4,而 DCA 的成本为 5。因此,选择路径 DBA,因为它具有最低的成本路径。D 上的端口被选为根端口,而在另一端,交换机 B 被选为指定端口。在这个例子中,我们观察到根网桥可以包含许多指定端口,但它不包含根端口。