STP:生成树协议 - IEEE 802.1D (Spanning Tree Protocol - IEEE 802.1D)
生成树协议(Spanning Tree)定义在 IEEE 802.1D 中,是一种链路管理协议,它为网络供给路径冗余同时防止产生环路。为使以太网更好地工作,两个工作站之间只能有一条运动路径。网络环路的产生有多种原因,最常见的一种是有意生成的冗余 - 万一一个链路或交换机失败,会有另一个链路或交换机替代。
STP 容许网桥之间相互通信以创造网络物理环路。该协议定义了一种算法,网桥能够利用它创立无环路(loop-free)的逻辑拓朴结构。换句话说,STP 创立了一个由无环路树叶和树枝构成的树结构,其跨越了全部第二层网络。
生成树协议操作对终端站透明,也就是说,终端站并不知道它们自己是否连接在单个局域网段或多网段中。当有两个网桥同时连接雷同的电脑网段时,生成树协议可以容许两网桥之间相互交换信息,这样只需要其中一个网桥处理两台电脑之间发送的信息。
网桥之间通过桥接协议数据单元(Bridge Protocol Data Unit - BPDU)交换各自状态信息。生成树协议通过发送 BPDU 信息选出网络中根交换机和根节点端口,并为每个网段(switched segment)选出根节点端口和指定端口。
网桥中的程序能够决定如何利用生成树协议,这称为生成树算法,该算法能够避免网桥环路,并确保在多路径情况下网桥能够选择一条最有效的路径。如果最佳路径失败,可以利用该算法重新计算网络路径并找出下一条最佳路径。
利用生成树算法可以决定网络(哪台电脑主机在哪个区段),并通过 BPDU 信息交换以上数据。该过程重要分为以下两个步骤:
步骤1:通过评估它所吸收到的所有配置信息和选择最优选项,来决定一个网桥可发送的最佳信息。
步骤2:一旦选定某网桥发送的信息,网桥将该信息与来自无根(non-root)连接的可能配置信息相比较。如果步骤1中选择的最佳选项并不优于可能配置信息,便删除该端口。
协议结构
网桥协议数据单元(BPDU):
Protocol ID (2) | Version (1) | Type (1) | Flags (1) | Rood ID (8) | Root Path (4) |
Sender BID (8) | Port ID (2) | M-Age (2) | Max Age (2) | Hello (2) | FD (2 Bytes) |
- Protocol ID ― 恒为0。
- Version ― 恒为0。
- Type ― 决定该帧中所包含的两种 BPDU 格式类型(配置 BPDU 或 TCN BPDU)。
- Flags ― 标记运动拓朴中的变更,包含在拓朴变更通知(Topology Change Notifications)的下一部分中。
- Root BID ― 包含有根网桥的网桥 ID。会聚后的网桥网络中,所有配置 BPDU 中的该字段都应当具有雷同值(单个 VLAN)。NetXRay 可以细分为两个 BID 子字段:网桥优先级和网桥 MAC 地址。
- Root Path Cost ― 通向有根网桥(Root Bridge)的所有链路的积累资本。
- Sender BID ― 创立当前 BPDU 的网桥 BID。对于单交换机(单个 VLAN)发送的所有 BPDU 而言,该字段值都雷同,而对于交换机与交换机之间发送的 BPDU 而言,该字段值不同)
- Port ID ― 每个端口值都是唯一的。端口1/1值为0×8001,而端口1/2 值为0×8002。
- Message Age ― 记载 Root Bridge 生成当前 BPDU 起源信息的所耗费时间。
- Max Age ― 保存 BPDU 的最长时间,也反响了拓朴变更通知(Topology Change Notification)过程中的网桥表生存时间情况。
- Hello Time ― 指周期性配置 BPDU 间的时间。
- Forward Delay ― 用于在 Listening 和 Learning 状态的时间,也反响了拓朴变更通知(Topology Change Notification)过程中的时间情况
相干协议:IEEE 802.2、802.3、802.1P、802.1Q
组织起源:STP 由 IEEE (http://www.ieee.org/)定义在 802.1D 中。
相干链接:
http://standards.ieee.org/getieee802/download/802.1D-1998.pdf:ANSI/IEEE Std 802.1D 1998 Edition
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/sw_ntman/
cwsimain/cwsi2/cwsiug2/vlan2/stpapp.htm: Understanding Spanning Tree Protocol