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.hqwc.cn/news/640601.html

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

相关文章

K8s: Ingress对象, 创建Ingress控制器, 创建Ingress资源并暴露服务

Ingress对象 1 )概述 Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTPIngress-nginx 本质是网关,当你请求 abc.com/service/a, Ingress 就把对应的地址转发给你,底层运行了一个 nginx但 K8s 为什么不…

OpenCV-基于阴影勾勒的图纸清晰度增强算法

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 实现原理 大家在工作和学习中,无论是写报告还是论文,经常有截图的需求,比如图表、图纸等&…

无人驾驶 自动驾驶汽车 环境感知 精准定位 决策与规划 控制与执行 高精地图与车联网V2X 深度神经网络学习 深度强化学习 Apollo

无人驾驶 百度apollo课程 1-5 百度apollo课程 6-8 七月在线 无人驾驶系列知识入门到提高 当今,自动驾驶技术已经成为整个汽车产业的最新发展方向。应用自动驾驶技术可以全面提升汽车驾驶的安全性、舒适性,满足更高层次的市场需求等。自动驾驶技术得益于人工智能技术的应用…

SpringBoot 根据不同环境切换不同文件路径

最简单的办法就是使用多个 application.yml 配置文件 。一个叫 application-test.yml 测试用;另一个是正式使用的 application-prod.yml 。win环境下大部分是开发测试时候使用的,服务正式上线需要部署在Linux服务器上又换成了Linux。但开发初期或者项目…

JS-47-Node.js06-fs模块-读写文件

Node.js内置的fs模块就是文件系统模块,负责读写文件。 和所有其它JavaScript模块不同的是,fs模块同时提供了异步和同步的方法。 一、回顾:异步方法VS同步方法 1-1、异步方法 因为JavaScript的单线程模型,执行IO操作时&#xff…

Linux及tmux、vim常用命令

Linux 关于Linux的简介、诞生、迭代,大家可以去网上查一查,这里不多做赘述了 Linux文件类型 非常重要的文件类型有: 普通文件,目录文件,链接文件,设备文件,管道文件,Socket 套接字文件 等。 …

【Leetcode每日一题】 分治 - 数组中的第K个最大元素(难度⭐⭐)(63)

1. 题目解析 题目链接:数组中的第K个最大元素 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 在快速排序算法中,一种常见的优化策略是将数组划分为三个区间。这种划分方式可以更加精确地定位到…

我看谁还不会这几个 TypeScript 高级技巧

typescript 作为前端使用最多的框架之一,快来看看下面这些隐藏的高级技巧吧 Mapped Types 当我们在声明类型的时候,可以借助 Mapped Types 的方式对基础类进行扩展,这样就可以减少定义重复的基础类型 type Ev {add: string;remove: strin…

day_8题解

利用最大公约数求最小公倍数 #include<iostream> using namespace std;int gcd(int a,int b) {return b?gcd(b,a%b):a; }int main() {long long a,b;cin>>a>>b;long long ansgcd(a,b);cout<<(a*b)/ans<<endl;return 0; }排序遍历&#xff0c;记…

小游戏:贪吃蛇

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;贪吃蛇 &#x1f337;追光的人&#xff0c;终会万丈光芒 目录 &#x1f3dd;1.头文件&#xff1a; &#x1f3dd;2.实现文件&#xff1a; &#x1f3dd;3.测试文件 &#xff1a; 前言&#…

阿里云X魔搭社区Create@AI创客松第四届冠军:MumuLab

4月13日终于迎来了线下Demo Day&#xff0c;此前阿里云 X 魔搭社区 X Datawhale CreateAI创客松已经紧锣密鼓地准备了一个多月时间&#xff0c;全球150团队报名、创作出66作品、评选出25支团队进入决赛&#xff0c;作品范围覆盖从办公效率到法律调解再到游戏互动以及构建童话世…

【CSS】使用 scroll snap 实现页面的垂直大屏滚动

CSS 属性 scroll-snap-type 设置了在有滚动容器的情形下吸附至吸附点的严格程度。 scroll-snap-type 使用 scroll snap 也可以用于垂直滚动&#xff0c;全屏展示就是一个很好的例子: <main><section class"section section-1"></section><sect…