如图所示有三台交换机,从SW1到SW3优先级分别为4096、8192、32768

整个STP运行情况如下:

第一步:根桥选举

假设三台交换机是同步启动的,刚开始的时候,三台交换机都认为自己是根交换机,将自己所有的端口都设置为指定端口,并向外发送配置BPDU,在配置BPDU中起到根桥选举的多元组是{根桥ID、根路径开销、网桥ID、发送端口ID}(如果四元组都一样再看接受端口ID。)

SW1的配置BPDU中的4元组为{4096.4c1f-cc43-24cf、0、4096.4c1f-cc43-24cf 、portID},为了方便,之后用交换机名字代表它的桥ID。SW2、SW3的配置BPDU的四元组分别为{SW2、0、SW2、portID}、{SW3、0、SW3、portID}。

对于SW1,它从G1和G2口会分别受到SW2和SW3发来的BPDU,通过与自己发送的BPDU比较发现,自己两个端口发送的BPDU分别都比从两个端口接受到的BPDU更加优秀,所以SW1忽略收到的配置BPDU并确定自己是根桥,然后按照Hello time从G1和G2这两个指定端口发送自己的配置BPDU。

对于SW2,它从G1和G3端口分别接收到SW1和SW3发送过来的配置BPDU,发现从G1收到的BPDU最优,于是在自己的G1端口用SW1发送过来的配置BPDU替换自己之前的BPDU,从G2口收到的配置BPDU不如自己的优秀,所以忽略。综合比较接收和自己发送的配置BPDU,选出G1为根桥。

对于SW3,它从G2和G3端口分别接收到SW1和SW1发送过来的配置BPDU,发现从两个口端接收到的BPDU都比自己的优秀,于是在G2和G3端口分别用SW1和SW2发送过来的BPDU来替换自己的BPDU(这里的替换是指把端口里缓存的BPDU换掉)。综合比较接收和自己发送的配置BPDU,选出G1为根桥。

第二步:非根桥的根端口选举   

SW2的 G1端口现在缓存的是SW1发送过来的BPDU,G3端口缓存的是自己的BPDU,通过比较两个端口缓存的BPDU优先级可以发现G1缓存的更加优秀,所以G1端口成为SW2的根端口。

SW3的G2端口现在缓存的是SW1发送过来的BPDU,G3端口缓存的是SW2发送过来的BPDU,通过比较这两个端口缓存的BPDU优先级可以发现G2端口缓存的更加优秀,所以G2端口成为SW3的根端口。

第三步:非根桥交换机非根端口的BPDU计算

SW2从G1口接收的BPDU以及现在G1口缓存的BPDU是{SW1,0,SW1,portID},SW2给除了根端口外的其他端口重新计算一份BPDU,SW2的G3端口重新计算的BPDU为{SW1,20000,SW2,portID}。

同理SW3上的G3端口重新计算出的BPDU为{SW1,20000,SW3,portID}。

注意:如果一台非根桥交换机有多个非根端口,则每个端口都要重新计算BPDU,每个端口重新计算的BPDU的根桥ID,根路径开销,网桥ID都一样,不同的是portID。

第四步:选举DP

SW2的G3端口和SW3的G3端口开始相互发送重新计算后的BPDU来选举DP,SW2发送自己G3口缓存的BPDU{SW1,20000,SW2,portID},SW3也发送自己G3缓存的BPDU{SSW1,20000,SW3,portID}由于SW2发送的BPDU更优秀,所以SW2的G3口成为指定端口。

SW2的G3口收到SW3的G3口发送的BPDU时,由于自己缓存的BPDU更优秀,所以它会忽略收到的BPDU;SW3的G3口收到SW2的G3口发送的BPDU时,由于自己缓存的BPDU没有收到的优秀,所以这个时候SW3的G3口会更新自己G3口的BPDU为{SW1,20000,SW2,portID}

第五步:阻塞端口

SW3的G3口现在存储的BPDU是{SW1,20000,SW2,portID},而它从根端口计算得到的BPDU是{SW1,20000,SW3,portID},很明显,从根端口计算得到的BPDU现在没有它自己缓存的BPDU优秀,所以现在SW3的G3口被阻塞。

注意:华为的STP阻塞端口有两种状态:BP和AP;因为SW3缓存的BPDU的桥ID和自己不一样,所以SW3的G3成为AP。(关于AP和BP端口的详细分析见文章“如何决定AP和BP端口”)

小结:华为实现中STP运行分5步骤

1、根桥选举(比较不同交换机发送的BPDU,谁小选谁)

2、非根桥根端口选举(比较本交换不同端口缓存的BPDU,谁小选谁)、

3、非根端口BPDU计算(以根端口缓存的BPDU为原型计算交换机其他端口的BPDU)

4、选举DP(同一网段上BPDU最优的端口成为根端口)

5、阻塞端口(同一网段上除了一个DP端口,其他端口都会被阻塞,和DP端口在同一交换机上则成为BP,和DP不在一个交换机上的端口成为AP)

华为实现中:STP运行机制实例分析一相关推荐

  1. java 获取发布后的路径问题_Java中的路径问题实例分析

    Java中的路径问题实例分析 前言:关于Java中得路径问题,网上有很多获取的答案,我这篇文章的目的在于说明获取路径时一些不常见的概念.在实际应用中使用的比较多的就是,当前路径和配置文件的路径(其他文 ...

  2. python中property函数_python 邮件表格Python中property函数用法实例分析

    本文实例讲述了Python中property函数用法.分享给大家供大家参考,具体如下: 通常我们在访问和赋值属性的时候,都是在直接和类(实例的)的__dict__打交道,或者跟数据描述符等在打交道.但 ...

  3. 计网实验四—TCP Tahoe与Reno运行机制对比分析

    计算机网络实验四--TCP Tahoe与Reno运行机制对比分析 一.实验目的 二.实验内容 三.实验原理 TCP 基于窗口的拥塞控制策略 1.加法增加乘法减少(AIMD)窗口算法 2. TCP 拥塞 ...

  4. python中max函数用法_Python中max函数用法实例分析

    Python中max函数用法实例分析 更新时间:2015年07月17日 15:45:09 作者:优雅先生 这篇文章主要介绍了Python中max函数用法,实例分析了Python中max函数的功能与使用 ...

  5. python默认参数举例_Python中的默认参数实例分析

    本文研究的主要是Python中的默认参数的相关内容,具体如下. 熟悉C++语言的可以知道,C++语言中的默认参数是写在函数声明中的,为语法糖,与函数的调用无关,是在函数调用的时候由编译器补齐参数然后进 ...

  6. 【设计模式】装饰者模式 ( 概念 | 适用场景 | 优缺点 | 与继承对比 | 定义流程 | 运行机制 | 案例分析 )

    文章目录 I . 装饰者模式概念 II . 装饰者模式适用场景 III . 装饰者模式优缺点 IV . 装饰者模式与继承对比 V . 装饰者模式相关设计模式 VI . 装饰者模式四个相关类 VII . ...

  7. 数据挖掘技术在信用卡业务中的应用及实例分析

    信用卡业务具有透支笔数巨大.单笔金额小的特点,这使得数据挖掘技术在信用卡业务中的应用成为必然.国外信用卡发卡机构已经广泛应用数据挖掘技术促进信用卡业务的发展,实现全面的绩效管理.我国自1985年发行第 ...

  8. 索引原理及项目中如何使用索引实例分析

    一.索引原理: 为认识索引工作原理,首先有必要对数据表的基本结构作一次全面的复习. 当一个新表被创建之时,系统将在磁盘中分配一段以8K为单位的连续空间,当字段的值从内存写入磁盘时,就在这一既定空间随机 ...

  9. java程序的运行机制详细分析

    转自:http://hi.baidu.com/suny_duan/blog/item/074f9afb09f08c9b58ee901b.html JVM(Java虚拟机)一种用于计算设备的规范,可用不 ...

最新文章

  1. 【java】兴唐第二十三节课(暑期第一节TreeSet)
  2. 今天没有浪费时间,我努力了
  3. 【转载】Asp.Net MVC3网站并成功的连接了MongoDB
  4. 最大矩形面积_JAVA
  5. 牛客练习赛36 Rabbit的字符串(最小表示法)
  6. mysql查询是否用index_如何查看sql查询是否用到索引(mysql)
  7. SiameseSentenceSimilarity相似句子匹配分类项目
  8. opengl es纹理贴图效果实例
  9. java程序样例_一个完整的java程序示例
  10. 怎么用nuget程序包管理器安装jquery_Nuget服务器
  11. linux取消设置环境变量,linux设置环境变量
  12. My new English
  13. android 获取emui版本,华为手机为什么有EMUI版本和Android版本?
  14. 3┃音视频直播系统之浏览器中通过 WebRTC 直播视频实时录制回放下载
  15. 110kv/35kv变电所无功补偿技术的研究+matlab仿真模型
  16. 闲谈摩根 --兼答关于JP摩根和摩根斯坦利的渊源和区别,其他的摩根八卦
  17. 基于Java的微小企业人事管理系统的设计与实现 毕业设计-附源码231012
  18. 【在线仿真】Arduino 超声波测距+LCD1602显示
  19. 华为桌面云虚拟机卸载VM Tools工具计算机蓝屏开机不了-完美解决
  20. 声纹识别--基础学习笔记

热门文章

  1. 《万历十五年》段落摘抄
  2. 易信公众平台开发从入门到精通之获取凭证利用SAE缓存
  3. 深度学习技巧之Early Stopping(早停法)
  4. C4D云渲染平台哪家好?
  5. 原生JavaScript实现打字游戏
  6. 预告+剧透!6期轻科幻题材连载即将开始(文末有福利)
  7. FFMPEG+mp3+mp4转换
  8. Flutter使用Scaffold报错。
  9. 手册上的GeoIP扩展详解,按手册整理了一遍
  10. heidisql ssh mysql_HeidiSQL连接到mysql服务器 – 丢失连接…服务器在读取初始