生成树详细 原理+算法

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

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


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


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


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


    交换机环路的缺点: 广播风暴, 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


相关文章
|
12天前
|
机器学习/深度学习 算法 计算机视觉
YOLOv3的算法原理是怎么样的
YOLOv3的算法原理是怎么样的
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
详解AI作画算法原理
详解AI作画算法原理
11 1
|
4天前
|
算法 C++ 索引
分享一个关于Avl树的迭代器算法
该文介绍了无parent指针的AVL树迭代实现,提出了一种仅使用少量栈空间的双向迭代算法。算法分为初始化、前向迭代和后向迭代三部分。初始化时,根据起始点(最小或最大值)填充栈,然后根据状态进行前向或后向迭代。前向迭代检查当前节点的右子节点,后向迭代检查左子节点。算法通过堆栈维持双向迭代,解决了节点丢失和失序问题。此外,还讨论了算法在多线程环境下的同步问题和可能的解决方案。
|
5天前
|
机器学习/深度学习 算法 API
【机器学习】Python中的决策树算法探索
决策树作为机器学习中的一种基础且强大的算法,因其易于理解和实现、能够处理分类和回归任务的特性而广受欢迎。本文旨在深入浅出地介绍决策树算法的基本原理,并通过Python编程语言实践其应用,帮助读者掌握如何利用Python构建及优化决策树模型。本文预计分为以下几个部分:决策树基础理论、Python中实现决策树的库介绍、实战案例分析、模型评估与调优方法,以及决策树算法的局限性与未来展望。
17 0
|
10天前
|
存储 算法 C++
c++算法学习笔记 (8) 树与图部分
c++算法学习笔记 (8) 树与图部分
|
13天前
|
算法 安全 网络协议
https原理--RSA密钥协商算法
https原理--RSA密钥协商算法
23 0
|
14天前
|
存储 移动开发 算法
数据结构与算法⑩(第四章_上)树和二叉树和堆的概念及结构(下)
数据结构与算法⑩(第四章_上)树和二叉树和堆的概念及结构
28 0
|
14天前
|
机器学习/深度学习 算法 搜索推荐
数据结构与算法⑩(第四章_上)树和二叉树和堆的概念及结构(上)
数据结构与算法⑩(第四章_上)树和二叉树和堆的概念及结构
13 0
|
14天前
|
机器学习/深度学习 编解码 算法
算法工程师面试问题总结 | YOLOv5面试考点原理全解析
本文给大家带来的百面算法工程师是深度学习目标检测YOLOv5面试总结,文章内总结了常见的提问问题,旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中,我们还将介绍一些常见的深度学习目标检测面试问题,并提供参考的回答及其理论基础,以帮助求职者更好地准备面试。通过对这些问题的理解和回答,求职者可以展现出自己的深度学习目标检测领域的专业知识、解决问题的能力以及对实际应用场景的理解。同时,这也是为了帮助求职者更好地应对深度学习目标检测岗位的面试挑战,提升面试的成功率和竞争力。
|
16天前
|
机器学习/深度学习 算法 数据处理
探索机器学习中的决策树算法
【5月更文挑战第18天】探索机器学习中的决策树算法,一种基于树形结构的监督学习,常用于分类和回归。算法通过递归划分数据,选择最优特征以提高子集纯净度。优点包括直观、高效、健壮和可解释,但易过拟合、对连续数据处理不佳且不稳定。广泛应用于信贷风险评估、医疗诊断和商品推荐等领域。优化方法包括集成学习、特征工程、剪枝策略和参数调优。