1.选择根交换机
2.确定根端口
3.确定指定端口
 
 

1.选择根交换机
 
stp中只有一台交换机能成为根(Root),每台交换机按自己的STP逻辑,先发一个hello称自己为根,如果收到了比自己更优的hello,它会停止产生hello,以停止声明自己是根。然后交换机开始转发更优的hello。逐渐地,除了拥有最低网桥ID的交换机外,所有交换机停止生成自己的hello,最终这台交换机赢得选举,成为根交换机。
 
原802.1D网桥ID中有两个字段:
2字节的优先级,6字节的MAC
原8021.D网桥ID的定义记录在802.1t修正案中,后整合到802.1D-2004中,下为原始格式与新格式
 
 

格式的改变主要是因为出现了PVST+和MST支持的多生成树。
如果使用旧格式,使用每vlan生成树,vlan让物理交换机像多台逻辑交换机一样操作,则网桥ID都是一样的(逻辑为多层拓扑),违背802.1D设计要求:每个交换机使用不同的网桥ID。所以就为每个vlan使用不同的mac地址,但这同时也消耗了每台交换机中的大量预留MAC地址
 
使用新格式后,结合vlan id,就不需要为每台交换机都预留那么多mac了。通过全局命令spanning-tree extend system-id,可以查看交换机上使用的系统ID拓展。
 
2.确定根端口
 
在选择出根交换机后,其他交换机需要确定他们各自的根端口(RP),过程如下
(1).根交换机每隔hello间隔(默认2秒)发送一个hello,hello中的RBID和SBID为根ID,RPC为0,SPID为出端口标识符
(2).每台非根交换机在每个端口上收到一个bpdu后,就会将端口的开销值加到这个bpdu的RPC值中,并得到结果bpdu(Resulting BPDU)。然后收到最优结果bpdu的端口被选举为根端口。
(3).非根交换机在根端口上收到hello,在更新完其中的RPC,SBID,SPID和消息老化字段之后,会通过其他指定端口转发这个hello,非根交换机在其他端口上收到的hello,只会被处理,但不转发。
(4)交换机不会从根端口和阻塞端口转发出hello。
 
在最新的Catalyst交换机上使用PVST或快速PVST时,使用的开销值对应于802.1D-1998版本标准;使用MSTP时,对应于802.1D-2004版本。对于PVST和快速PVST,工程师可以使用全局配置命令spanning-tree pathcost method long启用802.1D-2004开销。默认配置为spanning-tree pathcost method short,即使用旧版本的开销。
 
以下是默认端口开销
 

3.确定指定端口
 
在收敛完成的STP拓扑中,只有一台交换机负责转发Hello到每个LAN网段。转发Hello到LAN网段的交换机称为该网段的指定交换机,指定交换机上用来转发Hello到网段的端口称为指定端口(DP)。交换机上所有既不是根端口也不是指定端口的其他端口将被移至阻塞状态。
 
选举规则如下:
1.去往根的路径开销最低的交换机;
2.网桥ID最低的邻居交换机;
3.网桥ID最低的邻居上端口ID最低的端口。

STP-2-三个选择的更多相关文章

  1. Java语言程序设计(基础篇) 第三章 选择

    第三章 选择 3.8 计算身体质量指数 package com.chapter3; import java.util.Scanner; public class ComputeAndInterpret ...

  2. Java语法基础(三)----选择结构的if语句、switch语句

    [前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过 ...

  3. Java 第三章 选择结构

    第三章   选择结构 if基本语法: if(条件){// 表达式 // 代码块 } eg: int a = 10; if(a > 1){ System.out.println("内容& ...

  4. 排序算法总结(三)选择排序【Select Sort】

    一.原理 选择排序的原理非常简单,就是选出最小(大)的数放在第一位,在剩下的数中,选出最小(大)的数,放在第二位......重复上述步骤,直到最后一个数. 二.过程 原始数据 第一次排序,选出最小的数 ...

  5. Jquery学习(三)选择

    1.Jquery最重要的是选择. 学习要点:        1.简单选择器        2.进阶选择器        3.高级选择器 ①简单选择器. 最简单的也就是最经常使用的,最经常使用的一般也是 ...

  6. Python基础三(选择,循环)

    序 首先我们知道程序的执行有三种结构:顺序.选择.循环三种结构,而为了方便我们书写和多次利用我们就需要把一段代码封装器来,这就是方法.今天我就说的是程序的基本结构的格式和方法. 注:所有的程序都可以通 ...

  7. Java基础(三)选择和循环结构

    一.选择结构,条件判断 1.if 语句 一个 if 语句包含一个布尔表达式和一条或多条语句.如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码. impor ...

  8. DL基础补全计划(三)---模型选择、欠拟合、过拟合

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  9. Java 第三章 选择结构1

    选择结构(一) 会使用基本的 if 选择结构 掌握逻辑运算符,掌握多重 if 选择结构 , 掌握嵌套 if 选择 结构 为什么需要 if 选择结构 例如: 如果张浩的 java 考试成绩大于 98分, ...

  10. 使用java理解程序逻辑 第三章 选择结构一

    if 选择结构: if(条件){       代码块  //条件成立后要执行的代码.可以是一条语句,也可以是一组语句 } 可以处理单一或组合条件的情况. if-else 选择结构: if(条件){   ...

随机推荐

  1. AndroidContactsTest.java

    以下代码使用ContactManager.apk进行测试 package com.saucelabs.appium; import io.appium.java_client.AppiumDriver ...

  2. iOS中版本号的获取及其意义

    //对应的是发布的版本号,也就是build #define APP_VERSION [[[NSBundle mainBundle] infoDictionary] objectForKey:@&quo ...

  3. Android如何配置init.rc中的开机启动进程(service)【转】

    本文转载自:http://blog.csdn.net/qq_28899635/article/details/56289063 开篇:为什么写这篇文章 先说下我自己的情况,我是个普通的大四学生,之前在 ...

  4. hihocoder #1094 : Lost in the City微软苏州校招笔试 12月27日 (建图不大【暴力枚举】 子图的4种形态 1Y )

    #1094 : Lost in the City 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi gets lost in the city. He ...

  5. CSU 1554 SG Value —— 思维

    题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1554 Description The SG value of a set (mult ...

  6. ubuntu nginx 安装 certbot(letsencrypt)

    https://certbot.eff.org 到上面网站按照步骤安装certbot, 安装完成后,certbot 生成证书有两种方式 第一种:standalone模式,certbot 会启动自带的n ...

  7. Grunt 自动编译 Less 文件配置

    1.安装Grunt http://www.gruntjs.net/getting-started 2.编辑 package.json 文件 { "name": "Grun ...

  8. Opencv— — Circle Filter

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  9. python 复制文件流程

    例子代码: [root@master script]# vim copy_file.py #!/usr/bin/python # -*- coding:utf-8 -*- old_file_name ...

  10. 洛谷 P4245 [模板]任意模数NTT —— 三模数NTT / 拆系数FFT(MTT)

    题目:https://www.luogu.org/problemnew/show/P4245 用三模数NTT做,需要注意时间和细节: 注意各种地方要取模!传入 upt() 里面的数一定要不超过2倍 m ...