当前位置: 首页 > news >正文

树复制替换id_STP生成树协议的技术要点

在网络部署中,为了保障网络通信的稳定,通常会设计冗余链路,但是相应的就产生了环路控制的问题。STP协议是IEEE802.1D中定义的数据链路层协议,用于解决在网络的核心层构建冗余链路里产生的网络环路问题,通过在交换机之间传递网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),通过采用STA生成树算法选举根桥、根端口和指定端口的方式,最终将网络形成一个树形结构的网络,其中,根端口、指定端口都处于转发状态,其他端口处于禁用状态。如果网络拓扑发生改变,将重新计算生成树拓扑,因此这是一个动态收敛的结构。STP的存在,既解决了核心层网络需要冗余链路的网络健壮性要求,又解决了因为冗余链路形成的物理环路导致“广播风暴”问题。 1、STP生成树形成的三个步骤:选择根网桥(root bridge)、在每一个非根桥中选举一个根端口(RP)选择根端口、在每个网段中选择一个指定端口(DP)。 2、根网桥原则:一个网络中只有一个根网桥。选择根网桥的依据是网桥ID,网桥ID由网桥优先级和网桥MAC地址组成。网桥的默认优先级是32768.使用show mac-address-table时,显示在最前面的MAC地址就是计算时所使用的MAC地址。网桥ID值小的为根网桥,当优先级相同时,MAC地址小的为根网桥。 3、选择指定端口(指定端口处于转发状态)在非根桥上判断指定断口。到根桥有最低路径开销的交换机的端口是指定端口,当两个交换机的端口到根桥的路径开销一样时,用网桥ID来打破平衡,网桥ID低的产生指定端口。根桥的所有端口都是指定端口。 4、每个非根网桥有一个根端口,根端口处于转发状态。从非根桥到根桥有最低路径开销的端口,路径开销是从交换机到根网桥的所有开销之和。 5、除了指定端口之外的其他端口处于阻断状态,成为非指定端口。 6、运行生成树协议的交换机上的端口,总是处于下面四个状态中的一个:(1)阻塞:所有端口以阻塞状态启动以防止回路,由生成树确定哪个端口切换为转发状态,处于阻塞状态的端口不转发数据帧但可接受BPDU。(2)监听:不转发数据帧,但检测BPDU(临时状态)。(3)学习:不转发数据帧,但学习MAC地址表(临时状态)。(4)转发:可以传送和接受数据数据帧。 7、链路状态稳定期间,端口处于转发或阻塞状态。当检测到网络拓扑结构有变化时,交换机会自动进行状态转换,在这个期间端口暂时处于监听和学习状态。生成树经过一段时间稳定之后,所有端口要么进入转发状态,要么进入阻塞状态。STP BPDU仍然会定时从各个网桥的指定端口发出,以维护链路的状态。如果网络拓扑发生变化,生成树就会重新计算,端口状态也会随之改变。 8、RSTP协议在STP协议基础上做了三点重要改进,使得收敛速度快得多。第一点改进:为根端口和指定端口设置了快速切换用的替换端口(Alternate Port)和备份端口(Backup Port)两种角色,当根端口/指定端口失效的情况下,替换端口/备份端口就会无时延地进入转发状态。第二点改进:在只连接了两个交换端口的点对点链路中,指定端口只需与下游网桥进行一次握手就可以无时延地进入转发状态。如果是连接了三个以上网桥的共享链路,下游网桥是不会响应上游指定端口发出的握手请求的,只能等待两倍Forward Delay时间进入转发状态。第三点改进:直接与终端相连而不是把其他网桥相连的端口定义为边缘端口(Edge Port)。边缘端口可以直接进入转发状态,不需要任何延时。由于网桥无法知道端口是否是直接与终端相连,所以需要人工配置。 9、PVST每个VLAN都生成一棵树。它能够保证每一个VLAN都不存在环路。注意这个协议是私有协议。为了携带更多的信息,PVST BPDU的格式和STP/RSTP BPDU格式已经不一样,发送的目的地址也改成了Cisco保留地址01-00-0C-CC-CC-CD,而且在VLAN Trunk的情况下PVST BPDU被打上了802.1Q VLAN标签。所以,PVST协议并不兼容STP/RSTP协议。 10、MSTP(Multi-InstanceSpanning Tree Protocol)多实例生成树协议,定义了“实例”(Instance)的概念。简单的说,STP/RSTP是基于端口的,PVST/PVST+是基于VLAN的,而MISTP就是基于实例的。所谓实例就是多个VLAN的一个集合,通过多个VLAN捆绑到一个实例中去的方法可以节省通信开销和资源占用率。 11、MSTP协议把支持MSTP的交换机和不支持MSTP交换机划分成不同的区域,分别称作MST域和SST域。在MST域内部运行多实例化的生成树,在MST域的边缘运行RSTP兼容的内部生成树IST(Internal Spanning Tree)。MSTP设备内部需要维护的生成树包括若干个内部生成树IST,个数和连接了多少个SST域有关。 12、MSTP具有VLAN认知能力,可以实现负载均衡,可以实现类似RSTP的端口状态快速切换,可以捆绑多个VLAN到一个实例中以降低资源占用率。MSTP是IEEE标准协议,可以很好地向下兼容STP/RSTP协议。

fc80c2d0104a3baa99e49f30fc1d3d22.png

相关文章:

  • python模型的属性是什么_Python数据模型
  • python如何优化内存_如何优化Python占用的内存
  • python functools.reduce使用_Python的functools.reduce用法
  • vue computed 传参_vue生命周期
  • vb.net 循环生成excel的多个sheet_自动生成报告第一弹
  • python从零开始到放弃之二_python从入门到放弃QAQ
  • 安科瑞仪表调试工具_安科瑞ADW系列物联网智能电力仪表——吴玲霞/徐振
  • winform ctrl键单击多选_Ctrl+Shift 组合键用法大全,知道一半以上就是高手!
  • springboot中为何参数拿对象接收总是报错_SpringBoot整合Swagger2
  • sqlconnection对象的open()是否成功_VBA与数据库解决方案第8讲:创建ADO对象,到打开记录集的过程...
  • swing的gui是通过何种模式进行事件响应与监听_一起双网卡服务器被黑引发的勒索事件...
  • mysql上传数据太慢_腾讯云Ubuntu18.04部置Django2系列(四):数据库迁移及导入本地mysql数据...
  • 螺丝上的十字磨没了_螺丝为什么要分为一字和十字螺丝?
  • python3.7 opencv安装_win10 anaconda3(python3.7) 安装 opencv
  • python qt开发保存_【转】python qt(pyqt)的文件打开、文件保存、文件夹选择对话框...
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 2017 年终总结 —— 在路上
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CSS魔法堂:Absolute Positioning就这个样
  • ES6系列(二)变量的解构赋值
  • Fabric架构演变之路
  • Git的一些常用操作
  • Java IO学习笔记一
  • Making An Indicator With Pure CSS
  • NSTimer学习笔记
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • windows下mongoDB的环境配置
  • 从零开始学习部署
  • 多线程 start 和 run 方法到底有什么区别?
  • 构建工具 - 收藏集 - 掘金
  • 规范化安全开发 KOA 手脚架
  • 机器学习中为什么要做归一化normalization
  • 区块链技术特点之去中心化特性
  • #Lua:Lua调用C++生成的DLL库
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (1)Nginx简介和安装教程
  • (python)数据结构---字典
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (二)Linux——Linux常用指令
  • (二)构建dubbo分布式平台-平台功能导图
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (九)One-Wire总线-DS18B20
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)Oracle存储过程编写经验和优化措施
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net 6.0 处理跨域的方式
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET业务框架的构建
  • /boot 内存空间不够