系列文章目录

没别的,就聊聊自动驾驶网络


文章目录

  • 系列文章目录
  • 零、前言
  • 一、STP有哪些能够优化的地方?
  • 二、RSTP优化了上面的哪些问题?
  • 三、STP与RSTP有哪些异同?
  • 四、RSTP如何做到比STP更快收敛的?
  • 五、RSTP又是如何应对链路故障?
  • 六、结尾

零、前言

上次说到STP的收敛时间,不知各位还记得吗?重新回忆一下蛤,快的话30秒,慢的话52秒。怎么想30秒的延迟都实在太久了,咱们有办法能够让网络快速稳定下来吗?今天咱们就聊聊,RSTP(Rapid Spanning Tree Protocol,快速生成树协议)怎么就让网络恢复稳定得快 “亿” 点!!!


一、STP有哪些能够优化的地方?

咱们慢慢来聊啊,先仔细想想,STP都有哪些能改进的地方,然后咱们再看看RSTP都改进了啥东西:

  1. STP划分了5种状态,但对于用户来说,其实只有三种状态:接口关闭,接口不可发数据,接口可收发数据。实际上没必要划分这么多状态。
  2. STP算法依赖于定时器,拓扑发生变化的时候需要等待定时器的结束。
  3. 根桥主动发出配置BPDU,而对于非根桥的设备只是处理配置BPDU,从而传到整个STP网络中,这效率实在太低了,拓扑变化时需要将TCN(Topology Change Notification,拓扑变化通知)报文传到根桥才能处理下一步。
  4. 对于直接连接用户终端设备(例如:个人电脑)的接口完全不用参与拓扑计算,毕竟终端设备接入就是直连,不会形成环路。

二、RSTP优化了上面的哪些问题?

答案:全解决了!!!

  1. RSTP将STP的5种状态减少到了3种:转发(Forwarding)、学习(Learning)、丢弃(Discarding)。
  2. 当拓扑发生变化时,不再需要将拓扑变化通知(TCN)报文传到根桥,而是交换机连续三次没接收到上游(当前节点的上一个节点)交换机发送的RST BPDU,重新与上游链路进行选举,然后通过P/A协商后,再根据情况切换接口状态。
  3. 上游交换机都会按照Hello Timer规定的时间间隔发送BPDU,这个过程都是设备自主进行的。
  4. 管理员可以手动配置边缘端口(PortFast),这个端口比较特别,不接受BPDU,不参与RSTP计算,但是可以快速从Discarding状态切换到Forwarding状态,但假如边缘端口接收到BPDU就会变成普通STP端口(比如终端用户自己接入一个交换机进来),从而引起网络震荡。
  5. 同时还增加了两种接口状态:Alternate端口与Backup端口
角色 描述
Backup Backup端口作为指定端口的备份,提供了另外一种从根桥到非根桥的备份链路。
Alternate Alternate端口作为根端口的备份端口,提供了从指定桥到根桥的另一条备份路径。

三、STP与RSTP有哪些异同?

先看端口状态,废话不多说,直接上图表比较:

STP接口状态 RSTP接口状态 接口在拓扑中的角色
Forwarding Forwarding 包括根接口、指定接口
Learning Learning 包括根接口、指定接口
Listening Discarding 包括根接口、指定接口
Blocking Discarding 包括Alternate接口、Backup接口
Disabled Discarding 包括Disable接口

所以说RSTP站在用户的角度,将STP中间的侦听、学习时间缩短了:

  • Discarding状态:端口既不转发用户流量,也不学习MAC地址
  • Learning状态:端口不转发用户流量,但学习MAC地址
  • Forwarding状态:端口转发用户流量,也学习MAC地址

然后咱们再来看看BPDU报文,还记得之前STP第一篇文章说的STP配置BPDU报文格式吗?咱们来回忆一下:

其中Flags字段仅仅包括两个字段:TCA(拓扑变化确认,Topology Change Acknowledgment)、TC(拓扑变化,Topology Change)

先看看下面这个图,单单看这两个报文是不是感觉一摸一样?其实就是RSTP借鉴STP的BPDU报文格式,只不过BPDU Type(BPDU报文类型)不一样,除此之外最关键的区分点在于RSTP将Flags字段包含了更多信息。

在RST BPDU的Flags中定义了TCA(拓扑变化确认)、Agreement(同意)、Forwarding(转发)、Learning(学习)、Port Role(端口角色,例如指定端口、根端口等)、Proposal(协商)、TC(拓扑变化)

这里的协商(Peoposal)和同意(Agreement)(P/A机制)我们会在后面RSTP收敛过程中聊到,这两个字段就是使得RSTP快速收敛的“法宝”

四、RSTP如何做到比STP更快收敛的?

从“根源”下手,咱们来看看RSTP的收敛过程:

  1. 每台交换机启动后,都认为自己是“根桥”,并且发送RST BPDU。这个时候所有端口都是指定端口,且都处于Discarding(丢弃)状态。

  2. 交换机相互发送Proposal置位为1的RST BPDU,接收到对端的RST BPDU的更优的交换机会丢弃次优交换机发过来的RST BPDU,并且回复Proposal置位为1的本地RST BPDU。

  3. 左下角的交换机收到更好的RST BPDU,就停止发送自己的RST BPDU,并执行同步。(除Alternate端口与边缘端口之外,所有下游指定端口都变为Discarding状态)

  4. 阻塞完所有非边缘端口之后,会回应给上游交换机Agreement置为1的RST BPDU。

  5. 根桥接收到下游发送的Agreement置为1的RST BPDU报文时,上游交换机会立马将指定端口从Discarding(丢弃)状态切换到Forwarding(转发)状态,然后P/A协商继续向下传播。

也就是说,当链路上的P/A协商结束时,这条链路就能进入到转发状态了,比STP的两个Forwarding Delay不知道要快多少去了。

五、RSTP又是如何应对链路故障?

其实挺直接的,以前还需要一层层往上通知“大哥”,然后让“大哥”说怎么办,现在不用了,还记得上面说的设备自主进行上游RST BPDU接收吗?RSTP就借助这条特性,将网络拓扑得变化感知得更加迅速。

上游交换机都会按照Hello Timer规定的时间间隔发送BPDU,这个过程都是设备自主进行的。

当规定的连续3次Hello Timer时间间隔过去了还没接收到上游发下来的RST BPDU,就确定了本端口与对端口通信失败,然后重新进行RSTP计算。并且根据情况切换另外的端口状态(从Alternate Port切换到Root Port,并立即进入Forwarding状态),然后发送TC(Topology Change)置为1的报文,从而通知上游清除除了接收TC报文之外的端口的MAC地址表,再重新学习MAC地址。这一趟“操作”下来就能快速应对拓扑变化。

对了,别忘了咱们之前还说过有一种配置的端口叫做边缘端口(PortFast)吧?这个端口有点意思,不接受BPDU,也不参与计算,从Discarding状态直接切换到Forwarding状态,也就是说即使网络震荡了也和它没关系,该转发流量还是照常转发流量,是不是听起来感觉RSTP针对“快”的研究还是很下功夫的。


六、结尾

收敛快是快了,但现在来看,交换机要阻塞一个端口来生成一个树形结构,从而防止环路,但另外一个端口一直没用上,这么感觉也挺浪费的,毕竟设备贵,还不好好利用,插个口还用不上,所以在解决速度之后,又开始研究怎么才能把那些阻塞的端口也用上了,于是诞生了后面要聊的MSTP(多生成树协议,Multiple Spanning Tree Protocol )。不过在MSTP之前还有个小插曲,咱们先来聊聊另外一个技术:VLAN(虚拟局域网,Virtual Local Area Network),“虚拟”两字听起来是不是感觉头大了?可别被名字吓到,没别的,就聊聊而已。

上一篇 没别的,就聊聊STP协议(二)

下一篇 没别的,就聊聊VLAN

没别的,就聊聊RSTP协议相关推荐

  1. 聊聊dubbo协议2

    本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star. 在<聊聊dubbo协议>中介绍了attachments在consumer和prov ...

  2. rstp协议学习笔记

    RSTP协议以客户服务器方式工作,如:暂停/继续.后退.前进等.他是一个多媒体播放控制协议,用来使用户播放从英特网下载的实时数据能够进行控制 ,因此RSTP又称为"因特网录像机遥控协议&qu ...

  3. 聊聊QUIC协议的发展

    点击上方"LiveVideoStack"关注我们 作者 | 王盛 策划 | 包研.Alex 编辑 | Alex QUIC 年终盘点 #001# QUIC(Quick UDP Int ...

  4. STP/RSTP协议(二)

    STP协议详解:https://blog.csdn.net/qq_40741808/article/details/105744865 RSTP 一.RSTP的端口角色 边缘端口的特点 二.RSTP的 ...

  5. RSTP协议原理与配置整——RSTP对STP的改进

    1.端口角色与端口状态 端口角色的重新划分 RSTP定义了两种新的端口角色:备份端口(Backup Port)和预备端口(Alternate Port). 根据STP的不足,RSTP新增加了两种端口角 ...

  6. RSTP协议原理与配置

    文章目录 前言 一.STP存在的问题 问题一:设备运行初始化环境 问题二:交换机有BP端口,RP端口down掉场景 问题三:交换机无BP端口,RP端口down掉场景 问题四:运行STP的交换机连接用户 ...

  7. STP和RSTP协议理解

    一.协议作用 解决二层网络中的环路问题. 二.环路带来的危害 广播风暴 MAC表紊乱 多帧复制 三.STP协议 spanning-tree proto,在逻辑上将特定端口进行block,从而保证传输链 ...

  8. RSTP协议以及MSTP协议

    补充解释 RSTP STP协议的缺点.存在的问题 STP的问题及解决方法 1.设备运行STP初始化场景 解决方法: 2.交换机有BP端口,RP端口down掉场景 解决方法: 3.交换机无BP端口,RP ...

  9. R&S,数通HCIP|STP高级-RSTP协议

    一.前言 阅读本篇文章建议首先了解基本STP协议的有关原理,可以先看一下之前的文章"网络数通HCIP|STP生成树协议". 二.RSTP协议 (一)STP的不足 (1)不同情形下的 ...

最新文章

  1. WPF   --- xmln 两个重要的命名空间
  2. 【网络安全】}ofCMS代码审计
  3. LIst与ArrayList区别
  4. StringUtils类中 isEmpty() 与 isBlank()的区别
  5. 观察者模式 Observer
  6. springboot 创建地址_这可能是史上最易懂的 Spring Boot 入门教程
  7. threadlocal get为空_面试常见知识点:ThreadLocal
  8. LFFD:轻量级人脸检测器,不止是快
  9. RDD、DataFrame和DataSet的区别
  10. C语言学习资料汇集 助你成为更好的程序员
  11. Bing翻译接口(V3版本)
  12. native2ascii转译HTML字符,native2ascii转字符
  13. Sql中的触发器(Triggers)
  14. 计算机启用远程桌面连接失败,解决办法:如何处理win10远程桌面连接失败?
  15. 房租,社会教给年轻人的第一课
  16. 细胞亚器互作综述解读~~~The secret conversations inside cells
  17. OS性能监控及优化——osw工具详解
  18. Java校验时间段重叠
  19. Ubuntu无法连接网络?
  20. 如何制作手机上图文并茂的加密电子书?

热门文章

  1. android点击查看大图(长按保存图片)
  2. 2021前端学习路径书单—自我成长之路
  3. 华林公司被查官网关闭 但酸碱平产品仍在线上销售
  4. 编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12...
  5. 券商3月份金股名单揭晓 五大看点暗含春季行情“密码”?
  6. 常用的高级Linux shell命令
  7. java实验(1)JDK环境下编写Java程序
  8. python数据存储和查询代码_【Python分享】如何便捷地存储、查询数据
  9. css基础学习之定位
  10. FBX Convert 最新官方下载地址