生成树协议

生成树协议（，STP），是一個作用在OSI网络模型中第二层的通信协议。基本应用是防止交换机冗余链路产生的环路，用于确保以太网中无环路的逻辑拓扑结构，从而避免广播风暴大量占用交换机的资源。

生成树协议工作原理：任意一交换机中如果到达根网桥有两条或者两条以上的链路，生成树协议都根据算法把其中一条切断，仅保留一条，从而保证任意两个交换机之间只有一条单一的活动链路。因为这种生成的拓扑结构，很像是以根交换机为树干的树形结构，故为生成树协议。

生成树协议是基于在DEC工作时发明的一种算法Perlman, Radia (1985). "An Algorithm for Distributed Computation of a Spanning Tree in an Extended LAN". ACM SIGCOMM Computer Communication Review 15 (4): 44–53.被纳入了IEEE 802.1d中。2001年IEEE组织推出了快速生成树协议（RSTP）在网络结构发生变化时能比STP更快的收敛网络，还引进了端口角色来完善了收敛机制，被纳入在IEEE 802.1w中。

STP的工作过程如下：首先，依據網橋優先權（橋優先）和MAC地址組合生成的橋ID進行網橋選舉，橋ID最小的網橋將成為網絡中的根橋（橋根）；在此基础上，计算每个节点到根桥的距离，并由这些路径得到各冗余链路的代价，选择最小的成为通信路径（相应的端口状态变为forwarding），其它的就成为备份路径（相应的端口状态变为blocking）。STP生成过程中的通信任务由BPDU完成，这种数据包又分为包含配置信息的配置BPDU（其大小不超过35B）和包含拓扑变化信息的通知BPDU（其长度不超过4B）。

+ STP端口状态 端口状态 端口能力Disabled不收发任何报文。Blocking不接收或者转发数据，接收但不发送BPDU，不进行地址学习。Listening不接收或者转发数据，接收并发送BPDU，不进行地址学习。Learning不接收或者转发数据，接收并发送BPDU，开始进行地址学习。Forwarding接收或者转发数据，接收并发送BPDU，进行地址学习。

 相關條目 
 中间系统到中间系统（Intermediate system to intermediate system，IS-IS）
 IEEE 802.1aq - 最短路径桥接（SPB）

 参考文献

Category:网络协议
Category:链路协议
Category:網路拓撲
Category:生成樹
Category:容错计算机系统
Category:以太网标准