STP概述简介及生成树算法
目录:
STP概述
STP简介
生成树算法
选择根网桥
选择根端口
选择指定端口
BPDU(桥协议数据单元)
STP利用BPDU选择根网桥
STP的收敛
VLAN与STP关系
MSTP多生成树协议华为命令
STP概述
交换网络环路的产生:
广播风暴的形成
多帧复制
MAC地址紊乱

广播风暴:三个交换机两两相连,互相广播,无限转发,产生广播风暴。
多帧复制:PC1发送的数据可以从SW1经过SW3再到SW2传达给PC2,也可以从SW1到SW2再到PC2,导致PC2收到两次数据帧。
MAC地址紊乱:产生环路后,PC1发送数据SW1向SW3进行广播使得SW3F0/1记录下PC1的MAC地址,SW1传到SW2,SW2再向SW3进行广播,导致SW3F0/2又记录了PC1的MAC地址,来回重复绑定MAC地址。
STP简介
STP - Spanning Tree Protocol(生成树协议)
1.逻辑上断开环路,防止广播风暴的产生
2.当线路故障时,阻塞接口被激活,恢复通信,起到备份作用
如图,将SW1当成树根,数据从SW1向上传输,比如我们在SW2与SW3之间进行逻辑阻塞,SW3不会广播SW2再广播到SW1,SW1不会广播到SW2再广播SW3,防止了广播风暴的产生。
如果SW1与SW2之间的线路出现故障,会激活SW2与SW3之间的逻辑阻塞,使得SW1的数据可以经过SW3再传输至SW2,恢复通信,起到备份作用。
如果是物理上进行阻塞,将线路断开或端口阻塞,当其他线路出现故障时就无法通信了。
生成树算法
生成树算法分为三个步骤
1.选择根网桥(交换机)
2.选择根端口
3.选择指定端口
排除根端口和指定端口,剩下的就是阻塞端口
选择根网桥
如图,网桥ID由网桥优先级和网桥MAC地址组成,网桥MAC地址就是交换机MAC地址
为什么网桥ID是唯一的,因为MAC地址是全球唯一的。
首先,先去对比网桥优先级,优先级的值越小,越优先。
优先级取值范围:0~65535 缺省值(默认值):32768
如果优先级一致,就去看网桥MAC地址,值越小,越优先。
选择根端口
1.到根网桥最低的路径成本
2.直连网桥ID最小
3.端口ID最小
根路径成本
网桥到根网桥的路径上所有链路的成本之和
带宽与路径成本之间的关系:

带宽越低,成本越高,带宽越大,成本越低
根网桥上的端口都不是根端口,而是指定端口
在每个网段上都要选择一个指定端口
选择指定端口
非根网桥的指定端口,选择顺序:
1.根路径成本较低
2.所在的交换机的网桥ID值较小
3.端口ID的值较小

如图,SW2为根网桥,那么SW2上的两个端口SW2.1 ,SW2.2都是指定端口,SW1.1与SW3.1到达根网桥路径成本相同,所以两个都是根端口,每个网段都要选择一个指定端口,SW1与SW2之间SW2.1为指定端口,SW2与SW3之间SW2.2为指定端口,那么SW1与SW3之间有一个指定端口,SW1与SW3都不是根网桥,所以非根网桥的指定端口,选择顺序:1.根路径成本较低2.所在的交换机的网桥ID值较小
3.端口ID的值较小。那么SW1与SW3之间的指定端口为SW3.2,SW1.2就是阻塞端口。
试题:找出下图中的根网桥,根端口,指定端口
‘’
解:如图,三个网桥的优先级相同,进行网桥MAC地址比较,经比较,得出SW1为根网桥,那么SW1上的F0/24和F0/23就是指定端口,由于SW3F0/23和SW2F0/24与SW1端口的路径成本相同,所以SW2F0/24和SW3F0/23都是根端口,每个网段都要有一个指定端口,所以SW2F0/23与SW3F0/24之间要选择一个指定端口,两边路径成本一样,优先级一样,MAC地址为SW2的小,所以SW2F0/23为指定端口,那么剩下的SW3F0/24就是阻塞端口。
BPDU(桥协议数据单元)
Bridge Protocol Data Unit - 桥协议数据单元
使用组播通信
概念:BPDU是个传输载体,用来交换机之间交换网桥ID,根路径成本等信息。
BPDU类型
配置BPDU
拓扑变更通告(TCN)BPDU
BPDU报文字段
根网桥ID , 根路径成本 ,发送网桥ID , 端口ID
STP利用BPDU选择根网桥
当交换机启动时,假定自己是根网桥,在向外发送的BPDU中根网桥ID字段填写自己的网桥ID

交换机刚启动时,每个都认为自己是根网桥,它们会把自己的网桥ID填写在BPDU根网桥字段中,然后互相发送,经过比较网桥ID最小的,为根网桥,这是一个互相确认的过程,最后协商完成进入稳定状态称为:收敛状态。
STP的收敛
交换机端口的STP状态 : 此图自下往上看

刚开机时禁用状态,之后进入阻塞状态,只接受BPDU,正常环境下,一般不会同时打开所有交换机,第一台开的过一定时间接收不到BPDU就会进入侦听状态,构建活动拓扑表示这时它不但会接收BPDU还具有转发BPDU的功能,之后就进入学习状态,会构建网桥表,就是MAC地址表,也会进行转发和接收BPDU,之后进入转发状态,会接收转发用户数据,也会进行转发和接收BPDU,如果网络链路发生故障,它会解开相应的阻塞端口,恢复通信。
VLAN与STP关系
IEEE通用生成树(CST)不考虑VLAN
经过STP计算,会有一条链路被断开
MSTP多生成树协议华为命令
可为每个VLAN或者多个VLAN为一组构造一个生成树,实现网络的负载分担(均衡)
将SW1、 SW2分別做vlan10、 vlan20的根网桥
[SW1]stp mode mstp
将交换机配置成MSTP模式,MSTP兼 容STP/RSTP。
[SW1]stp region-configuration
进入MSTP域视图MSTP配置模式
[ SW1-mst-region] region-name huawe 1
配置MSTP域的域名为huawei1,缺省为交换设备主控板上管理网口的MAC地址。
[ SW1- -mst- -region] revision-level 1
配置MSTP域的MSTP修订级别的1,缺省情况下MSTP域的MSTP修订级别0,需要将各设备的MSTP修订级别修改为一致
配置多生成树实例和VLAN的映射关系,同一vlan的数据只能对应一个实例,而一个实例可以对应多个vlan(instance1vlan2to10)
[ SW1 -mst-region] instance 1 vlan 10
将vlan 10加入实例1中
[ SW1-mst-region] instance 2 vlan 20
将vlan 20加入实例2中
[ SW1 -mst-region] check region-configuration
查看MSTP域配置参数
[ SW1 -mst-region] active region-configuration
激活MSTP域的配置(必须配置)
[ SW1-mst-region]quit
退出配置模式
[SW1]stp instance 1 root primary
配置此交换机实例1的主根桥
[SW1]stp instance 2 root secondary
配置此交换机为实例2的备份根桥
[SW2]stp mode mstp
[SW2]stp region-configuration
[ SW2 -mst- region] region-name huawei1
[ SW2 -mst- region] revision-level 1
[ SW2-mst-region] instance 1 vlan 10
[ SW2-mst-region]instance 2 vlan 20
[SW2- mst- reg1on] active reg1on- configuration
[ SW2 -mst- region] quit
[SW2]stp instance 1 root secondary
配置sw1交换机为实例1的备份根桥
[SW2]stp instance 2 root primary
配置sw2交换机为实例2的主根桥
[SW3]stp mode mstp
[SW3]stp region-conf iguration
[ SW3-mst- region] region-name huawei 1
[SW3-mst-region]revision-level 1
[ SW3-mst-region] instance 1 vlan 10
[SW3-mst - region] instance 2 vlan 20
[SW3 -mst- region]active region-configuration
在所有交换机上启用MSTP
[SW1]stp enable
[SW2]stp enable
[SW3] stp enable
[SW3]dis stp brief
查看STP接口角色及状态信息
--------修改交换机优先级值-------
[SW1] stp priority 0
数值要为4096的倍数
[SW1]stp root primary
优先级变为0
[SW1]dis stp
查看stp信息,可以确定哪个是根网桥
STP概述简介及生成树算法的更多相关文章
- STP生成树算法
生成树算法第一:决定谁是“根网桥”对比各个网桥ID,先对比ID中的优先级,优先级相同的时候对比网桥MAC地址,对比依据是谁的值最小,谁是“根网桥” 第二:决定哪些是“根端口”窍门——每个非根网桥上都有 ...
- Hihocoder 之 #1097 : 最小生成树一·Prim算法 (用vector二维 模拟邻接表,进行prim()生成树算法, *【模板】)
#1097 : 最小生成树一·Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可 ...
- HealthKit开发快速入门教程之HealthKit开发概述简介
HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为“He ...
- Python运维开发基础-概述-简介
Python基础知识分为以下几块 1.Python概述 2.基础语法 3.数据结构 4.Python进阶 5.实训案例 一.Python概述 1.Python简介 2.Hello World 3.搭建 ...
- 体绘制(Volume Rendering)概述之3:光线投射算法(Ray Casting)原理和注意要点(强烈推荐呀,讲的很好)
转自:http://blog.csdn.net/liu_lin_xm/article/details/4850609 摘抄“GPU Programming And Cg Language Primer ...
- SSH工作过程简介和SSH协议算法集简介
SSH简介 SSH是Secure Shell(安全外壳)的简称,是一种在不安全的网络环境中,通过加密机制和认证机制,实现安全的远程访问以及文件传输等业务的网络安全协议. SSH协议采用了典型的客户端/ ...
- 蚁群算法简介(part3: 蚁群算法之更新信息素)
信息素的局部更新策略 每只蚂蚁在构造出一条从起点到终点的路径后,蚁群算法还要求根据路径的总长度来更新这条路径所包含的每条边上信息素的浓度(在旅行商问题中每座城市是图中的一个节点,城市两两间有一条边 ...
- 蚁群算法简介(part2: 蚁群算法之构造路径)
蚁群算法主要可以分为以下几个步骤:首先,蚁群中的每只蚂蚁都根据地面上信息素浓度的大小找出一条从原点通向终点的遍历所有城市一次的路径(构造路径):然后每只蚂蚁沿着自己刚刚找到的路径回溯,在路径经过的各个 ...
- 从零开始学C++之STL(四):算法简介、7种算法分类
一.算法 算法是以函数模板的形式实现的.常用的算法涉及到比较.交换.查找.搜索.复制.修改.移除.反转.排序.合并等等. 算法并非容器类型的成员函数,而是一些全局函数,要与迭代器一起搭配使用. 算法的 ...
随机推荐
- JDK8中Stream使用解析
JDK8中Stream使用解析 现在谈及JDK8的新特新,已经说不上新了.本篇介绍的就是Stream和Lambda,说的Stream可不是JDK中的IO流,这里的Stream指的是处理集合的抽象概念『 ...
- .net core 使用阿里云分布式日志
前言 好久没有出来夸白了,今天教大家简单的使用阿里云分布式日志,来存储日志,没有阿里云账号的,可以免费注册一个 开通阿里云分布式日志(有一定的免费额度,个人测试学习完全没问题的,香) 阿里云日志地址: ...
- Paddle概述
Paddle概述 本文结合深度学习理论与实践,使用百度飞桨平台实现自然语言处理.计算机视觉及个性化推荐等领域的经典应用. 实践部分使用飞桨深度学习开源框架,适配最新的2.0版本,默认使用动态图编程范式 ...
- GPU编程和流式多处理器(七)
6. 杂项说明 6.1. warp级原语 warp作为执行的原始单元(自然位于线程和块之间),重要性对CUDA程序员显而易见.从SM 1.x开始,NVIDIA开始添加专门针对thread的指令. Vo ...
- 共享CUDA内存
共享CUDA内存 进程间共享 此功能仅限于Linux. 将设备阵列导出到另一个进程 使用CUDA IPC API,可以与同一台计算机上的另一个进程共享设备阵列.为此,请使用.get_ipc_handl ...
- Springboot-Redis分布式锁 -----StringRedisTemplate
这里引用别人, 用来自己回忆 https://blog.csdn.net/jack_shuai/article/details/91986690 https://www.cnblogs.com/mox ...
- Jmeter(五十二) - 从入门到精通高级篇 - jmeter之跨线程组传递参数(详解教程)
1.简介 之前分享的所有文章都是只有一个线程组,而且参数的传递也只在一个线程组中,那么如果需要在两个线程组中传递参数,我们怎么做呢?宏哥今天就给小伙伴或者童鞋们讲解一下,如何实现在线程组之间传递参数. ...
- JMeter定时器设置延迟与同步
JMeter定时器一般用来设置延迟与同步.它的作用域和优先级如下: 定时器的优先级高于Sampler. 在同一作用域(比如控制器下)有多个定时器存在,每个定时器都会执行. 在某一Sampler节点下的 ...
- JVM快速入门(上)
前言 根据狂神说的JVM快速入门做了以下笔记,讲的很好的一个博主,给小伙伴们附上视频链接狂神说JVM快速入门 接下来我按照他所讲的内容给大家记录一些重点! 一.JVM体系结构 .java经由ja ...
- 【linux】驱动-12-并发与竞态
目录 前言 12. 并发&竞态 12.1 并发&竞态概念 12.2 竞态解决方法 12.3 原子 12.3.1 原子介绍 12.3.2 原子操作步骤 12.3.3 原子 API 12. ...