RSTP基础
- RSTP引入背景
- STP所存在的问题
- RSTP对于STP的改进
- 端口角色重新划分
- 端口状态重新划分
- 快速收敛机制:PA机制
- 端口快速切换
- 边缘端口的引入
RSTP引入背景
STP协议虽然能够解决环路问题,但是由于网络拓扑收敛较慢,影响了用户通信质量,而且如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这也是用户无法忍受的。由于STP的不足,IEEE于2001年发布的802.1w标准定义了RSTP。RSTP在STP基础上进行了诸多改进优化,使得协议更加清晰、规范,同时也实现了二层网络拓扑的快速收敛。
STP所存在的问题
- 收敛时间长:STP有五个状态,从启动到开始进行转发要足足30s,博尔特跑100米才用10s,删除浏览记录也只要几秒,可以看出30s其实已经非常非常的长了。
- 故障恢复时间长:假设现在你已经忍受过了30s,交换机要试探你的底线,突然故障了一个BP或者RP端口,好(直连故障,可以直接感知)则30s可以恢复,坏(非直连故障,还要等20s的BPDU老化)则足足还要50s进行恢复,是不是决定扔掉交换机了。
- 终端接入交换机延迟时间:现在你满心欢喜,交换机的STP协议已经可以进行转发了,然后你把自己的电脑接入交换机,由于笨蛋交换机不知道你电脑连接的端口是边缘端口,所以又要等待30s,然后确认端口状态,才能进行转发。
- 拓扑变更:如果STP的网络拓扑发生变化,TCN,TCA,TC报文都会进行发送,如果这个交换机的深度有5层,那这个效率要有多低下。
- 端口状态:Disabled,Blocking,Listening三种状态虽然都不作为,但还是起了三个名字,徒增使用难度,这里建议合并。
RSTP对于STP的改进
端口角色重新划分
在STP中有:RP,DP,BP(Block Port),但是在RSTP中有以下角色:RP,DP,AP(Alternative Port),BP(Backup Port)。
接下来解释AP的产生与作用:当收到对端更优的BPDU时,就会变成AP,AP是作为RP的备份接口,RP倒下,AP顶上。
在最简单的三角形拓扑中,如下所示:
而BP则是收到自身传来的BPDU之后,就会变成BP端口,BP端口作为DP端口的备份。如下所示:
端口状态重新划分
基于STP的五状态基础之上,RSTP把状态精简为了三种,分别是Discarding(对应STP的Discarding,Blocking,Listening)、Learning(对应STP的Learning)、Forwarding(对应STP的Forwarding)。
快速收敛机制:PA机制
P(Proposal)建议,A(Agreement)同意,RSTP使用了flag位,flag位里面有P和A值为,当相应的bit变成1的时候,就代表是P或者A置位。工作机制是这样的,在互相连接的两台交换机之间,其中一台先从互联接口发送P置位,然后对端设备将除了互联接口之外的端口都给阻塞掉,然后用互联接口回应A置位,随后二者就进行转发,无需任何等待。等到协商完成,再将之前阻塞的接口放开,然后重复相同的流程。
RST选举原理和STP本质上相同:选举根交换机-选举非根交换机上的根端→选举指定端口-选举预备端口和备份端口。但是RSTP在选举的过程中加入了“发起请求-回复同意”(P/A机制)这种确认机制,由于每个步骤有确认就不需要依赖计时器来保证网络拓扑无环才去转发,只需要考虑BPDU发送报文并计算无环拓扑的时间(一般都是秒级)。
端口快速切换
- 根端口快速切换:一台交换机的两个端口分别是AP和RP,如果RP出现故障,那么AP可以在秒级的时间内进行接口的切换。
- 次优BPDU处理机制:也就是非直连故障,这个时候总有交换机会收到次优的BPDU,这个时候为了加快收敛速度,二者会直接进行PA机制选举端口角色。
边缘端口的引入
在RSTP之中,设置了边缘端口可以直接进入转发状态。边缘端口在收到了BPDU之后会丧失边缘端口的特性,然后直接变成普通的STP端口,并且重新进行生成树计算。