【HCIP学习】STP协议

news2024/11/23 20:39:50

一、STP协议出现背景(Spanning Tree Protocol,生成树协议

二层环路带来的问题:广播风暴;

MAC地址表的震荡;

二、STP定义

stp是二层网络中用于消除环路的协议,通过阻断冗余链路来消除,网络中可能存在的环路;

当前活动路径发生故障时,激活冗余备份链路,恢复网络连通性;

分析:STP会临时阻塞冗余链路的端口,被阻塞的端口不能收发数据,这时,就不会形成环路。

当主链路DOWN,被阻塞的链路会被启用,保证数据正常转发。

思考:阻塞端口怎么选?如下图,我们肯定希望阻塞10Mbps的。但阻塞谁,肯定有一个阻塞机制。

三、STP相关概念

BDPU:

1、定义:桥协议数据单元,用于传递STP协议相关报文
2、分类:
(1)配置BPDU:传递STP配置信息

网桥通过交互配置BPDU,获取STP计算所需的参数;

配置BPDU基于二层组播方式发送,目 的地址:01-80-C2-00-00-00;

配置BPDU只由根桥周期性发出,发送周期为Hello Time(2秒);

配置BPDU格式

配置BPDU老化时间为Max Age即10个hello time;

总结:配置BPDU是传递生成树选举所需信息的报文

(2)TCN BPDU:通告拓扑变更信息

注意区分:TC BPDU(根桥发出的拓扑变化信息,其他交换机收到后会将MAC地址表老化时间由300秒缩短到15秒)、

TCA BPDU(拓扑变化确认)

TCN BPDU(非根交换机发的拓扑变化通知,用于报错使用) 两者是属于配置BPDU中不同的flag置位

四、STP选举机制

BID中的优先级范围:

根桥选举的情况

思考1:下图交换机,谁是根网桥

答案1:A交换机

思考2:下图交换机的接口,谁是根端口

答案2:B的1口、C的1口

思考3:一个交换机上有多个口,到达根网桥的开销都是相同的,选不出来根端口,怎么办?

答案3:依据对端交换机BID小的优先级选举根端口,则D交换机的1口为根端口

思考4:依据端口ID小的优先的情况?

答案4:E的1端口为根端口

综上:选举出的根端口如下图所示:

指定端口的选举情况

阻塞端口:

STP选举完后,修剪的网络拓扑,一颗没有环路的树

注:选举根桥和端口角色同步进行,不分先后;

        stp计算时间是30秒;

总结:STP桥角色:根桥、非根桥

           端口角色:指定端口、根端口、阻塞端口

port id:格式:优先级+端口号,小优

              优先级0-240,默认128,必须是16的倍数

五、stp初始化流程---端口状态

端口状态

disable:禁用状态,被手动shutdown的端口。不发送配置BPDU,不进行MAC地址学习,不收发数据。

blocking:阻塞状态:不发送配置BPDU,不进行MAC地址学习,不收发数据。

listening:监听状态,发送配置BPDU,不进行MAC地址学习,不收发数据,持续15秒。

learning:学习状态,发送配置BPDU,进行MAC地址学习,不收发数据,持续15秒。

forwarding:转发状态,发送配置BPDU,进行MAC地址学习,收发数据

发送延迟的过程:

从中间状态listening经过一个延迟进入另一个中间状态learning;

从中间状态learning经过一个延迟进入另一个中间状态forWording

思考:当交换机A和B之间的链路down,故障切换(网络收敛)需要多长时间?

答案:需要30秒,因为上图中虽然有很多的阻塞口,可到底启用哪个口,就需要重新进行STP的选举过程。

六、STP计时器

hello time:2秒,配置BPDU的发送周期

max age:20秒,判断链路故障的时间,10个hello time周期

forwarding delay:15秒,状态切换延迟

STP收敛时间总结:

(1)初次收敛时间:

30秒(15侦听+15s学习):存在直连检测=本地仅存在一个阻塞端口,可以收到来自根桥的BPDU

分析:SW0上2口是阻塞口,当其上1口链路故障,2口只需经过30S就可以故障切换,因为它可以收到来自根桥的BPDU,所以不需要经过额外的20秒的故障检测机制。

(2)拓扑故障再收敛时间:

若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s  max age计时,同时阻塞接口进入15s侦听,15s学习,故总50s

七、STP拓扑变更机制

所以:拓扑变更后,要及时通知给上行交换机

工作原理:

1.交换机检测到拓扑变更,交换机向根网桥发起TCN BPDU;

max age超时/有接口变更为转发状态,判断为拓扑发生变更

交换机上有端口从forwarding或learning状态转变为blocking;

2.沿途的非根桥收到TCN BPDU后,会继续向根桥转发,并在根桥的下一轮配置BPDU中,把TCA(TC acknowledge)位置位

3.根桥收到TCN BPDU后,在下一轮配置BPDU中,把其TC位置位;

4.所有交换机收到TC置位的BPDU后,MAC地址表老化时间由300秒缩短到15秒

八、缺点

拓扑变更不灵活,主机频繁上下线,网络会产生大量TCN,导致网卡;

收敛时间长:拓扑层次越多,收敛时间越长,一个端口从blocking到forwarding至少需要30秒;

                      故障切换时间太长;

九、链路开销标准:

链路速率:100Mbps\1000Mbps\10Gbps

标椎:802.1D-1998

           802.1t(华为标准)

           私有标准(华三交换机私有)

十、STP实验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1690213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ganglia的安装使用

1.集群内分别安装epel-release依赖,更新yum源 sudo yum -y install epel-release 2.各节点上分别安装gmond sudo yum -y install ganglia-gmond 3.监控节点上安装gmetad和web(这里安装在node1上) sudo yum -y install ganglia-gmetad sudo yum -y insta…

关于阳光雨露外派联想的面试感想

最近在找工作,接到了一个阳光雨露外派联想的面试邀请。说实在的一开始就有不对劲的感觉。想必这就是大厂的自信吧,上就问能不能现场面试,然后直接发面试邀请。这时候我倒是没觉得有啥问题。 然后今天就去面试去了,住的比较偏&…

力扣HOT100 - 138. 随机链表的复制

解题思路: class Solution {public Node copyRandomList(Node head) {if(headnull) return null;Node p head;//第一步,在每个原节点后面创建一个新节点//1->1->2->2->3->3while(p!null) {Node newNode new Node(p.val);newNode.next …

jupyter notebook打开ipynb文件报错500

一开始能打开ipynb文件,但是内核挂掉了,显示如下图的报错 按照网上的教程卸载重装了jupyter 再启动jupyter notebook打开ipynb文件就报错500 网上教程说nbconvert要更新,重装之类的,我都试过了,仍然报错 最后安了个P…

1103 缘分数(测试点4)

solution 测试点4&#xff1a;1 1不符合缘分数定义&#xff0c;但是这个判断能够通过记得排除掉 #include<iostream> #include<cmath> using namespace std; bool judge(int n){int t sqrt(n);if(t * t n) return true;return false; } int main(){int n, m, c…

Deep Residual Learning for Image Recognition--论文笔记

论文笔记 论文来源&#xff1a; Deep Residual Learning for Image Recognition 代码来源 还没上传 1论文摘要的翻译 深度神经网络更难训练。我们提出了一个残差学习框架&#xff0c;以简化比以前使用的网络深度大得多的网络的训练。我们明确地将层重新表述为参考层输入的…

概念艺术3D三维虚拟展览系统让更多人一同领略艺术的无穷魅力

经过多年的技术积累&#xff0c;华锐视点3D云展平台为各位提供的网上3D书画展厅&#xff0c;是一个集逼真视觉体验与沉浸式感官享受于一体的线上艺术殿堂。通过先进的Web3D实时渲染技术&#xff0c;打造全景3D立体场景&#xff0c;让您仿佛置身于实体展厅之中&#xff0c;感受那…

报名倒计时两周|2024 OpenTiny 开源之夏项目直播解读回顾

5月16日&#xff0c;OpenTiny 开源社区成功举办了以《OpenTiny 开源之夏项目解读直播》为主题的直播活动。此次直播中&#xff0c;华为云的高级前端工程师曾令卡、华为云的高级前端工程师伍其和与10位开源之夏技术专家携手组成项目导师团&#xff0c;面向广大开发者一同深入探讨…

QT加载CAD文件(一)QCAD

近期为了加载.dxf格式的文件简单学习了下QCAD和LibreCAD编译和二次开发&#xff0c;QCAD 是一个免费、开源的计算机辅助绘图二维工具, 目前开源的二维CAD有QCAD、LibreCAD等&#xff0c;LibreCAD可以说是QCAD的分支版本。 一、QCAD 官网网址&#xff1a;https://www.qcad.org…

spring boot整合j2cache 关闭二级缓存

我们整合了 j2cache 的项目启动 日志会输出 一级缓存 二级缓存 一级是 EhCacheProvider 二级是 SpringRedisProvider 如果 我们不想用二级缓存 在 j2cache.properties 中 加上 j2cache.12-cache-open配置 值为 true/false true是启用二级缓存 false 是不起用 默认 true 所以 …

低价焕新用户体验生态 京东向上增长通道宽了

5月16日&#xff0c;京东对外发布了其2024年第一季度财报。整体来看&#xff0c;相当不错&#xff0c;营收与净利润双双超预期。一季度&#xff0c;京东集团收入达到2,600亿元人民币&#xff08;约360亿美元&#xff09;&#xff0c;同比增长7.0%&#xff0c;尤其是在持续补贴和…

Golang net/http标准库常用方法(三)

大家好&#xff0c;针对Go语言 net/http 标准库&#xff0c;将梳理的相关知识点分享给大家~~ 围绕 net/http 标准库相关知识点还有许多章节&#xff0c;请大家多多关注。 文章中代码案例只有关键片段&#xff0c;完整代码请查看github仓库&#xff1a;https://github.com/hltfa…

工具分享:VsCode注释神器,koro1FileHeader

他是有官方Wiki的。 https://github.com/OBKoro1/koro1FileHeader/wiki/ 项目在GitHub上开源。以下摘录部分wiki&#xff0c;用作介绍分享在这里插入代码片 如何找到setting.json设置模板 简单的输入命令 打开VSCode命令面板: mac: command p window: ctrl p输入> Ope…

windows查看mysql的版本(三种方法)

方法一&#xff1a;在win r 打开 cmd&#xff0c;在cmd命令状态下&#xff1a;mysql --help 回车即可 方法二&#xff1a;在mysql客户端窗口状态下&#xff1a;输入status并回车即可 在计算机开始菜单搜索以上应用打开即可进入mysql客户端窗口。 方法三&#xff1a;在mys…

[技术报告]InternLM2 Technical Report

摘要 像ChatGPT和GPT-4这样的大型语言模型&#xff08;llm&#xff09;的进化引发了人们对人工通用智能&#xff08;AGI&#xff09;出现的讨论。然而&#xff0c;在开源模型中复制这种进步一直是一个挑战。本文介绍了InternLM2&#xff0c;这是一个开源的大语言模型&#xff…

项目9-网页聊天室2(登录)

0.前端知识储备 Ajax请求中的async:false/true的作用 - front-gl - 博客园 (cnblogs.com) 01.前端页面展示 02.后端代码 2.1 CONTROLLER RequestMapping("/login")public Result login(String username, String password, HttpSession httpSession){User user …

零基础PHP入门(一)选择IDE和配置环境

配置环境 官网下载安装包&#xff0c;windows https://windows.php.net/download#php-8.3 我是下载的最新版&#xff0c;也可以切换其他版本 https://windows.php.net/downloads/releases/archives/ 下载好压缩文件后&#xff0c;双击解压到一个目录 D:\soft\php 复制ph…

指针变量加1为什么地址加了4?

#include <stdio.h> #include <stdlib.h> int main() {int a 1;int* ptr;ptr &a;printf("ptr is: %p\n", ptr);ptr;printf("ptr1 is: %p\n", ptr);return 0; }在上述代码中&#xff0c;首先定义了一个int类型的变量a&#xff0c;和一个i…

西门子CPU与汇川伺服通信与控制

西门子CPU与汇川620F伺服通信与控制 一、西门子CPU与汇川620F伺服通信与控制1、器件准备2、伺服软件设置3、PLC添加汇川伺服描述文件4、PLC编程调试5、总结 二、西门子s7-1500限位信号接到伺服的方法1、通过默认报文获取限位信号2、添加自定义报文获取限位信号3、总结 三、西门…

什么是DDoS流量清洗?

随着互联网的飞速发展&#xff0c;网络安全问题日益凸显&#xff0c;其中分布式拒绝服务&#xff08;DDoS&#xff09;攻击尤为引人关注。为了有效应对这一威胁&#xff0c;流量清洗服务应运而生&#xff0c;成为网络安全领域的一项重要技术。 流量清洗服务是一种专门针对DDoS…