stp(Spanning Tree Protocol)是一种由交换机运行的、用来解决交换网络环路问题的数据链路层协议。
桥
泛指具有任意端口的交换机。
桥的MAC地址(BridgeMAC Address)
通常, 我们把端口编号最小的那个端口的 MAC 地址作为整个桥的 MAC 地址
桥ID (Bridge Identifier, BID)
一个桥(交换机)的桥ID由两部分组成, 前面2个字节是这个桥的桥优先级, 后面 6 个字节是这个桥的 MAC 地址。 桥优先级的值可以人为设定, 缺省值为 Ox8000(相当于十进制的 32 768)。
端口ID (Port Identifier, PID)
一个桥(交换机)的某个端口的端口ID的定义方法有很多种,其中的两种定义
第一种定义中, 端口 ID 由两个字节组成, 第两种定义。 在第 个字节是该端口的端口优先级,后一个字节是该端口的端口编号
在第二种定义中, 端口ID由l6个比特组成,前4个比特是该端口的端口优先级,后12比特是该端口的端口编号
STP树的生成
TP协议的基本原理:在一个具有物理环路的交换网络中, 交换机通过运行STP协议,自动生成一个没有环路的工作拓扑。一棵STP树包含了唯 个根节点,任何一个节点到根节点的工作路径不但是唯一的,而且是最优的。
STP树的生成过程是: 首先选举根桥(RootBridge), 然后确定根端口(Root Port, RP) 和指定端口(Designated Port, DP),最后阻塞备用端口(Alternate Port, AP)
选举根桥
STP交换机初始启动之后, 都会认为自己是根桥, 并在发送给别的交换机的BPDU中宣告自己是根桥。 当交换机从网络中收到其他设备发送过来的BPDU的时候,会比较BPDU中指定的根桥BID和自己的BID。交换机不断地交互BPDU, 同时对BID 进行比较,直至最终选举出一台BID最小的交换机作为根桥
如图:交换机Sl、 S2、 S3都使用了默认的桥优先级32768。 显然,SI的BID最小, 所以最终S1将被选举为根桥。
确定根端口
根桥确定后, 其他没有成为根桥的交换机都 被称为非根桥
一台非根桥设备上可能会有多个端口与网络相连,为了保证从某台非根桥 设备到根桥到根设备的工作路径是最优且唯一的,就必须从该非根桥设备的端口中确定出一个被称为“根端口”的端口,由根端口来作为该非根桥设图示与根桥设备之间进行报文交互的端口。一台非根桥设备上最多只能有一个根端口
根路径开销(Root Path Cost,RPC)
一个运行STP协议的网络中,我们将某个交换机的端口到根桥的累计路径开销(即从该端口到根桥所经过的所有链路的路径开销的和)称为这个端口的根路径开销
链路的路径开销(Path Cost)与端口速率有关,端口转发速率越大,则路径开销越小。
一台非根桥设备上不同端口的RPC可能相同,在这种情况下,必须按照下图的流程来确定根端口
指定端口
是在各个链路上,到根桥的根路径开销最小的端口,即为指定端口
当一个网段有两条及两条以上的路径通往根桥时(该网段连接了不同的交换机,或者该网段连接了同一台交换机的不同端口),与该网段相连的交换机(可能不止一台)就必须确定出一个唯一的指定端口
指定端口也是通过比较RPC来确定的,RPC较小的端口将成为指定端口。如果RPC相同,则需要比较BID,PID等。
阻塞备用端口
在确定了根端口和指定端口之后,交换机上所有剩余的非根端口和非指定端口统称为备用端口