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

生成树机制实验

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消息,并通过指定端口发送出去

http://www.kler.cn/a/508333.html

相关文章:

  • 在.NET用C#将Word文档转换为HTML格式
  • C++ 强化记忆
  • Kubernetes(k8s)和Docker Compose本质区别
  • 【机器学习实战入门】使用 Pandas 和 OpenCV 进行颜色检测
  • Web3与加密技术的结合:增强个人隐私保护的未来趋势
  • DM达梦启用及收集AWR报告
  • Spring boot面试题----Spring Boot项目中如何实现兼容老的Spring项目
  • 2018年西部数学奥林匹克几何试题
  • 支付宝“政府补贴”bug事件背后的权限管理启示
  • Python学习(十)IO编程(文件读写、StringIO和BytesIO、操作文件和目录、序列化)
  • MySql-9.1.0安装详细教程(保姆级)
  • Nginx 之Rewrite 使用详解
  • 集成方案 | Docusign + Oracle,实现合同签署与管理的高效协同!
  • OpenHarmony API 设计规范
  • 高反光表面三维视觉测量方法
  • (01)FreeRTOS移植到STM32
  • 【MySQL 的数据目录】
  • JAVA之外观模式
  • JTAG调试器的使用方法
  • 从零创建一个 Django 项目
  • Spring Boot 实战:轻松实现文件上传与下载功能
  • element ui 对数组里面的多个相同的字段进行校验在
  • php函数性能优化中应注意哪些问题?
  • 【机器学习:二十七、决策树集合】
  • java使用poi-tl自定义word模板导出
  • 【机器学习:三十二、强化学习:理论与应用】