生成树机制实验
1 实验内容
1、基于已有代码,实现生成树运行机制,对于给定拓扑(four_node_ring.py),计算输出相应状态下的生成树拓扑
2、构造一个不少于7个节点,冗余链路不少于2条的拓扑,节点和端口的命名规则可参考four_node_ring.py,使用stp程序计算输出生成树拓扑
2 实验原理
一、生成树机制
通过禁止(block) 设备的相关端口,在有环路的网络中构造出一个总体开销最小的生成树拓扑,使得网络在连通的前提下,避免广播风暴。

二、生成树的唯一性
具有相同开销的生成树可能并不唯一,选择优先级最高的生成树作为唯一生成树。
-
- 节点ID最小的点作为生成树的根节点
- 每个节点选择到树的根节点优先级最高的路径
- 优先级顺序:路径开销 > 所连接的节点ID大小 > 所连接的端口ID大小 > …
-
-
- 路径开销路径开销等于路径上全部链路开销之和,链路开销与链路带宽相关,带宽越高,开销越小
-
三、生成树机制的基本原理
经过有限次的收发Config消息,网络中能够“选举”出唯一的根节点,即ID最小的节点;
除根节点外,每个节点选择通过自己的根端口连接到根节点,使得到根节点的路径开销最小;
为了保证新的Config消息能够扩散到其他节点,每个节点会通过指定端口发送Config消息;

生成树机制收敛后,每个网段内所有端口存储的配置都相同。
四、构建生成树拓扑的流程

1、初始化阶段:每个节点认为自己是根节点,并将自己的所有端口设定为指定端口,用于发送config消息
2、运行阶段:
(1)根节点通过hello定时器(2秒)周期发送Config消息
(2)处理config消息:当端口收到config消息时,将本端口的config与收到的config进行优先级比较。
-
-
- 如果收到的config优先级高:
-
-
-
-
- 说明该网段应该通过对方端口连接根节点,因此本端口为非指定端口(断开链路),本端口的config消息更新
- 节点状态更新,从本节点中所有非指定端口中选举根端口,通过比较端口间config消息的优先级,选举config消息优先级最高的非指定端口为根端口
- 更新节点其他端口的config消息,并通过指定端口发送出去
-
-
相关文章:
生成树机制实验
1 实验内容 1、基于已有代码,实现生成树运行机制,对于给定拓扑(four_node_ring.py),计算输出相应状态下的生成树拓扑 2、构造一个不少于7个节点,冗余链路不少于2条的拓扑,节点和端口的命名规则可参考four_node_ring.py,使用stp程序计算输出生成树拓扑 2 实验原理 一、…...
企业分类相似度筛选实战:基于规则与向量方法的对比分析
文章目录 企业表相似类别筛选实战项目背景介绍效果展示基于规则的效果基于向量相似的效果 说明相关文章推荐 企业表相似类别筛选实战 项目背景 在当下RAG(检索增强生成)技术应用不断发展的背景下,掌握文本相似算法不仅能够助力信息检索&…...
2024年博客之星年度评选—创作影响力评审入围名单公布
2024年博客之星活动地址https://www.csdn.net/blogstar2024 TOP 300 榜单排名 用户昵称博客主页 身份 认证 评分 原创 博文 评分 平均 质量分评分 互动数据评分 总分排名三掌柜666三掌柜666-CSDN博客1001002001005001wkd_007wkd_007-CSDN博客1001002001005002栗筝ihttps:/…...
递归40题!再见递归
简介:40个问题,有难有易,均使用递归完成,需要C/C的指针、字符串、数组、链表等基础知识作为基础。 1、数字出现的次数 由键盘录入一个正整数,求该整数中每个数字出现的次数。 输入:19931003 输出…...
社区版Dify实现文生视频 LLM+ComfyUI+混元视频
社区版Dify实现文生视频 LLMComfyUI混元视频 一、 社区版Dify实现私有化混元视频效果二、为什么社区版Dify可以在对话框实现文生视频?LLMComfyUI混元视频 实现流程图(重点)1. 文生视频模型支持ComfyUI2. ComfyUI可以轻松导出API实现封装3. Di…...
【LLM】Openai-o1及o1类复现方法
note 可以从更为本质的方案出发,通过分析强化学习的方法,看看如何实现o1,但其中的核心就是在于,如何有效地初始化策略、设计奖励函数、实现高效的搜索算法以及利用强化学习进行学习和优化。 文章目录 note一、Imitate, Explore, …...
jlatexmath-android如何实现自定义渲染字符
使用jlatexmath-android的过程,如果出现个别字符渲染不了,会导致无法显示 常用的做法是新增自定义字体切换系统默认字体渲染,下面我们介绍第2种方法。 修改流程: 1、到jlatexmath-android的官网下载源码到本地,导入…...
dockerhub上一些镜像
K8s下网络排障工具 https://hub.docker.com/r/nicolaka/netshoot ex kubectl run tmp-shell --rm -i --tty --image nicolaka/netshoot -- /bin/bash # 主机的net ns下运行 kubectl run tmp-shell --rm -i --tty --overrides{"spec": {"hostNetwork": tru…...
Python 爬虫学习指南与资料分享
Python爬虫学习资料 Python爬虫学习资料 Python爬虫学习资料 在数字化浪潮中,Python 爬虫作为强大的数据获取工具,为众多领域提供关键支持。想要系统掌握这门技术,以下的学习指南与资料分享将为你照亮前行道路。 一、学习指南 入门奠基 …...
TypeScript特有运算符和操作符
文章目录 TypeScript 特有运算符1. keyof2. typeof3. in4. extends5. is6. as 和 <Type>7. never8. readonly9. ?10. []11. | 和 &12. !13. ?? 和 ?. 总结 TypeScript 特有运算符 1. keyof 作用:用于获取对象类型的所有键(属性名&#x…...
介绍下常用的前端框架及时优缺点
以下是一些常用的前端框架及其优缺点介绍: React • 优点 • 组件化架构:可构建可复用的UI组件,提高开发效率和组件可维护性。 • 虚拟DOM:高效更新页面,减少直接操作DOM的性能开销。 • 灵活性和可扩展性…...
MATLAB算法实战应用案例精讲-【数模应用】图形变换和复杂图形组合(附python和MATLAB代码实现)
目录 前言 算法原理 变换 1二维变换 1.1缩放 1.2 翻转 1.3剪切 1.4 旋转 2齐次坐标 2.1引入齐次坐标的原因 2.2 二维齐次坐标 2.3二维仿射变换 2.4逆变换 4组合变换 5三维变换(由二维变换推理而来) 5.1三维齐次坐标 5.2 三维仿射变换 5.3 缩放和平移 5.4…...
SpringMVC 实战指南:打造高效 Web 应用的秘籍
第一章:三层架构和MVC 三层架构: 开发服务器端,一般基于两种形式,一种 C/S 架构程序,一种 B/S 架构程序使用 Java 语言基本上都是开发 B/S 架构的程序,B/S 架构又分成了三层架构三层架构: 表现…...
doris: Flink导入数据
使用 Flink Doris Connector 可以实时的将 Flink 产生的数据(如:Flink 读取 Kafka,MySQL 中的数据)导入到 Doris 中。 使用限制 需要依赖用户部署的 Flink 集群。 使用 Flink 导入数据 使用 Flink 导入数据,详…...
Nginx在Linux中的最小化安装方式
1. 安装依赖 需要安装的东西: wget,方便我们下载Nginx的包。如果是在Windows下载,然后使用SFTP上传到服务器中,那么可以不安装这个软件包。gcc g,Nginx是使用C/C开发的服务器,等一下安装会用到其中的…...
CSS布局新视角:BFC(块级格式化上下文)的作用与优势
在CSS布局的世界中,BFC(Block Formatting Context,块级格式化上下文)是一个既重要又神秘的概念。它不仅是解决复杂布局问题的关键工具,也是提升页面性能和用户体验的重要手段。本文将从新视角出发,深入探讨…...
PCL K4PCS算法实现点云粗配准【2025最新版】
目录 一、算法原理1、算法概述2、算法流程3、参考文献二、 代码实现1、原始版本2、2024新版三、 结果展示本文由CSDN点云侠原创,原文链接,首发于:2020年4月27日。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的抄袭狗。 博客长期更新,本文最近一次更新时间为…...
02IO篇(D2_深入IO模型)
目录 本章目标 一、用户空间和内核空间 二、PIO与DMA 三、缓存IO和直接IO 1. 缓存IO 2. 直接IO 三、IO访问方式 1. 磁盘IO 2. 网络IO 3. 磁盘IO和网络IO对比 四、Socket网络编程 1. 客户端 2. 服务端 示例一 示例二 示例三 五、同步IO和异步IO 六、阻塞IO和非…...
记录一次微信小程序使用云能力开发的过程
对于开发微信小程序云开发不知从何起的同学们,可以当作一次参考。虽说官方有文档,有模板示例,但是这些都是片段或者完整的结果展示。对于初学或者开发经验较少的同学们,可能不知先从那里入手进行第一步的开发。下面解析下构建微信…...
Learning Prompt
说明:这是我的学习笔记,很多内容转自网络,请查阅文章末尾的参考资料。 目录 基本要求(C.R.E.A.T.E)总结文章(Summarise)改写文章(Rewrite)根据参考资料回答问题(Question & Answer)参考资料 基本要求(C.R.E.A.T.E) Character This is th…...
新手学吉他必看,这5个常见误区,避开了少走3个月弯路
经常会看到很多新手学吉他,学着学着就卡壳学不下去了,不是嫌按弦手疼,就是曲子弹不下去。特别是一些自学的朋友,网上随便东找些课,西看些视频,学下来进步很慢,3个月之后就改打“退堂鼓”了。其实…...
STM32首次烧录选择erase sectors导致程序跑飞
一、故障现象小批量打样回来的板子,烧录程序后一切正常,蜂鸣器响0.5s,LED闪烁等待握手;但是断电重启后蜂鸣器长鸣,LED不闪烁,无法正常运行。二、分析解决过程首先我看了一下电源,电压、电流都是…...
Claude Code开源第一人,竟是华人辍学博士!CC之父回应:纯手误
51万行Claude Code代码全网裸奔,背后泄密第一人竟是他。就在刚刚,CC之父回应来了:是人,不是Bun。爆出Claude Code源码第一人,竟被全网扒出来了!3月31日凌晨4点23分,安全研究员Chaofan Shou在X上…...
Arduino轻量URL编解码库:RFC 3986兼容的嵌入式urlencode/urldecode实现
1. 项目概述URLCode 是一个专为 Arduino 平台设计的轻量级 URL 编解码库,其核心目标是提供符合 RFC 3986 标准的application/x-www-form-urlencoded格式字符串的编码(urlencode)与解码(urldecode)能力。该库不依赖 Ard…...
酶联免疫斑点技术原理与应用
一、技术背景与基本概念酶联免疫斑点技术Elispot是一种基于单细胞水平检测特异性抗体分泌细胞或细胞因子分泌细胞的免疫学检测方法。该技术结合了酶联免疫吸附测定(ELISA)的高灵敏度与斑点形成单元的可视化计数优势,能够在单个细胞层面实现功…...
Sammy.js部署与运维:生产环境配置、性能监控与故障排查终极指南
Sammy.js部署与运维:生产环境配置、性能监控与故障排查终极指南 【免费下载链接】sammy Sammy is a tiny javascript framework built on top of jQuery, Its RESTful Evented Javascript. 项目地址: https://gitcode.com/gh_mirrors/sa/sammy Sammy.js是一个…...
旺季仓容紧张跨境卖家如何提前规划备货与入仓
决胜销售旺季:跨境卖家的备货与入仓战略指南随着全球电商购物节日益临近,无论是年末的“黑色星期五”、圣诞季,还是区域性的大促活动,一个共同的挑战悄然浮现:仓库容量告急。对于跨境卖家而言,旺季不仅是销…...
UEFI开发实战指南 – 从环境搭建到国产平台适配
1. UEFI开发环境搭建全攻略 第一次接触UEFI开发时,我被各种陌生的术语搞得晕头转向。经过几个实际项目的摸爬滚打,终于摸清了门道。UEFI开发环境的搭建其实就像搭积木,只要掌握关键步骤,新手也能快速上手。 在Windows系统下搭建环…...
运维系列【仅供参考】:【Docker】容器生命周期管理:从优雅停止到高效清理的实战技巧
【Docker】容器生命周期管理:从优雅停止到高效清理的实战技巧 【Docker】容器生命周期管理:从优雅停止到高效清理的实战技巧 摘要 1. 为什么需要关注容器生命周期管理? 2. 停止容器的艺术:从温柔到强硬 2.1 优雅停止的正确姿势 2.2 何时该用强制终止 2.3 暂停与恢复的妙用 …...
SEO_为什么你的网站需要持续进行SEO优化?
SEO优化的重要性:为什么你的网站需要持续进行SEO优化 在当前竞争激烈的互联网市场中,网站的流量和用户参与度直接影响着企业的成功与否。为什么你的网站需要持续进行SEO优化呢?SEO(搜索引擎优化)不仅是提升网站在搜索…...
