路由交换04-----STP

news/2024/7/16 9:22:10

路由交换-----STP

STP协议(生成树协议)逻辑上断开环路,防止二层网络的广播风暴的产生。
为什么需要STP协议?
假设有这样一个拓扑:
1417438-20180721190411384-120215756.jpg
现在PC1ping网关192.168.1.3,而这个网关是不存在的,同时在LSW2上进行抓包。
1417438-20180721190415827-1307917942.jpg
可以看到这个网络里现在充斥着大量的重复包,形成了广播风暴,这种时候交换机的性能急剧下降,因为从PC1出去的包在LSW2上没有找到目标地址的MAC地址,这时交换机会将这个单播帧向除了源端口之外的其它端口转发,转发到其它交换机上,其它的交换机又会重复这个步骤,使得这个网络形成了环路,导致广播风暴,这时就引入了STP协议。

STP的作用

  • 消除环路,通过阻断冗余链路来消除网络中可能存在的环路。
  • 链路备份:当活动路径发生故障时,激活备份链路,即使恢复网络的连通性。

根桥选举
在STP网络中,会存在一个交换机为根桥,其他的交换机为非根桥,根桥是STP网络的逻辑中心,当根桥出现故障时,非根桥之间会交互BPDU信息并重新选举根桥。

在STP中有三种端口角色:根端口、指定端口、预备端口。
根端口:非根桥去往根桥路径最短的端口。
指定端口:是指所连网络转发配置BDPU的端口,根桥的每个端口都是指定端口。
预备端口:一个端口不是跟端口也不是指定端口,俺么这个端口就是预备端口,预备端口是被阻塞的。

根桥选举的依据是桥ID,桥ID是由桥优先级和MAC地址构成的,默认的桥优先级是32768,优先级的数值越小越优先也最容易被选举为根桥,如果优先级相同那么就比较MAC地址,MAC地址有效越优先。
默认情况下,每个交换机默认自己是根桥,然后通过指定端口向外发送BPDU报文,然后收到BPDU报文的交换机会将报文里的桥ID与自己的比较,相互比较之后选举出根桥。

根端口选举
每个非根桥都要选举一个根端口,即距离根桥最近的那个端口。选举根端口的过程是:

  • 非根交换机到根桥的链路开销。
  • 如果开销一样,比较上一级发送者的桥ID,选出发送者桥ID最小的对应端口。
  • 如果上一级发送者桥ID一样就比较发送端口的优先级,选出优先级最小的对应端口。
  • 如果发送端口的优先级也一样,再比较发送端口的端口号。

指定端口选举
指定端口就是发送BPDU报文的端口,指定端口的选举是这样的:

  • 首先比较路径开销,开销最小的为指定端口。
  • 如果开销相同比较端口所在交换机的桥ID,桥ID最新的端口选举为指定端口。
  • 如果桥ID比较不出来接着比较端口ID,端口ID最小的选举为指定端口。

转载于:https://www.cnblogs.com/Timesi/p/9347659.html


http://www.niftyadmin.cn/n/4008296.html

相关文章

浏览器常用快捷键

转载于:https://www.cnblogs.com/huideng/p/4821438.html

经典的文章无论如何也要再次转贴(Linux内核编译过程)

转帖]在VMware5.0环境下编译内核(kernel2.6.13)全过程 俗话说:"功夫不负有心人",通过编译Linux内核时才能真正体会到.曾经也失败过无数次,放弃过一段时间编译.最后通过自己不断的实践和在网上收…

互联网健康领域并购加速,天鸽互动诠释有钱就是任性

互联网行业对医疗行业的改造正在逐步深入,以健康服务这个细分领域为例,近年来已经有不少案例可以反映这一点,比如百度等互联网巨头在积极通过平台、大数据布局健康服务;另外,诸如上海松江区中心医院就推出了手机客户端…

【转】Delphi多线程学习(9):多线程数据库查询(ADO)

原文:http://www.cnblogs.com/djcsch2001/articles/2382559.html ADO多线程数据库查询通常会出现3个问题: 1、CoInitialize 没有调用(CoInitialize was not called);所以,在使用任何dbGo对象前,…

“小米平板2”浮出水面,高品质低价路线能否赢得市场

前不久,业界盛传小米平板2即将面世,经过一段时间的媒体热炒之后,小米平板2终于浮出水面,值得注意的是,此次大家期待的小米平板2实际上就是12月29日国内平板代表品牌之一的爱国者所推出的爱玩平板X86,说到这…

Java程序员必备技能

作为Java程序员,有很多技能非常重要,但很少有人要求你会。一下罗列的,基本上就是一些必须掌握的技能。 1.log4j日志框架 作为99%的JAVA开源框架的首选日志记录框架,掌握它,才能真正算一个Java web程序员。 …

简单易用的 OpenAi Java SDK 1.4.0 发布

推荐一套基于 SpringBoot 开发的全平台数据 (数据库管理工具) 功能比较完善,建议下载使用: github.com/EdurtIO/datacap 目前已经支持 40 多种数据源。国内首个应用 ChatGPT 到数据管理系统中项目。 OpenAI Java SDK 主要 为 Java 开发人员提供方便易用的 SDK 来与 …

编译KVM

编译KVMKVM可以说是JVM中比较小而且比较原始的一个版本。KVM是一般放置在嵌入式设备,比如手机等资源有限的终端内运行。KVM没有采用HotSpot JVM里面诸多优化技术,代码十分简单,有利于我们理解JAVA程序的执行过程。虽然KVM里面执行JAVA程序可能…