生成树详细 原理+算法

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

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


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


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


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


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


相关文章
|
2天前
|
机器学习/深度学习 算法 前端开发
决策树与随机森林算法在分类问题中的应用
本文探讨了决策树和随机森林两种监督学习算法,它们在分类任务中表现出强大的解释性和预测能力。决策树通过特征测试进行分类,构建涉及特征选择、树生成和剪枝。随机森林是集成学习方法,通过构建多棵决策树并汇总预测结果,防止过拟合。文中提供了Python代码示例,展示如何使用sklearn构建和应用这些模型,并讨论了参数调优和模型评估方法,如交叉验证和混淆矩阵。最后,强调了在实际问题中灵活选择和调整模型参数的重要性。
14 4
|
2天前
|
存储 机器学习/深度学习 算法
使用决策树算法预测隐形眼镜类型
使用决策树算法预测隐形眼镜类型
12 2
|
2天前
|
存储 算法 Python
决策树算法
决策树算法
10 2
|
4天前
|
存储 SQL 算法
LeetCode题目100:递归、迭代、dfs使用栈多种算法图解相同的树
LeetCode题目100:递归、迭代、dfs使用栈多种算法图解相同的树
|
4天前
|
存储 算法 数据可视化
python多种算法对比图解实现 验证二叉树搜索树【力扣98】
python多种算法对比图解实现 验证二叉树搜索树【力扣98】
|
4天前
|
存储 算法 数据挖掘
【贪心算法经典应用】哈夫曼编码原理与算法详解 python
【贪心算法经典应用】哈夫曼编码原理与算法详解 python
|
8天前
|
存储 算法 测试技术
数据结构学习记录——树习题-Complete Binary Search Tree(题目描述、输入输出示例、数据结构的选择、核心算法、计算左子树的规模)
数据结构学习记录——树习题-Complete Binary Search Tree(题目描述、输入输出示例、数据结构的选择、核心算法、计算左子树的规模)
13 1
|
8天前
|
算法
数据结构和算法学习记录——层序遍历(层次遍历)、二叉树遍历的应用(输出二叉树中的叶节点、求二叉树的高度、二元运算表达式树及其遍历、由两种遍历序列确定二叉树)
数据结构和算法学习记录——层序遍历(层次遍历)、二叉树遍历的应用(输出二叉树中的叶节点、求二叉树的高度、二元运算表达式树及其遍历、由两种遍历序列确定二叉树)
11 0
|
8天前
|
机器学习/深度学习 存储 算法
数据结构和算法学习记录——树(基本介绍、树的定义、树的特点、树的一些基本术语、树的表示、儿子-兄弟表示法)
数据结构和算法学习记录——树(基本介绍、树的定义、树的特点、树的一些基本术语、树的表示、儿子-兄弟表示法)
9 0
|
8天前
|
算法 Java Go
【经典算法】LeetCode 100. 相同的树(Java/C/Python3/Go实现含注释说明,Easy)
【经典算法】LeetCode 100. 相同的树(Java/C/Python3/Go实现含注释说明,Easy)
5 0