连接中断原因也可能是增加了新的链路,导致其中一台交换机重新选举根端口,最终认为新链路所连端口是根端口,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. jetty使用jndi数据源

    之前将项目正常的数据源统一切换成jndi访问的形式(是将c3p0以mbean形式安装到jboss做的数据连接池), 本地测试用的jetty服务器,为了统一数据库访问部分,我也查看文档找到了jetty提 ...

  2. Contiki clock模块

    一.functions for handling system time clock_time_t clock_time(void);//return the current system time ...

  3. css(4)

    类选择器和id选择器都有父子选择器. 在css文件中国,有时候为了简化样式,可以把相同的样式拿出来放在一起. display:inline display:block 行内元素里只能放行内元素,而块内 ...

  4. Log4Net的使用之winform

    当我们将asp程序部署到远程服务器上的时候,如果遇到程序错误,如何能快速的判断我们程序的错误呢.所以-->Log4Net作为记录日志的一大神器,不得不学会熟练使用啊!没有那么多的原理,照猫画虎的 ...

  5. vs中解决方案、项目、类及ATL的理解

    解决方案,是对所有要完成工作的统称,一般叫Solution. 项目,也叫工程,是将解决方案分成若干个模块进行处理,一般叫做Project.添加项目就是添加工程.解决方案是所有项目的总和. 一个项目里面 ...

  6. SoundHound Inc. Programming Contest 2018

    A - F Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100 points Problem Statement You are give ...

  7. nginx开发笔记_ngx_hash源码解析

    ngx_hash源码解析 ngx_hash是nginx中的hash表结构,具有以下特点: 静态结构,hash表创建后无法动态添加/删除KV. 采用连续存储方式解决碰撞问题.即出现碰撞的KV存放在连续地 ...

  8. P2060 [HNOI2006]马步距离

    P2060 [HNOI2006]马步距离 数据到百万级别,明显爆搜不行,剪枝也没法剪.先打表.发现小数据内步数比较受位置关系影响,但数据一大就不影响了.大概搜了一个20*20的表把赋值语句打出来.判断 ...

  9. javacpp-FFmpeg系列之2:通用拉流解码器,支持视频拉流解码并转换为YUV、BGR24或RGB24等图像像素数据

    javacpp-ffmpeg系列: javacpp-FFmpeg系列之1:视频拉流解码成YUVJ420P,并保存为jpg图片 javacpp-FFmpeg系列之2:通用拉流解码器,支持视频拉流解码并转 ...

  10. Enum定义位域, 即可以通过位操作来产生未命名的值

    通过FlagsAttribute可以实现. // A bit field or flag enumeration of harvesting seasons. [Flags] public enum ...