学习笔记——交换——STP(生成树)简介

一、技术背景

1、生成树技术背景

   

交换机单线路组网,存在单点故障(上左图),上行线路及设备都不具备冗余性,一旦链路或上行设备发生故障,业务将会中断。

为了使得网络更加健壮、更具有冗余性,将拓扑修改为(上右图)接入层交换机采用双链路,联到两台汇聚设备,构成一个物理链路冗余的二层环境,解决了单链路及单设备故障问题

但是这样也带来了一个大问题,就是二层物理环境存在环路

2、二层环路带来的问题

(1)典型问题一:广播风暴

网络中如若存在二层环路,一旦出现广播数据帧,这些数据帧将被交换机不断进行泛洪,从而在网络中造成广播风暴。(上左图)

广播风暴对网络的危害:将严重消耗设备资源及网络带宽,最终导致网络瘫痪。

(2)典型问题二:MAC地址漂移

          

1.PC发送数据帧给Server;

2.SW3的MAC地址表中没有匹配目的MAC的表项,于是将数据帧进行泛洪;

3.SW1及SW2都会收到这个数据帧并学习源MAC,同时将数据帧进一步泛洪;SW1及SW2又从自己另一个接口收到这个数据帧,于是MAC表又一次发生改变,如此往复。

(上右图)以SW1为例,5489-98EE-788A会不断的在GE0/0/1与GE0/0/2接口之间来回切换,这被称为MAC地址漂移现象

即使不是人为搭建冗余的物理环境而导致的环路,网络也有可能因为种种原因出现二层环路引发的故障。

交换机环路带来的问题:广播风暴、mac地址表不稳定、网络卡顿、网络不稳定、过多占用交换机的cpu和内存等等。

3、有没有什么办法解决环路的问题呢?

生成树(Spanning-tree)协议就是用于解决环路这个问题的。

什么是生成树?

1、解决二层环路。

2、防止广播风暴。 广播风暴造成的结果是什么?   造成广播风暴的原因是什么?

       广播报文在两个或多个交换机间大量的、重复的、无休止的传递。洪范、冗余链路。

3、防止MAC地址表的不稳定。

4、防止数据帧的重复拷贝。

    

通过在交换网络中部署生成树(Spanning-tree)技术能够防止网络中出现二层环路。

STP运行后,如果网络中存在环路,那么STP通过阻塞(Block)特定的接口从而打破环路,并且在网络出现拓扑变更时及时收敛,以保证网络的冗余性。(如上边左图所示)

当拓扑发生变更的时候生成树协议能够探测到这些变化,并且及时自动的调整接口状态,从而适应网络拓扑的变化,实现链路冗余。(如上边右图所示)

4、生成树协议在园区网络中的应用位置

5、二层环路与三层环路

常见环路主要分为:二层环路和三层环路。

(1)三层环路                    (2)二层环路

            

常见原因:路由环路           常见原因:网络中部署了二层冗余环境,或人为的误接线缆导致;

防环方法:                       防环方法:

1、通过动态路由协议防环。            1、需借助特定的协议或机制实现二层防环;

2、IP报文头部中的TTL字段用于防止报   2、二层帧头中并没有任何信息可用于防止数据帧被无

文被无止尽地转发。                   止尽地转发。

二、STP简介

1、STP概述

STP(spanning tree protocol,生成树协议) STP是一个用于局域网中消除数据链路层物理环路的协议,标准名称是 802.1D

运行该协议的设备通过彼此交互信息而发现网络中的环路对某些接口进行阻塞以消除环路

STP在网络中运行后会持续监控网络的状态,当网络出现拓扑变更时,STP能够感知并且进行自动响应,从而使得网络状态适应新的拓扑结构,保证网络可靠性。(下左图)

注意:在华为的交换机上,开机默认自动运行。

2、STP(生成树)作用

STP通过阻塞端口来消除二层交换机环路(交换机与交换机间),并能够实现链路备份的目的

消除环路:通过阻塞冗余链路消除网络中可能存在的网络通信环路。

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

解决方案:逻辑性阻塞某个接口. 使用STP来逻辑的阻塞某一个接口,使其只接收流量,不发送流量从而防止环路。

3、标准STP的缺陷

(1)收敛时间长

在默认情况下,STP的收敛时间为30s(侦听(Listening)+学习(learning)各15s),在某些场景下,收敛时间更是长达50s(例如根桥故障,不向外发送BPDU,交换机需要先等待20s的老化时间,再加上30s的侦听(Listening)+学习(learning)),在这个时间段内,会导致网络长时间的中断。

(2)拓扑变化时收敛机制不灵活

当企业上下班时间,每个员工将自己的PC进行开关机的操作,现网当中就会出现大量的TCN(拓扑变更) BPDU,影响设备的性能,而PC机器其实不需要参加到生成树计算当中。

BPDU转发时,唯一不变的是根桥的ID。

交换机只有在发送BPDU时,才会算上自己的开销,接受BPDU时,不会算上自己的开销(cost)。

指定端口(DP):发送最优的BPDU

根端口(RP):收最优的BPDU

阻塞端口(AP):既不是指定端口,又不是根端口,则为阻塞端口


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun    暗号:CSDN】

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

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

相关文章

网络学习笔记

一、网络的结构与功能 网络的鲁棒性与抗毁性 如果在移走少量节点后网络中的绝大部分节点仍然是连通的,那么就该网络的连通性对节点故障具有鲁棒性 网络上的动力学 动力系统:自旋、振子或混沌的同步、可激发系统 传播过程:信息传播与拥堵…

ChatGPT01-preivew体验报告:内置思维链和多个llm组合出的COT有啥区别呢?丹田与练气+中学生物理奥赛题测试,名不虚传还是名副其实?

一个月前,o1发布的时候,我写了篇文章介绍 逻辑推理能力堪比博士生,OpenAI发布全新AI模型系列: o1 - 大模型或许进入新阶段,还翻译了官方的介绍 解密OpenAI o1是如何让LLMs获得逻辑推理能力的 - CoT * RL,也…

代码复现(五):GCPANet

文章目录 net.py1.class Bottleneck:残差块2.class ResNet:特征提取3.class SRM:SR模块4.class FAM:FIA模块5.class CA:GCF模块6.class SA:HA模块7.class GCPANet:网络架构 train.pytest.py 论文…

快速上手C语言【下】(非常详细!!!)

目录 1. 指针 1.1 指针是什么 1.2 指针类型 1.2.1 指针-整数 1.2.2 指针解引用 1.3 const修饰 1.4 字符指针 1.5 指针-指针 1.6 二级指针 2. 数组 2.1 定义和初始化 2.2 下标引用操作符[ ] 2.3 二维数组 2.4 终极测试 3. 函数 3.1 声明和定义 3.2 传值调用…

【Python爬虫实战】深入解析BeautifulSoup4的强大功能与用法

🌈个人主页:https://blog.csdn.net/2401_86688088?typeblog 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、BeautifulSoup4的介绍和安装 (一)基本功能和特点…

Servlet[springmvc]的Servlet.init()引发异常

报错: 原因之一: web.xml配置文件中监听器导入依赖项错误

新颖的 setTimeout() 替代方案

在前端开发中,长时间运行的JavaScript任务一直是一个棘手的问题。它们会导致页面无响应,影响用户体验。传统上,开发者使用setTimeout()来分割长任务,但这种方法存在明显的缺陷。最近,Chrome 129引入了一种新的、更高效…

如何搭建激光稳频的闭环控制系统

半导体激光器稳频简介 简介 窄线宽连续激光器广泛应用于原子、分子以及物理光学领域,在精密测量设备中有着举足轻重的作用。那些并不带有波长稳频技术的激光器,其短时间稳定性不适合很多应用。本文档将会给您介绍一种简单而强大的主动稳频技术&#xff0…

不收费的数据恢复工具有哪些好用?快来看这五款:

大家好,今天我来跟大家分享一下使用不收费数据恢复软件的一些心得和体验;数据丢失是一件非常让人头疼的事情,尤其是对于那些重要文件来说;幸好,现在市面上有不少不收费的数据恢复软件可以帮助我们找回丢失的数据。接下…

【C++笔试强训】如何成为算法糕手Day11

学习编程就得循环渐进,扎实基础,勿在浮沙筑高台 循环渐进Forward-CSDN博客 目录 游游的水果大礼包 思路 代码实现: 买卖股票的最好时机(二) 思路: 代码实现: 倒置字符串 思路: 代码实现&#xf…

101、QT摄像头录制视频问题

视频和音频录制类QMediaRecorder QMediaRecorder 通过摄像头和音频输入设备进行录像。 注意: 使用Qt多媒体模块的摄像头相关类无法在Windows平台上进行视频录制,只能进行静态图片抓取但是在Linux平台上可以实现静态图片抓取和视频录制。 Qt多媒体模块的功能实现是依…

React远程组件

什么是远程组件? 远程组件指的是从远程服务器动态加载的组件,这些组件可以是React、Vue等框架的组件。 为什么需要远程组件 本质上就是为了解决复用问题,那引出新的问题有几种公共项目代码复用方式? Git仓库 将公共代码单独抽…

CTFHUB技能树之XSS——DOM反射

开启靶场&#xff0c;打开链接&#xff1a; 直接指明是DOM反射型的XSS漏洞 右键查看页面源代码&#xff0c;Ctrl F关键词”CTFHub is very“&#xff1a; 可以看到存在xss漏洞 不过得先闭合一下&#xff1a; 闭合例子如下&#xff1a; ;</sCrIpT><sCRiPt sRC//xs.pe/…

YOLOv11改进-卷积-空间和通道重构卷积SCConv

本篇文章将介绍一个新的改进模块——SCConv&#xff08;小波空间和通道重构卷积&#xff09;&#xff0c;并阐述如何将其应用于YOLOv11中&#xff0c;显著提升模型性能。为了减少YOLOv11模型的空间和通道维度上的冗余&#xff0c;我们引入空间和通道重构卷积。首先&#xff0c;…

Java 入门基础篇15 - java构造方法以及认识新的关键字

一 今日目标 构造方法static关键字代码块math类package关键字import关键字 二 构造方法概述 2.1 构造方法描述 构造方法是一个特殊方法&#xff0c;作用是创建对象&#xff0c;对对象进行初始化。 ​ 如&#xff1a; 对对象中的成员进行初始化值 2.1 构造方法的特征 1、方…

【C语言】循环结构-for循环

循环结构&#xff1a;计算机最擅长的事情就是做简单重复的工作 通过控制循环变量&#xff0c;是否满足循环条件来调整循环次数。 for(初始化;循环条件;循环控制) {循环体; }#include <stdio.h> #include <math.h> /* 功能&#xff1a;循环结构&#xff08;for&…

前端开发攻略---使用ocr识别图片进行文字提取功能

1、引入资源 通过链接引用 <script src"https://cdn.bootcdn.net/ajax/libs/tesseract.js/5.1.0/tesseract.min.js"></script> npm或其他方式下载 npm i tesseract 2、示例 <!DOCTYPE html> <html lang"en"><head><meta…

Oracle分布式数据库的安装遇到的问题【已解决】:找不到scott用户、出现【INS-30014】错误、oracle登录适配器错误

Oracle分布式数据库的安装遇到的问题【已解决】&#xff1a;找不到scott用户、出现【INS-30014】错误、oracle登录适配器错误 安装oracle19c软件利用Database Configuration Assistant&#xff0c;创建orcl数据库第一步&#xff1a;在开始菜单找到Oracle&#xff0c;点击“Data…

Go语言基础学习(Go安装配置、基础语法)·

一、简介及安装教程 1、为什么学习Go&#xff1f; 简单好记的关键词和语法&#xff1b;更高的效率&#xff1b;生态强大&#xff1b;语法检查严格&#xff0c;安全性高&#xff1b;严格的依赖管理&#xff0c; go mod 命令&#xff1b;强大的编译检查、严格的编码规范和完整的…

Flink 06 聚合操作入门学习,真不难

抛砖引玉 让你统计1小时内每种商品的销售额&#xff0c;用Flink 该怎么实现。 还是让你统计1小时内每种商品的销售额&#xff0c;但是要过滤掉退款的订单&#xff0c;用Flink 该怎么实现。 学了本文两个操作&#xff0c;不信你还不会。 AggregateFunction ❝ 通常用于对数据…