连接中断原因也可能是增加了新的链路,导致其中一台交换机重新选举根端口,最终认为新链路所连端口是根端口,RSTP在点到点链路上使用提议/同意(Proposal/Agreement)过程,让类似这种链路迅速开始工作,并且不会造成临时的交换环路,也不会造成明显的通信中断。
新链路端口选为根端口,其他端口为指定端口。邻居还没来得及被告知这种变更,于是两边都是指定端口,造成环路。要避免这种环路可以在将新的根端口置为转发状态之前,把所有非边界指定端口置为丢弃状态。这可以保证无环但也会造成明显的通信中断。需要等待一定时间。
 
提议/ 同意( Proposal/ Agreement)。
提议表示一个端口想要成为指定转发端口的意愿,而同意表示允许立即执行。在两台交换机之间增加了新的点到点链路后,两端的端口一开始都是指定丢弃状态,这是非边界端口的默认角色和状态。
任何处于丢弃或学习状态的指定端口需要发送设置了提议位的BPDU。因此两台交换机都会尝试交换设置了提议位的BPDU(或简称为提议),假设它们都有权成为指定端口。
然而,如果其中一个接收到提议的端口发现这个提议构成了这台交换机收到的最优结果BPDU,这个端口的角色就会从指定端口变为根端口(状态仍保持为丢弃状态)。交换机上的其他端口也会随之更新。
进一步说,交换机如果在根端口接收到了提议,它会立刻把所有非边界指定端口设置为丢弃状态。这个操作称为同步(Sync)。处于同步状态的交换机被从网络中隔离,避免任何交换环路穿其而过:它的根端口仍处于丢弃状态(即使已处于转发状态,邻居的指定端口也仍处于丢弃或学习状态),它的指定端口被有意设置为了丢弃状态。现在可以安全地将新根端口移至转发状态,并通知上行交换机:可以将指定端口从转发或学习状态变更为转发状态了。这是在交换机在执行同步之后,通过其根端口发送设置了同意位BPDU(或简称为同意)实现的。上行交换机在指定丢弃端口或指定学习端口上收到协议BPDU时,会立刻把端口变为转发状态,完成两台交换机之间的提议/同意交换。
因为所有的指定转发端口和指定学习端口都会发送提议,提议/同意交换过程其实是从“上层”交换机移至“下层”(根交换机是生成树的“顶”),造成传递的效果,

在交换网络中造成运行中断的原因可以是直接链路故障(交换机失去了根端口)、间接链路故障(邻居失去了根端口)、增加新的根链路,或变更了根交换机。RSTP对于每种事件都有响应机制:针对直接链路故障,把最优的替换端口变为新的根端口;针对间接链路故障,允许接受来自指定交换机的次优BPDU;针对增加新的根链路,使用提议/同意机制进行应对;针对根交换机的更替,由以上机制组合处理。
在提议/同意的交换过程中,所有非边界指定端口都会被移至丢弃状态(也就是同步操作)。如果工程师没有使用接口命令spanning-tree portfast,或全局命令spanning-tree portfast default(都只对Access端口有效),将面向终端主机的端口明确配置为边界端口,它们将在同步过程的中被设置为丢弃状态。因为终端主机不能发送RSTP协议,因此这些端口会在两个转发延迟间隔之后,再次变为转发状态,终端主机将经历明显的连接性中断。在RSTP中,将面向终端主机的端口配置为边界端口是至关重要的;否则网络的性能可能比802.1D STP还差。
 

STP-8-RSTP中的提议/同意过程的更多相关文章

  1. STP详解-STP、RSTP、MSTP

    STP详解 01 冗余链路中存在的问题 如图所示LSW1和LSW2之间有两条线路相连,它们之间任何一条链路出现故障另外一条线路可以马上顶替出现故障的那条链路,这样可以很好的解决单链路故障引起的网络中断 ...

  2. JVM中对象的创建过程

    JVM中对象的创建过程如以下流程图中所示: 对其主要步骤进行详细阐述: 为新生对象分配内存: 内存的分配方式: 指针碰撞:假设Java堆中内存是绝对规整的,所有用过的内存放在一边,空闲的内存在另一边, ...

  3. Android中View的绘制过程 onMeasure方法简述 附有自定义View例子

    Android中View的绘制过程 onMeasure方法简述 附有自定义View例子 Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android fr ...

  4. Android系统在新进程中启动自定义服务过程(startService)的原理分析

    在编写Android应用程序时,我们一般将一些计算型的逻辑放在一个独立的进程来处理,这样主进程仍然可以流畅地响应界面事件,提高用户体验.Android系统为我们提供了一个Service类,我们可以实现 ...

  5. 【转】Android中View的绘制过程 onMeasure方法简述 附有自定义View例子

    Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android framework将会处理绘制过程,Activity只需提供它的布局的根节点. 绘制过程从布 ...

  6. Android Multimedia框架总结(二十二)MediaCodec中C++中创建到start过程及状态变换

    上一章介绍MediaCodec中创建到start过程(到jni部分),从今天开始,将深入源码中看看其c++过程,看下Agenda如下: mediacodec.h CreateByType initMe ...

  7. JVM中对象的回收过程

      当我们的程序开启运行之后就,就会在我们的java堆中不断的产生新的对象,而这是需要占用我们的存储空间的,因为创建一个新的对象需要分配对应的内存空间,显然我的内存空间是固定有限的,所以我们需要对没有 ...

  8. 有谁知道Delphi中"窗口"的创建过程?

      求助:有谁知道Delphi中窗口的创建过程,此“窗口”不仅仅指 TForm 类型, 还包括一般的窗口控件,如TButton,TEdit等等,希望有能够十分详细的运作 过程,比如说CreatPara ...

  9. oracle中使用函数控制过程是否执行(结合job使用)

    oracle中使用函数控制过程是否执行(结合job使用时候,循环时间不好写的时候,可以此种方法比较方便) CREATE OR REPLACE FUNCTION wsbs_pk_date_validat ...

随机推荐

  1. 51nod 1225

    题目 题解:看数据范围就估计是根号算法.考虑我们要求的式子: $ \sum\limits_{i = 1}^n {n - \left\lfloor {\frac{n}{i}} \right\rfloor ...

  2. jboss7的JAX-WS客户端

    jboss版本 jboss-eap-6.1, 实际上就是jboss-as-7.x.fianal 本篇讨论使用jboss7自带的cxf库,使用wsdl文件生成和部署jax-ws的客户端程序. 首先明确一 ...

  3. 安装NXNET

    cran <- getOption("repos") cran["dmlc"] <- "https://s3-us-west-2.amaz ...

  4. Ubuntu 17.4下如何安装VMwareTools

    解压vmware-tools-distrib 运行vmware-install.pl安装过程中间出现错误,要求选择"ifconfig"工具.由于ifconfig工具过时逐渐被各大厂 ...

  5. HTML5响应式导航

    HTML5响应式导航HTML5,响应式,jQuery特效,HTML5导航,HTML5响应式导航是一款基于HTML5实现的深灰色响应式导航菜单. 地址:http://www.huiyi8.com/sc/ ...

  6. jQuery Validate 插件为表单提供了强大的验证功能

    之前项目开发中,表单校验用的jQuery Validate 插件,这个插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的 ...

  7. Mysql中文检索匹配与正则

    今天在用sql模糊查询包含字母d的时候,发现一些不包含此字母的也被查询出来了: SELECT * FROM custom WHERE custom_realname LIKE '%d%' 查询了一下, ...

  8. C字符串末尾的'\0'问题

    C语言的字符串要注意最后一位默认是'/0'的问题.这是一个易错点. strlen()计算长度时不考虑末尾的'\0' //例1 void test1() { ]; "; strcpy( str ...

  9. Python 实现「食行生鲜」签到领积分

    用过食行生鲜的同学应该知道,每天可以在食行生鲜签到,签到可以领到 20 积分,在购物时可以抵 2 毛钱.钱虽少,但是积少成多,买菜时可以抵扣一两块钱还是不错的. 今天我们就用 Python 来实现自动 ...

  10. XML配置中 引入外部property文件

    新建properties配置文件 内容如下: jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc\:mysql\://localhost\ ...