STP 简介----生成树算法



STP 使用生成树算法 (STA) 计算网络中的哪些交换机端口应配置为阻塞才能防止环路形成。STA 会将一台交换机指定为根桥,然后将其用作所有路径计算的参考点。在上图中,交换机 S1 在选举过程中被选为根桥。所有参与 STP 的交换机互相交换 BPDU 帧,以确定网络中哪台交换机的网桥 ID (BID) 最小。BID 最小的交换机将自动成为 STA 计算中的根桥。

BPDU 是运行 STP 的交换机之间交换的消息帧。每个 BPDU 都包含一个 BID,用于标识发送该 BPDU 的交换机。BID 内含有优先级值、发送方交换机的 MAC 地址以及可选的扩展系统 ID。BID 值的大小由这三个字段共同决定。

确定根桥后,STA 会计算到根桥的最短路径。每台交换机都使用 STA 来确定要阻塞的端口。当 STA 为广播域中的所有目的地确定到达根桥的最佳路径时,网络中的所有流量都会停止转发。STA 在确定要开放的路径时,会同时考虑路径开销和端口开销。路径开销是根据端口开销值计算出来的,而端口开销值与给定路径上的每个交换机端口的端口速度相关联。端口开销值的总和决定了到达根桥的路径总开销。如果可供选择的路径不止一条,STA 会选择路径开销最低的路径。

STA 确定了哪些路径要保留为可用之后,它会将交换机端口配置为不同的端口角色。端口角色描述了网络中端口与根桥的关系,以及端口是否能转发流量。

根端口最靠近根桥的交换机端口。在示例中,交换机 S2 的根端口是 F0/1,该端口位于交换机 S2 与 S1 之间的中继链路上。交换机 S3 的根端口是 F0/1,该端口位于交换机 S3 与 S1 之间的中继链路上。

指定端口网络中获准转发流量的、除根端口之外的所有端口。在示例中,交换机 S1 上的端口 F0/1 和 F0/2 都是指定端口。交换机 S2 的 F0/2 端口也是指定端口。

非指定端口为防止环路而被置于阻塞状态的所有端口。在示例中,STA 将交换机 S3 上的端口 F0/2 配置为非指定端口。交换机 S3 上的 F0/2 端口处于阻塞状态。


根桥的选举过程:
如上图:
s3:
网桥ID:
优先级=32769
MAC地址=00A00222222

S2:
网桥ID:
优先级=32769
MAC地址=00A00111111

S1:
网桥ID:
优先级=24577
MAC地址=00A00333333

交换机启动后,会每 2 秒向外发送 BPDU 帧,其中包含根 ID 以及自己的 BID。对网络中的所有交换机而言,默认情况下此根 ID 与其本地 BID 相同。根 ID 用于标识网络中的根桥。 最开始,每台交换机在刚启动时都将自己视为根桥。

随着交换机开始发送 BPDU 帧,广播域中的邻接交换机从 BPDU 帧中读取到根 ID 信息。如果收到的 BPDU 中包含的根 ID 比接收方交换机的根 ID 更小,接收方交换机会更新自己的根 ID,将邻接交换机作为根桥。注:也可能不是邻接交换机,而是广播域中的任何其它交换机。交换机然后将含有较小根 ID 的新 BPDU 帧发送给其它邻接交换机。 最终,具有最小 BID 的交换机被公认为生成树实例中的根桥。

到根桥的最佳路径

为生成树实例指定根桥后,STA 便开始确定从广播域内所有目的地到根桥的最佳路径。将从目的地到根桥的路径上沿途的每个端口开销加在一起便可得到路径信息。

默认情况下,端口开销由端口的运行速度决定。 10-Gb/s 以太网端口的端口开销为 2,1-Gb/s 以太网端口的端口开销为 4,100-Mb/s 快速以太网端口的端口开销为 19,10-Mb/s 以太网端口的端口开销为 100。

注:STP 使用的端口开销值由 IEEE 定义。随着更新、更快的以太网技术面世,路径开销值也可能进行相应的改变,以满足各种可用速度的要求。

尽管交换机端口关联有默认的端口开销,但端口开销是可以配置的。通过单独配置各个端口开销,管理员便能灵活控制到根桥的生成树路径。

路径开销是到根桥的路径上所有端口开销的总和。路径开销最低的路径会成为首选路径,所有其它冗余路径都会被阻塞。在上图中, 交换机 S2 通过路径 1(s2-s1) 到根桥交换机 S1 的路径开销是 19(基于 IEEE 定义的单端口开销),而使用路径 2(s2-s3-s1) 的路径开销是 38。由于路径 1 到根桥的总路径开销更低,因此其是首选路径。STP 随后将其它冗余路径阻塞,以防形成环路。


你可能感兴趣的:(算法,路由,STP,STA,生成树算法)