STP(Spanning Tree Protocol)是生成树协议的英文缩写。STP的主要思想就是当网络中存在备份链路时,只允许主链路结合。如果主链路因故障而被断开后,备用链路才会开启。当交换机间存在多条链路时,交换机的生成树算法只启动最主要的一条链路,而将其他链路都阻塞掉,并变成备用链路。当主链路出现问题时,生成树协议将自动启用备用链路接替主链路工作,不需要人为干预[1]。 STP 协议中定义桥协议数据单元(BPDU)、交换机ID、端口ID和路径成本(Path Cost),以及根交换机(Root Bridge)、根端口(RootPort)、指定端口(Designated Port)等概念。目的在于通过构造一个自然树的方法达到阻塞冗余环路的目的,同时实现链路备份和路径最优化。用于构造这棵树的算法称为生成树算法(Spanning Tree Algorithm,SPA)。STP不断地检测网络,以便可以检测到一个线路、设备故障。当网络拓扑发生变化时,运行STP的交换机会自动重新配置端口,以避免环路的发生或链接的丢失。[1] 计算机网络中,生成树协议要构造一个无环路的拓扑结构进行工作,需要经过以下4个步骤形成,第一是选择一台根交换机,第二是在每个非根网桥上选择一个根端口,第三是在每个网段上选择一个指定端口,第四是阻塞非根、非指定端口[1]。 技术原理
STP的基本原理是,通过在交换机之间传递一种特殊的协议报文,网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),来确定网络的拓扑结构。BPDU有两种,配置BPDU(Configuration BPDU)和TCN BPDU。前者是用于计算无环的生成树的,后者则是用于在二层网络拓扑发生变化时产生用来缩短MAC表项的刷新时间的(由默认的300s缩短为15s)。