为了理解MST和其他STP版本的互操作性,首先要来看看MST与没有每VLAN概念的纯IEEE802.1D STP或802.1w RSTP非MST交换机(本书称其为非MST交换机)之间互操作的方式。这些非MST交换机针对所有VLAN运行一个STP实例,所以在网络的非MST部分,所有VLAN共享同一个生成树。无论非MST交换机将端口置为何种角色和状态,这个角色和状态都由这个端口上的所有VLAN共享。STP和RSTP不理解也看不见在MST区域中独立的MST实例,整个MST区域对于STP和RSTP来说是一个“黑匣子”。非MST交换机通过运行IEEESTP/RSTP来完成互操作性;MST交换机在边界端口上只使用被称为IST的MST实例0,使用普通STP或RSTP BPDU的格式,并将协商的端口角色和状态应用到这些端口的所有VLAN上。MST实例0在此处的角色很重要——它与非MST邻居进行通信,并处理从这些邻居收到的BPDU。
 
MST区域和较老的IEEESTP各版本之间的互操作相对简单。非MST区域使用一个STP/RSTP实例。MST区域使用IST代表整个区域,并与边界端口上的非MST邻居进行通信。由IEEESTP/RSTP与IST交互生成的边界端口角色和状态绑定在所有VLAN上。
 
对于MST和PVST+区域,选择一个代表来代替整个区域通信,这两个代表之间的通信负责确定所有VLAN的边界端口角色和状态。这个操作执行起来比看起来要复杂一些。MST边界的角色和状态会无条件地实施在端口所有活跃的VLAN上(这是MST边界端口的工作方式),而PVST+端口对于每个VLAN都有独立的角色和状态。如果选出一个MST实例代表来代替一个MST区域,它给PVST+交换机信息的方式必须让每个接收到相同信息的PVST+实例都进行相同一致的选择。一致一词非常重要——它描述了一个过程,其中虽然只有一个MST实例和一个PVST+实例直接进行交互,但MST和PVST+的所有实例都达到了相同的端口角色和状态。PVST模拟机制的目的就是为了保持MST和PVST+区域之间互操作的一致性。
 
在MST到PVST+方向,MST区域选择IST作为代表,使用PVST+ BPDU将IST信息传递给所有PVST+实例。为了使PVST+区域对于所有已知VLAN,基于IST属性进行相同一致的决策,所有PVST+实例必须收到相同的PVST+ BPDU格式的IST信息。因此,MST边界端口会把所有活跃VLAN的IST BPDU信息复制到PVST+BPDU中。这样,MST为PVST+邻居提供了所有VLAN一致的信息。在任意一个端口上接收这些信息的PVST+邻居,将因此对于所有VLAN做出相同一致的端口角色和状态决策。
 
在相反方向中,MST使用VLAN 1作为整个PVST+区域的代表,处理IST中VLAN 1收到的BPDU。边界端口的角色和状态会绑定到所有含这个端口的活跃VLAN上。然而,MST必须确保由与VLAN 1 STP实例交互,从而确定的边界端口角色和状态,真正代表了所有其他PVST+实例的决策;即必须确定IST与VLAN 1 STP实例交互的结果,是否与运行在其他VLAN的STP实例的状态一致。
 
下面进行进一步的分析。运行在一个MST边界端口的IST,与VLAN 1 PVST+的交互基本上会产生三种端口角色:指定、根或非指定(是替换还是备用与此处无关)。

STP-13-MST和其它STP版本的互操作性(没写完)的更多相关文章

  1. Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR tensorflow-1.13.1和1.14windows版本目前不支持CUDA10.0

    报错出现 Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR tensorflow-1.13.1和1.14windows版本目前不支持 ...

  2. CentOS 6.5以上版本安装mysql 5.7 完整版教程(修订版)

    转载自:https://codeday.me/collect/20170524/21861.html 1: 检测系统是否自带安装mysql # yum list installed | grep my ...

  3. Error:java:错误:不支持发行版本 5(或写着其他版本的~)

      很多人会出现:Error:java:错误:不支持发行版本 5(或13等版本),均是因为此几个地方版本不一致 [若你下载的jdk版本真的是5,请你更新jdk !!]   (上图打开方式:左上角,Fi ...

  4. JDK、Eclipse、Myeclipse、Tomcat等各种软件的版本详解(写给对版本和兼容性问题焦头烂额的你)

    这篇文章我们来探讨一下关于JDK.Eclipse.Myeclipse.Tomcat的版本问题.一.关于版本的几个概念1.32位和64位两个版本:    简言之,64位的操作系统支持识别4G以上的内存条 ...

  5. Git版本控制器使用总结性梳理

    Git为何物?Git 是什么?大家肯定会说不就是版本控制器嘛,是的Git是目前世界上最先进的分布式版本控制系统(没有之一).1)那什么是版本控制器?举个简单的例子,比如我们用Word写文章,那你一定有 ...

  6. 【技巧】解决win10的1803版本下,无法收到1809推送、从而无法更新到1903版本的问题。

    figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-wid ...

  7. 团队作业5:Alpha版本测试和发布(歪瑞古德小队)

    目录 一.项目文档和代码 二.Alpha版本测试报告 2.1 功能测试 2.1.1 功能列表 2.1.2 场景测试 2.1.3 测试结果 2.1.4 bug清单 2.2 兼容性测试 2.3 性能测试 ...

  8. 【Alpha版本】冲刺阶段——Day 6

    我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬 ...

  9. Git回退到服务器某个版本正确姿势

    背景: Git协作中,成员不可避免地会提交一些错误的版本,由于Git相比SVN引入了本地仓库,操作会相对复杂,以下为姿势分解 找一个源文件RspUtils.java,加上一行注释 //测试回退git服 ...

随机推荐

  1. 深入理解JVM - 线程安全与锁优化 - 第十三章

    线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对 ...

  2. malloc和new的区别是什么?

    http://zhidao.baidu.com/link?url=iUDUZeJtj1o12PvUETLlJgvAMqzky5HxGCJRGnULpsO8HdWAdjKkQqGCJ9-o-aTu8NP ...

  3. bzoj3513

    给定n个长度分别为$a_i$的木棒,问随机选择3个木棒能够拼成三角形的概率. $a_i$和$n$都在$10^5$以内 对于每一个i,我们统计比i短的边有多少组合能组成长度<=i的 用1减去这个概 ...

  4. 编写html页面时常见的问题(一)

    说到写页面,肯定有很多人在刚接触编写页面这一块时遇到很多细节和兼容性的问题,那么在这里我总结一些经常遇到的小问题.希望能够帮助学习页面搭建的初学者! 虽然说ie6很多公司都已经抛弃,但是个人认为,初学 ...

  5. Vue项目屏幕自适应方案

    安装lib-flexible cnpm i lib-flexible -D Vue项目引入 lib-flexible. main.js: import 'lib-flexible/flexible' ...

  6. 重学JAVA基础(五):面向对象

    1.封装 import java.util.Date; public class Human { protected String name; protected BirthDay birthDay; ...

  7. SQL 优化总结(三) SQL子句

    SQL子句 尽可能编写优化器可以优化的语句. 1. SELECT子句 (1) 在查询Select语句中用Where字句限制返回的行数,避免表扫描,如果返回不必要的数据,浪费了服务器的I/O资源,加重了 ...

  8. Python创建删除文件

    Python代码如下: import os directory = "E:\\学习日志\\" os.chdir(directory) # 改变当前工作目录 cwd = os.get ...

  9. 【opencv学习笔记二】opencv3.4.0组件结构说明

    在学习opencv使用之前我们先来看一下opencv有哪些组件结构.至于OpenCV组件结构的研究方法, 我们不妨管中窥豹,通过opencv安装路径下include目录里面头文件的分类存放,来一窥Op ...

  10. java线程基本原理

    1.线程池简介:     多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力.        假设一个服务器完成一项任务所需时间为:T1 创 ...