生成树详细 原理+算法

简介: 生成树详细 原理+算法

生成树,就是解决交换机之间冗余而且避免了广播风暴。


        是一种自动实现机制,可以人为不必干预


        原理: 将环型链路通过某种算法逻辑上生成树型结构,将一个或多个冗余点逻辑上阻断


当实际链路出现故障时,再次启用逻辑上阻断的点,实现容错。


    交换机环路的缺点: 广播风暴, mac地址紊乱, 多帧复制


生成树算法:  分三步


  1, 选择根网桥 (Boor Bridge)


  2,选择根端口 (Boor Ports)  


  3, 选择指定端口 (Designated Ports)


具体实现


  选择根网桥: 交换机的 id  最小


                   交换机的id =交换机的优先级+ 交换机的mac 地址


             


选择根端口:  首先,根端口是在非根网桥上选择


               每个非根网桥上选择一个端口作为根端口


                   其次,选择根端口首先判断非根网桥的端口根网桥的路径成本最低


                            如果路径相同则选择端口连接的对端的网桥id 最小的


                            如果对端网桥id 一样, 则比较连接对端的端口id 最小


                       端口id = 端口优先级+ 端口号   (端口优先级通常是一样的 那么只需比较端口号)


   选择指定端口, 首先再每条连接线上面选则一个端口 作为指定端口


                  根网桥上的端口都是指定端口


                  其次  先比较端口到根网桥的路径成本较低


                  如果相同则比较端口所在交换机的网桥id 值较小的


                  网桥id 也相同则比较端口id 较小的


交换机之间通过发送 BPDU (桥协议数据单元)来交换信息


    BPDU两种类型:  配置 BPDU  用于生成树计算


                     TCN  用于通告网络拓扑变化


    BPDU 主要字段: 包括  根网桥id   根路径成本   发送的网桥id  计时器


   STP 生成树的收敛 , 就是最后计算达到平衡


    交换机端口的五种状态,  禁用     强制关闭


                            阻塞    只接受 BPDU


                            侦听    构建活动拓扑


                            学习    构建网桥表


                            转发    发动/接受用户信息


   生成树的三种计时器      hello 时间    默认 2s  一次


                            转发延迟时间     默认15s


                           最大老化时间   默认20秒


人为干预,配置生成树的意义


可以实现负载平衡和容错

避免自动运算选出性能比较差的交换机作为根网桥 而使整个网络不稳定

基本的生成树命令


设定交换机sw1 为 vlan 10 的 根网桥  vlan 20 的备用命令


    sw1(config)spanning-tree  vlan 10  root   primary


    sw1(config)spanning-tree  vlan 20  root  secondary


设定交换机sw2 为 vlan 10 的 根网桥  vlan 20 的备用命令


    sw2(config)spanning-tree  vlan 10  root   secondary


    sw2(config)spanning-tree  vlan 20  root   primary


相关文章
|
1天前
|
算法 Java 数据库
理解CAS算法原理
CAS(Compare and Swap,比较并交换)是一种无锁算法,用于实现多线程环境下的原子操作。它通过比较内存中的值与预期值是否相同来决定是否进行更新。JDK 5引入了基于CAS的乐观锁机制,替代了传统的synchronized独占锁,提升了并发性能。然而,CAS存在ABA问题、循环时间长开销大和只能保证单个共享变量原子性等缺点。为解决这些问题,可以使用版本号机制、合并多个变量或引入pause指令优化CPU执行效率。CAS广泛应用于JDK的原子类中,如AtomicInteger.incrementAndGet(),利用底层Unsafe库实现高效的无锁自增操作。
理解CAS算法原理
|
1月前
|
算法 容器
令牌桶算法原理及实现,图文详解
本文介绍令牌桶算法,一种常用的限流策略,通过恒定速率放入令牌,控制高并发场景下的流量,确保系统稳定运行。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
令牌桶算法原理及实现,图文详解
|
22天前
|
存储 人工智能 缓存
【AI系统】布局转换原理与算法
数据布局转换技术通过优化内存中数据的排布,提升程序执行效率,特别是对于缓存性能的影响显著。本文介绍了数据在内存中的排布方式,包括内存对齐、大小端存储等概念,并详细探讨了张量数据在内存中的排布,如行优先与列优先排布,以及在深度学习中常见的NCHW与NHWC两种数据布局方式。这些布局方式的选择直接影响到程序的性能,尤其是在GPU和CPU上的表现。此外,还讨论了连续与非连续张量的概念及其对性能的影响。
45 3
|
27天前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法与应用
探索人工智能中的强化学习:原理、算法与应用
|
1月前
|
缓存 算法 网络协议
OSPF的路由计算算法:原理与应用
OSPF的路由计算算法:原理与应用
49 4
|
1月前
|
存储 算法 网络协议
OSPF的SPF算法介绍:原理、实现与应用
OSPF的SPF算法介绍:原理、实现与应用
82 3
|
27天前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法及应用
探索人工智能中的强化学习:原理、算法及应用
|
2天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
104 80
|
21天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
7天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。