STP协议中定义了根桥(RootBridge)、根端口(RootPort)、指定端口(DesignatedPort)、路径开销(PathCost)等概念,目的就在于通过构造一棵自然树的方法达到裁剪冗余环路的目的,同时实现链路备份和路径最优化。用于构造这棵树的算法称为生成树算法SPA(Spanning
TreeAlgorithm)。
要实现这些功能,网桥之间必须要进行一些信息的交流,这些信息交流单元就称为配置消息BPDU(BridgeProtocolDataUnit)。STP
BPDU是一种二层报文,目的MAC是多播地址01-80-C2-00-00-00,所有支持STP协议的网桥都会接收并处理收到的BPDU报文。该报文的数据区里携带了用于生成树计算的所有有用信息。
生成树协议的工作过程:
首先进行根桥的选举。选举的依据是网桥优先级和网桥MAC地址组合成的桥ID(Bridge
ID),桥ID最小的网桥将成为网络中的根桥。在网桥优先级都一样(默认优先级是32768)的情况下,MAC地址最小的网桥成为根桥。
接下来,确定根端口,根据与根桥连接路径开销最少的端口为根端口,路径开销等于‘1000’除于‘传输介质的速率’假设中SW1和跟桥之间的链路是千兆GE链路,跟桥和SW3之间的链路是百兆FE链路,SW3从端口1到根桥的路径开销的默认值是19,而从端口2经过SW1到根桥的路径开销是4+4=8,所以端口2成为根端口,进入转发状态。
根桥和根端口都确定之后然后是裁剪冗余的环路。这个工作是通过阻塞非根桥上相应端口来实现的。
生成树经过一段时间(默认值是30秒左右)稳定之后,所有端口要么进入转发状态,要么进入阻塞状态。STPBPDU仍然会定时从各个网桥的指定端口发出,以维护链路的状态。如果网络拓扑发生变化,生成树就会重新计算,端口状态也会随之改变。
当然生成树协议还有很多内容,其他各种改进型的生成树协议都是以此为基础的,基本思想和概念都大同小异。
STP协议给透明网桥带来了新生。但是它还是有缺点的,STP协议的缺陷主要表现在收敛速度上。
当拓扑发生变化,新的配置消息要经过一定的时延才能传播到整个网络,这个时延称为Forward
Delay,协议默认值是15秒。在所有网桥收到这个变化的消息之前,若旧拓扑结构中处于转发的端口还没有发现自己应该在新的拓扑中停止转发,则可能存在临时环路。为了解决临时环路的问题,生成树使用了一种定时器策略,即在端口从阻塞状态到转发状态中间加上一个只学习MAC地址但不参与转发的中间状态,两次状态切换的时间长度都是Forward
Delay,这样就可以保证在拓扑变化的时候不会产生临时环路。但是,这个看似良好的解决方案实际上带来的却是至少两倍ForwardDelay的收敛时间!
为了解决STP协议的这个缺陷,在世纪之初IEEE推出了802.1w标准,作为对802.1D标准的补充。在IEEE
802.1w标准里定义了快速生成树协议RSTP(RapidSpanningTree
Protocol)。RSTP协议在STP协议基础上做了三点重要改进,使得收敛速度快得多(最快1秒以内)。
第一点改进:为根端口和指定端口设置了快速切换用的替换端口(AlternatePort)和备份端口(Backup
Port)两种角色,当根端口/指定端口失效的情况下,替换端口/备份端口就会无时延地进入转发状态。
第二点改进:在只连接了两个交换端口的点对点链路中,指定端口只需与下游网桥进行一次握手就可以无时延地进入转发状态。如果是连接了三个以上网桥的共享链路,下游网桥是不会响应上游指定端口发出的握手请求的,只能等待两倍Forward
Delay时间进入转发状态。
第三点改进:直接与终端相连而不是把其他网桥相连的端口定义为边缘端口(Edge
Port)。边缘端口可以直接进入转发状态,不需要任何延时。由于网桥无法知道端口是否是直接与终端相连,所以需要人工配置。
可见,RSTP协议相对于STP协议的确改进了很多。为了支持这些改进,BPDU的格式做了一些修改,但RSTP协议仍然向下兼容STP协议,可以混合组网。虽然如此,RSTP和STP一样同属于单生成树SST(SingleSpanning
Tree),有它自身的诸多缺陷,主要表现在三个方面。
第一点缺陷:由于整个交换网络只有一棵生成树,在网络规模比较大的时候会导致较长的收敛时间,拓扑改变的影响面也较大。
第二点缺陷:在网络结构对称的情况下,单生成树也没什么大碍。但是,在网络结构不对称的时候,单生成树就会影响网络的连通性。
第三点缺陷:当链路被阻塞后将不承载任何流量,造成了带宽的极大浪费,这在环行城域网的情况下比较明显。
这些缺陷都是单生成树SST无法克服的,于是支持VLAN的多生成树协议出现了。
上一篇:桥接协议单元(BPDU)_网络技术
下一篇:STP协议作用_网络技术