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

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

生成树协议是基于Radia Perlman英语Radia PerlmanDEC工作时发明的一种算法[1]被纳入了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,进行地址学习。

相關條目

编辑

参考文献

编辑
  1. ^ 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.