1、首先我们知道在传统的STP上会出现过久的收敛时间,最主要的原因就在于多个角色的定义和角色间过长的计时器。同时在传统的STP上还会出现一些拓扑变更,这些拓扑的变更的多变和定长的计时器导致了拓扑的收敛时间徘徊在30s到50s,下面介绍RSTP的快速收敛机制和原理.
1、RSTP将STP中的五个角色减少为三个,这是其中一个原因。
2、RSTP在遇到拓扑变化的时候,不需要一级一级的向上发送TCN报文去通知根桥发生了变化,然后根桥才去发送TC报文去使得各个交换机的MAC地址表的存活时间进行衰减。RSTP上的各个交换机只要有其中一个感知到发生了变化,那么它就会直接发送TC报文,去告知其他交换机应该对MAC地址表的存活时间进行衰减。
3、当拓扑稳定后,RSTP发送BPDU的时间是各自独立的,也就是说不必等收到根桥的bpdu才发送经过自己计算的bpdu。这样各个交换机之间可以更好的进行bpdu的交互。
4、交换机对待次优bpdu的状态是立即发送最优的bpdu,这个主要是针对一些特殊的情况,使得交换机处于与世隔绝的状态,它的任何借口都接受不到最优的bpdu,于是它就会向其他交换机发送自己是根桥的bpdu,在传统的stp中其他交换机对待次优的bpdu是不会理睬的,但是在rstp中它会立即回送一个最优的bpdu,于是这个与世隔绝的交换机就会立即接受到最优的bpdu,然后链路就会理解变为转发通信。
5、rstp最核心的地方就在于它的P/A收敛机制,在传统的stp收敛中,它是通过bpdu的分发和自身的计算来一步一步的确定端口的角色。同时端口角色的确立以及确定为转发状态依赖30s的计时器。但是在rstp中它不依赖计时器,而是通过bpdu的交互来达到快速的收敛,首先大家都会认为自己是根桥,然后大家自己的端口全部都是指定端口然后向周围发送P置位的bpdu,我们都知道bpdu中都有关于自身的网桥ID,root的网桥ID,端口ID等等一些用于rstp的选举的信息,其实一开始大家互相发送P置位的bpdu就相当于是根桥的选举,当根桥选举完之后,那些优先级不如别人的交换机就会立即阻塞其他非边缘端口,其实这样的交互也可以理解为上下游交换机的选举,然后从接受P置位的端口上,回送给根桥一个A置位的bpdu,同时将发送A置位的端口立即变为根桥,同时状态变为forwarding状态,然后根桥上接受A置位的端口也立即转变为forwarding状态。然后这些非根交换机还会向其他交换机发送P置位的bpdu。同样的它们会通过bpdu的比较,选举出谁是上游交换机,谁是下游交换机,那么下游交换机会向上游交换机发送P置位的bpdu,然后上游交换机会回送A置位的bpdu,然后参与交互的端口就会立即转变为转发状态,当bpdu的交互到一定程度后,它们会出现一对上下游