STP学习的第一篇

1.STP的基本概念:根桥

(1)STP的主要作用之一是在整个交换网络中计算出一棵无环的“树”(STP树)。

(2)根桥是一个STP交换网络中的“树根”。

(3)STP开始工作后,会在交换网络中选举一个根桥,根桥是生成树进行拓扑计算的重要“参考点”,是STP计算得出的无环拓扑的“树根”。

(4)在STP网络中,桥ID最小的设备会被选举为根桥。

(5)在BID的比较过程中,首先比较桥优先级,优先级的值越小,则越优先,拥有最小优先级值的交换机会成为根桥;如果优先级相等,那么再比较MAC地址,拥有最小MAC地址的交换机会成为根桥。

2.STP的基本概念:Cost

(1)每一个激活了STP的接口都维护着一个Cost值,接口的Cost主要用于计算根路径开销,也就是到达根的开销。

(2)接口的缺省Cost除了与其速率、工作模式有关,还与交换机使用的STP Cost计算方法有关。

(3)接口带宽越大,则Cost值越小。

(4)用户也可以根据需要通过命令调整接口的Cost

 3.STP的基本概念:RPC   根路径开销(Root Path Cost)  根路径开根路径开销(Root Path Cost)销(Root Path Cost

(1)STP的拓扑计算过程中,一个非常重要的环节就是“丈量”交换机某个接口到根桥的“成本”,也即RPC

(2)一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有入方向接口的Cost累加。

 4.STP的基本概念:Port ID

(1)运行STP的交换机使用接口ID来标识每个接口,接口ID主要用于在特定场景下选举指定接口。

(2)接口ID由两部分构成的,高4 bit是接口优先级,低12 bit是接口编号。

(3)激活STP的接口会维护一个缺省的接口优先级,在华为交换机上,该值为128。用户可以根据实际需要,通过命令修改该优先级。

5.STP的基本概念:BPDU

(1)BPDUSTP能够正常工作的根本。BPDUSTP的协议报文。

(2)STP交换机之间会交互BPDU报文,这些BPDU报文携带着一些重要信息,正是基于这些信息,STP才能够顺利工作。

(3)BPDU分为两种类型:配置BPDUConfiguration BPDU)、TCN BPDUTopology Change Notification BPDU

(4)配置BPDUSTP进行拓扑计算的关键;TCN BPDU只在网络拓扑发生变更时才会被触发。

6.配置BPDU的比较原则

STP按照如下顺序选择最优的配置BPDU

1.最小的根桥ID。2.最小的RPC。3.最小的网桥ID。4.最小的接口ID。备注(第一条原则主要用于在网络中选举根桥,后面的原则主要用于选举根接口及指定接口。

7.STP的计算过程 (在交换网络中选举一个根桥)

(1)STP在交换网络中开始工作后,每个交换机都会向网络中发送配置BPDU。配置BPDU中包含交换机自己的桥ID

(2)网络中拥有最小桥ID的交换机成为根桥。

(3)在一个连续的STP交换网络中只会存在一个根桥。

(4)根桥的角色是可抢占的。

(5)为了确保交换网络的稳定,建议提前规划STP组网,并将规划为根桥的交换机的桥优先级设置为最小值0

7.STP的计算过程 (在每台非根桥上选举一个根接口)

(1)每一台非根桥交换机都会在自己的接口中选举出一个接口。

(2)非根桥交换机上有且只会有一个根接口。

(3)当非根桥交换机有多个接口接入网络中时,根接口是其收到最优配置BPDU的接口。

(4)可以形象地理解为,根接口是每台非根桥上“朝向”根桥的接口。

7.STP的计算过程 (在每条链路上选举一个指定接口)

(1)根接口选举出来后,非根桥会使用其在该接口上收到的最优BPDU进行计算,然后将计算得到的配置BPDU与除了根接口之外的其他所有接口所收到的配置BPDU进行比较:

(2)如果前者更优,则该接口为指定接口;

(3)如果后者更优,则该接口为非指定接口。

一般情况下,根桥的所有接口都是指定接口。
7.STP的计算过程 (非指定接口被阻塞
(1) 一台交换机上,既不是根接口,又不是指定接口的接口被称为非指定接口。
(2) STP 操作的最后一步是阻塞网络中的非指定接口。这一步完成后,网络中的二层环路就此消除。

图中所示为 STP 的端口状态迁移机制,运行 STP 协议的设备上端口状态有 5 种:
Forwarding :转发状态。端口既可转发用户流量也可转发 BPDU 报文,只有根端口或指定端口才能进入 Forwarding 状态。
Learning :学习状态。端口可根据收到的用户流量构建 MAC 地址表,但不转发用户流量。增加 Learning 状态是为了防止临时环路。
Listening :侦听状态。端口可以转发 BPDU 报文,但不能转发用户流量。
Blocking :阻塞状态。端口仅仅能接收并处理 BPDU ,不能转发 BPDU ,也不能转发用户流量。此状态是预备端口的最终状态。
Disabled :禁用状态。端口既不处理和转发 BPDU 报文,也不转发用户流量。
案例 1 STP 的基础配置
SW1 的配置如下:
[czySW1]stp mode stp 
[czySW1]stp enable 
[czySW1]stp priority 0

SW2的配置如下:

[czySW2]stp mode stp  
[czySW2]stp enable
[czySW2]stp priority 4096

SW3的配置如下:

[czySW3]stp mode stp
[czySW3]stp enable

通过配置,将SW1指定为根桥,并使SW3e0/0/2接口被STP阻塞。

在LSW3上查看stp接口状态摘要

8.STP的不足

(1)STP协议虽然能够解决环路问题,但是由于网络拓扑收敛慢,影响了用户通信质量。如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这是用户无法忍受的。

(2)STP没有细致区分接口状态和接口角色,不利于初学者学习及部署。

(3)网络协议的优劣往往取决于协议是否对各种情况加以细致区分。

          从用户角度来讲,Listening、Learning和Blocking状态并没有区别,都同样不转发用户流量。

          从使用和配置角度来讲,接口之间最本质的区别并不在于接口状态,而是在于接口扮演的角色。

          根接口和指定接口可以都处于Listening状态,也可能都处于Forwarding状态。

(4)STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢。

(5)STP算法要求在稳定的拓扑中,根桥主动发出配置BPDU报文,而其他设备进行处理,传遍整个STP网络。这也是导致拓扑收敛慢的主要原因之一。

9.RSTP通过接口角色的增补,简化了生成树协议的理解及部署

10.总结

1、选举根桥,根桥有且只有一个,除此之外都是非根桥;
2、非根桥有且只有一个根端口(到达根桥最近cost);
3、每段链路选举唯一 一个指定端口。
4、既不是根端口也不是指定端口,则会被称为阻塞端口(逻辑关闭);
选举规则:
1、根桥选举:最小的BID,具体看下面;
2、非根桥根端口选举:
      2.1 先比较RPC
      2.2 比较对端的BID
      2.3 比较对端的PID
      2.4 比较本端的PID
3、指定端口:
      3.1 先比较RPC
      3.2 比较发送者的BID
      3.3 比较发送者的PID

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

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

相关文章

【C++类和对象】初始化列表与隐式类型转换

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

《C语言深度解剖》(8):一篇文章彻底学会Visual Studio 调试技巧,新手必看!

🤡博客主页:醉竺 🥰本文专栏:《C语言深度解剖》 😻欢迎关注:感谢大家的点赞评论关注,祝您学有所成! ✨✨💜💛想要学习更多数据结构与算法点击专栏链接查看&am…

MySQL 基础语法(2)

文章目录 创建表查看表修改表表数据插入 本文为表结构相关的基础语言库相关的基础语句 创建表 CREATE TABLE table_name ( field1 datatype comment xxx, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;CREATE TABLE&#xff1…

NLP(2)--搭建简单的模型(nn)

前言 仅记录学习过程,有问题欢迎讨论 可能使用到的包 可以通过Anaconda直接install,不行就PIP install xxx PythonTorchTransformersScikit-learnNumpyGensimPandas 我的版本: 可以用 conda list 查看 代码 如果有包导入不进来&…

如何搭建私域获取淘宝店铺卖家订单信息trade.fullinfo.get

私域流量主要由已经对企业或品牌感兴趣并进行关注的用户组成,这些用户对企业具有一定的忠诚度和粘性。通过与这些用户建立良好的互动和关系,企业可以进一步提升用户的忠诚度和转化率,从而有助于建立持续稳定的业务模式和盈利模式,…

【ARFoundation自学01】搭建AR框架+检测平面+点击克隆立方体到地面=自信入门!

介绍 AR 的功能其实是个大手机系统厂商和眼镜设备厂商开发的功能,并不是Unity的功能,毕竟Unity没有自己的手机设备!比如谷歌公司的安卓开发了ARcore,让所有安卓8.0版本以上的用户能够在手机上体验AR功能!苹果推出了AR…

2024红明谷杯——Misc 加密的流量

2024红明谷杯——Misc 加密的流量 写在前面: 这里是贝塔贝塔,照例来一段闲聊 打比赛但赛前一波三折,又是成功签到的一个比赛 说起来比赛全名叫红明谷卫星应用数据安全场景赛,但好像真的跟卫星的关系不大,没有bin方…

深入探索Python中的推导式:从列表到字典,全面解析数据结构的快速构建方法

文章目录 1. 列表推导式:快速构造列表1.1 基础用法1.2 条件筛选 2. 字典推导式:动态构建字典2.1 基础用法2.2 使用条件过滤 3. 集合推导式:有效去重与数据筛选3.1 基本语法与应用3.2 去重和转换3.2 使用条件过滤 4. 生成器推导式:…

基于CH32V103的多功能推杆设计

一、项目简介 “创意源于生活,工具始于懒惰。” 整体造型外观参考了最近比较火的夫妻游戏《双人成行》第一关里面那个吸尘器的推杆开关,结构中采用阻尼器/滚珠轴承等器件,使其非常具有质感和手感。功能上我构思不能只有电脑开关这么简单地一…

Jenkins CI/CD 持续集成专题三 Jenkins 使用shell脚本打包组件配置流程

第一步 新建任务 第二步 输入项目名称和选择自由风格的软件项目点击确定 第三步 配置下项目地址和账号密码 第四步 配置 build steps 选择 shell 脚本 第五步 shell 配置 (注意shell 必须以#!/bin/sh开头,否则会报 找不到shell 命令的错) …

【Web】DASCTF X CBCTF 2022九月挑战赛 题解

目录 dino3d Text Reverser cbshop zzz_again dino3d 进来是一个js小游戏 先随便玩一下,显示要玩够1000000分 直接console改分数会被检测 先是JSFinder扫一下,扫出了check.php 到js里关键词索引搜索check.php 搜索sn,发现传入的参数是…

3-羟基丙酸(3-HP)应用前景广阔 生物基3-羟基丙酸市场占比将不断提升

3-羟基丙酸(3-HP)应用前景广阔 生物基3-羟基丙酸市场占比将不断提升 合成技术是制约3-羟基丙酸规模化应用的重要因素。3-羟基丙酸合成技术包括化学合成法、生物合成法两大类,其中化学合成法是主流生产工艺,但化学合成法存在工艺复…

.netcore+vue新生分班系统的设计与实现

.netcore vue新生分班系统的设计与实现说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于.net core架构和mysql数据库vue 东北石油大学新生分班系统的设计与实现 功能模块: 登录 注册学生 忘记密码 系统首顶 个…

完成学校官网页面制作

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>教务系统</title> <style> .wap{ margin:0 auto; width:955px; } .top{ height:150px; padding-left:85px; …

DHCP服务器配置故障转移后显示红色箭头、与伙伴服务器失去联系的解决方案

一、遇到的故障现象&#xff1a; &#xff08;主DHCP服务器与备用DHCP服务器连通性正常&#xff0c;在故障转移选项卡上却显示与伙伴失去联系、伙伴关闭&#xff0c;且ipv4协议旁边显示一个红色的小箭头&#xff09;&#xff0c;正常情况下是绿色 &#xff08;一&#xff09;…

外包干了6天,技术明显退步。。。

我是一名大专生&#xff0c;自19年通过校招进入湖南某软件公司以来&#xff0c;便扎根于功能测试岗位&#xff0c;一晃便是近四年的光阴。今年3月&#xff0c;我如梦初醒&#xff0c;意识到长时间待在舒适的环境中&#xff0c;已让我变得不思进取&#xff0c;技术停滞不前。更令…

金三银四面试题(二十):单例模式知多少?

设计模式也是面试中的热门考题&#xff0c;基本这个部分都是问问你知不知道XXX设计模式&#xff0c;有什么用&#xff0c;优缺点&#xff0c;然后再现场手写一个demo。很多时候是和spring一起考的&#xff0c;问问你知不知道spring框架用了哪些设计模式。今天我们来先看看单例模…

代码+视频,R语言对数据进行多重插补后回归分析

我们在临床做回顾性研究分析中经常要面对数据缺失的问题&#xff0c;如果数据缺失量大就会对我们的研究结果产生影响&#xff0c;近年来&#xff0c;对数据进行多重插补广泛应用于SCI论文中。我们在之前的文章中已经演示了使用SPSS对数据进行多重插补并分析。今天&#xff0c;我…

贪吃蛇的简单实现(c语言)

前言&#xff1a;学完了C语言的基础语法&#xff0c;和一点数据结构的知识&#xff0c;拿贪吃蛇来练练手&#xff0c;并熟悉以前的知识。写完之后&#xff0c;有一种成就感&#xff0c;为以后的学习饱满激情。 注意这里的讲解是由部分到整体的思路。 目录 控制台不能是终端&am…

ubuntu环境下使用g++把c++编译成汇编语言(暂时)

1. 引言 为了深入理解c&#xff0c;决定学习一些简单的汇编语言。使用ubuntu系统下g很容易将一个c的文件编译成汇编语言。本文使用此方法&#xff0c;对一个简单的c文件编译成汇编语言进行理解。 2.示例 文件名&#xff1a;reorder_demo.cpp #include<stdio.h>typede…