生成树协议和其他协议一样,是随着网络的不断发展而不断更新换代的。不是很了解的朋友,下面我们就一一道来吧!
STP(Spanning Tree Protocol)是生成树协议的英文缩写。该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。
STP的基本原理是,通过在交换机之间传递一种特殊的协议报文(在IEEE 802.1D中这种协议报文被称为“配置消息”)来确定网络的拓扑结构。配置消息中包含了足够的信息来保证交换机完成生成树计算。能够确保数据帧在某一时刻从一个源出发,到达网络中任何一个目标的路径只有一条,而其他的路径都处于非激活状态(不能进行转发),如果在网络中发现某条正在使用的链路出现故障时,网络中开启了STP技术的交换机会将非激活状态的阻塞端口打开,恢复曾经断开的链路,确保网络的连通性。
如上图所示:从PC0到达PC1的数据帧会经过中间由三台交换机组成的环路,STP协议会选择一条最短的路径让数据帧从PC0到达PC1。假如,STP协议通过计算,认为走2路--3路到达PC1是最短路径,那么1路就会处于非激活状态,即1路上有关的端口会处于堵塞状态。如果交换机S1出现了故障导致2路和3路不能走了,那么STP就会激活1路,确保数据帧能够到达PC1.
生成树协议STP/RSTP技术原理
STP的基本思想就是生成“一棵树”,树的根是一个称为根桥的交换机,根据设置不同,不同的交换机会被选为根桥,但任意时刻只能有一个根桥。由根桥开始,逐级形成一棵树,根桥定时发送配置报文,非根桥接收配置报文并转发,如果某台交换机能够从两个以上的端口接收到配置报文,则说明从该交换机到根有不止一条路径,便构成了循环回路,此时交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。当某个端口长时间不能接收到配置报文的时候,交换机认为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。
生成树协议的工作过程
首先进行根桥的选举。选举的依据是网桥优先级和MAC地址组合成的桥ID(Bridge ID),桥ID最小的网桥将成为网络中的根桥。在网桥优先级都一样(默认优先级是32768)的情况下,MAC地址最小的网桥成为根桥。
接下来,确定根端口,根据与根桥连接路径开销最少的端口为根端口,路径开销等于‘1000’除于‘传输介质的速率’假设中SW1和跟桥之间的链 路是千兆GE链路,跟桥和SW3之间的链路是百兆FE链路,SW3从端口1到根桥的路径开销的默认值是19,而从端口2经过SW1到根桥的路径开销是4+4=8,所以端口2成为根端口,进入转发状态。
根桥和根端口都确定之后然后是裁剪冗余的环路。这个工作是通过阻塞非根桥上相应端口来实现的。
生成树经过一段时间(默认值是30秒左右)稳定之后,所有端口要么进入转发状态,要么进入阻塞状态。STPBPDU仍然会定时从各个网桥的指定端口发出,以维护链路的状态。如果网络拓扑发生变化,生成树就会重新计算,端口状态也会随之改变。
当然生成树协议还有很多内容,其他各种改进型的生成树协议都是以此为基础的,基本思想和概念都大同小异。
任何技术的发展都不会因为某项“理想”技术的出现而停滞,生成树协议的发展历程本身就说明这一点。随着应用的深入,各种新的二层隧道技术不断涌现,例如Cisco的802.1QTunneling,华为QuidwayS8016的QinQ,以及基于MPLS的二层VPN技术等。在这种新形势下,用户和服务提供商对生成树协议又会有新的需求。生成树协议该往何处走?这个问题虽然现在还没有一个统一的答案,但是各厂商已经开始了这方面的积极探索。也许不久的将来,支持二层隧道技术的生成树协议将成为交换机的标准协议。