STP的不足之处
STP协议虽然能够解决环路问题,但是由于网络拓扑收敛慢,影响了用户通信质量。如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这是用户无法忍受的。
STP没有细致区分接口状态和接口角色,不利于初学者学习及部署。
网络协议的优劣往往取决于协议是否对各种情况加以细致区分。
从用户角度来讲,Listening、Learning和Blocking状态并没有区别,都同样不转发用户流量。
从使用和配置角度来讲,接口之间最本质的区别并不在于接口状态,而是在于接口扮演的角色。
根接口和指定接口可以都处于Listening状态,也可能都处于Forwarding状态。
STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢。
STP算法要求在稳定的拓扑中,根桥主动发出配置BPDU报文,而其他设备进行处理,传遍整个STP网络。这也是导致拓扑收敛慢的主要原因之一。
RSTP概述
RSTP在许多方面对STP进行了优化,它的收敛速度更快,而且能够兼容STP。
在STP中,20s老化时间,产生次优bpdu,50s恢复
RSTP中,bpdu hello 每2s发一次
RSTP引入了新的接口角色,其中替代接口(AP,AP是RP的备份)的引入使得交换机在根接口失效时,能够立即获得新的路径到达根桥。备份端口(BP,BP是DP的备份)作为指定端口的备份,帮助链路上的网桥快速获得到根桥的备份路径。RSTP的状态规范根据端口是否转发用户流量和学习MAC地址把原来的5种状态缩减为3种。RSTP还引入了边缘接口的概念,这使得交换机连接终端设备的接口在初始化之后能够立即进入转发状态,提高了工作效率。
配置BPDU的处理发生变化:
拓扑稳定后,配置BPDU报文的发送方式进行了优化
使用更短的BPDU超时计时
对处理次等BPDU的方式进行了优化
配置BPDU格式的改变,充分利用了STP协议报文中的Flag字段,明确了接口角色
RSTP拓扑变化处理:相比于STP进行了优化,加速针对拓扑变更的反应速度
端口角色不同
RSTP的接口角色共有4种:根接口、指定接口、预备接口和备份接口
如果指定端口位于整个域的边缘,不再与任何交换设备连接,这种端口叫做边缘端口(EP)。
边缘端口一般与用户终端设备直接连接,不等待30s,可以由Disabled状态直接转到Forwarding状态。
一旦边缘端口收到BPDU,就会转换成普通端口。
端口状态不同
RSTP的状态规范把原来的5种状态缩减为3种。
如果不转发用户流量也不学习MAC地址,那么接口状态就是Discarding状态。(会收BPDU)
如果不转发用户流量但是学习MAC地址,那么接口状态就是Learning状态。
如果既转发用户流量又学习MAC地址,那么接口状态就是Forwarding状态。
STP/RSTP的缺陷:所有的VLAN共享一棵生成树
RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。
但RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡,链路被阻塞后将不承载任何流量,还有可能造成部分VLAN的报文无法转发。
华为公司提出了VBST(VLAN-Based Spanning Tree)生成树解决方案。该解决方案中,生成树的形成是基于VLAN的,不同VLAN间可形成相互独立的生成树,不同VLAN内的流量沿着各自的生成树转发,进而可实现流量的负载分担。
SMTP:多生成树
MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。
每棵生成树叫做一个多生成树实例MSTI(Multiple Spanning Tree Instance)。
所谓生成树实例就是多个VLAN的集合所对应的生成树。
通过将多个VLAN捆绑到一个实例,可以节省通信开销和资源占用率。
MSTP各个实例拓扑的计算相互独立,在这些实例上可以实现负载均衡。
可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在接口上的转发状态取决于接口在对应实例的状态。