RSTP比STP快在哪?

本文主要总结RSTP比STP“快”的原因,想要理解本文,需要读者有一定的STP和RSTP的理论功底。
作为STP协议的升级版本,RSTP在算法和协议上做了很大的改变极大的提升了STP的效率,RSTP相比于STP主要“快”在以下几个方面:

1、改进了端口类型

在STP协议中,一共定义了三种端口类型——根端口、指定端口、非指定端口。而RSTP对上述端口进行了细分,将非指定端口分为两类——替代端口和备份端口,因此,RSTP一共有四种端口,这样做有什么好处就是方便链路出现故障时的快速切换。
在RSTP中规定,因为收到其他交换的BPDU报文而阻塞的端口,因为受到本交换机BPDU报文而阻塞的端口成为备份端口。
以下图为例:
在这里插入图片描述
假设SW1是根交换机,图中SW3的G0/0/2口和G0/0/4口被阻塞,那么SW3的G0/0/2成为替代端口,而G0/0/4则成为备份端口。这是因为之所以SW3 的G0/0/2被阻塞,是因为受到了SW2的BPDU报文,发现对方比自己更加“优先”,而G0/0/4端口被阻塞是因为受到了SW3自身的BPDU报文,发现对方比自己更“优先”。
此外,RSTP还规定,交换机一旦检测到根端口故障,那么替代端口立刻进入转发状态,一旦指定端口故障,那么备份端口立即进入转发状态,这样就节省了在网络拓扑改变情况下的阻塞时间。
注:如果同时存在多个替代端口,则会且只会将最优的替代端口立即转换到转发状态。

2、改进了端口状态

除了对端口类型进行了改变,RSTP还改进了端口状态。
STP定义了5种端口状态:禁用、阻塞、侦听、学习、转发。
而RSTP则定义了3种端口状态:丢弃、学习、转发。
RSTP将STP的禁用、阻塞和侦听结合到了一起,有效的简化了一个端口从阻塞状态到转发状态的时间。
在STP协议中,一个阻塞端口如果因为网络拓扑的改变需要从阻塞态转变到转发态,则需要经历侦听和学习两个状态。而这从侦听转变到学习状态和从学习转变到转发状态分别需要15s的时间,因此STP在这个过程中最少需要花费30s。而RSTP从丢弃状态到转发状态只需要经历一个学习状态,在这个过程中只需要花费15s的时间,因此在这一点上RSTP又对STP进行了很大的改进。

3、运用了P/A机制

此外,RSTP还创造性的使用了P/A机制,来保证一个新的端口接入时从丢弃状态快速进入到转发状态,这个是RSTP独有,STP并没有P/A机制。
P/A机制,即proposal/agreement(提议/同意机制),主要作用时加快RSTP收敛,加快初始状态下和新增连线状态下状态快速切换。
假设有一个交换机新链接如网络,在STP状态下,该交换机需要经过一个完整的STP建立过程,链接进入网络的端口从阻塞进入转发状态,需要经过一个完整的阻塞——侦听——学习——转发状态,而这个过程需要30s以上的时间。
而在采用RSTP的情况下,当一个交换机刚开始运行RSTP的时候,会假设自己是根桥,发送BPDU报文,如果发现自己不是根桥,那么会选择一个收到最优BPDU报文的端口运行P/A机制(在RTSP协议中,每个交换机都会发送BPDU报文,一个交换机也会存储自己收到的BPDU报文并进行比较,根据BPDU报文中的桥ID判断根桥),同样的,在与之相连的交换机的指定端口上,也会运行P/A机制。
P/A机制过程如下:
由优先级更高的交换机发出提议(proposal),此时该交换机会把发出提议的端口设置为丢弃状态,在收到提议后,该交换机会把除收到提议的端口之外的其他端口都设置为丢弃状态,以防止发生环路,之后将收到提议的端口设置为转发,并发送同意(agreement)。发送提议的交换机在收到对方发送的同意(agreement)后,立即把该端口设置为转发。
需要注意的是,P/A协议只会发生在一个交换机通过根端口与另一个交换机的指定端口相连接的线路上,其他线路的端口状态还是要还原为STP的状态建立过程。

4、加入了边缘端口的概念

边缘端口也是RSTP新提出的概念,对于一个二层网络而言,总是有一些端口连接主机,路由器等等,对于这些确定不会链接交换机的端口,RSTP支持将其设置为边缘端口,该端口始终处于转发状态(除非该端口收到BPDU报文),这样就免除了不必要的从阻塞到转发的延迟时间。

5、更新了拓扑更新机制

如果二层网络拓扑发生了改变,那么之前学习到的MAC地址表可能会出现问题,这个时候就需要交换机刷新MAC地址表,STP和RSTP协议都必须考虑这个问题。
在STP协议中,当交换机发生网络拓扑发生变化后,需要发送TCN报文通知上游交换机,上游交换机会恢复TCA报文,知道通知到根桥,根桥再发送TC报文,并通告全网,其他交换机在收到TC报文后,就会明白网络拓扑发生改变,这样之前学习到的MAC地址表就无法继续使用,需要刷新MAC地址表并重新生成。
上述过程,即所有的交换机在发现网络拓扑改变后都会通知根桥,根桥之后通知所有的交换机刷新MAC地址表。其实这个过程时非常缓慢的,也因此会耽误一些时间。
RSTP对上述过程进行了改变,在RSTP中,不仅仅是根桥,所有的交换机都会发送BPDU报文,所有的交换机也可以通知其他的交换机网路拓扑发生改变,运行RSTP的交换机在收到其他任意交换机的TC报文后,都会刷新自己的MAC地址表,这样就不用先通知根桥,再由根桥通知其他交换机,从而省下了一些时间。
此外,RSTP规定,一个交换机在收到拓扑改变通知后,会删除掉除了受到TC报文端口的MAC地址表,而不是像STP一样删除所有的MAC地址表,这样也加快了MAC地址表重新构建的速度,因此又比STP快了一些。
以上是我总结的RSTP相比STP“快”的地方,不知道其他同学还有什么想法呢?欢迎在评论区一起讨论!
原创不易,转载请说明出处,原文链接:https://blog.csdn.net/weixin_40228200/article/details/118160834

  • 11
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值