前言
生成树协议(Spanning Tree Protocol,STP)是一种工作在OSI网络模型中第二层(数据链路层)的通信协议,其基本应用是防止交换机冗余链路产生的环路,确保以太网中无环路的逻辑拓扑结构,从而避免广播风暴,防止大量占用交换机的资源。
一、基本原理
STP通过在交换机之间传递一种特殊的协议报文,即网桥协议数据单元(Bridge Protocol Data Unit,BPDU),来确定网络的拓扑结构。BPDU有两种类型:配置BPDU(Configuration BPDU)和TCN BPDU。配置BPDU用于计算无环的生成树,而TCN BPDU则用于在二层网络拓扑发生变化时产生,用来缩短MAC表项的刷新时间(由默认的300s缩短为15s)。
STP按照树的结构来构造网络拓扑,消除网络中的环路。树的结构有一个称为根桥的桥设备作为树的根,根桥的确立是由交换机或网桥的BID(Bridge ID)确定的,BID最小的设备成为二层网络中的根桥。BID由网桥优先级和MAC地址构成,不同厂商的设备的网桥优先级的字节个数可能不同。
二、运行过程
- 选择根网桥:根据交换机的BID选择根网桥,BID值小的为根网桥。当优先级相同时,MAC地址小的为根网桥。
- 选择根端口:每台非根桥设备都会选择一个到根网桥路径最优的端口作为根端口,用于与根桥进行报文交互。选择顺序通常为:到根网桥最低的根路径成本→发送BPDU的网桥ID较小→端口ID较小的。
- 选择指定端口:每个网段上都会选择一个指定端口,用于该网段与根桥之间的通信。选择顺序通常为:根路径成本较低→发送BPDU的交换机的网桥ID值较小→本端口的ID值较小。根网桥上的所有端口都是指定端口。
- 阻塞备用端口:在确定了根端口和指定端口之后,交换机上所有剩余的非根端口和非指定端口统称为备用端口。STP会对这些端口进行逻辑阻塞,它们不能转发用户数据帧,但可以接受并处理STP协议帧。
三、收敛与保护
当网络拓扑发生改变时,STP需要重新计算生成树拓扑。这个过程称为收敛。STP的收敛速度相对较慢,需要50-52秒的时间才能完成拓扑收敛。这是因为STP在检测到网络拓扑变化后,需要等待一段时间(Max Age,默认20s)以确保所有交换机都接收到最新的BPDU,然后才开始重新计算生成树。
尽管STP的收敛速度较慢,但它仍然是一种非常重要的网络协议,因为它解决了核心层网络需要冗余链路的网络健壮性要求,同时避免了因为冗余链路形成的物理环路导致的“广播风暴”问题。
四、局限性
- 收敛速度慢:STP的收敛速度较慢,无法满足一些对网络稳定性要求极高的场景。
- 不能提供负载均衡:STP在消除环路时,只是简单地将环路进行阻塞,这可能导致某些链路无法充分利用,浪费网络资源。
为了克服这些局限性,IEEE推出了快速生成树协议(Rapid Spanning Tree Protocol,RSTP)和多生成树协议(Multiple Spanning Tree Protocol,MSTP)。RSTP在STP的基础上进行了优化,通过减少BPDU报文的交互次数和引入新的端口角色(如备份端口、替代端口等),大大加快了网络的收敛速度。MSTP则允许在一个网络中同时运行多个生成树实例,从而提高了网络资源的利用率和灵活性。
五、应用场景
STP广泛应用于各种复杂的网络环境中,如企业网络、数据中心等。它特别适用于需要防止网络环路和广播风暴的场景,以及需要实现网络冗余备份和动态调整的场景。
结语
比所有人都瞧不起你更难受的
就是所有人都同情你
!!!