当前位置: 首页 > news >正文

stp基本介绍

stp生成树协议 防环**

为了提高网络的可靠性,交换网络中通常会使用冗余链路。然而,在冗余链路中会给交换网络带来环路风险,并导致广播风暴以及MAC地址表翻摆等的问题,进而影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)是一种由交换机运行的、用来解决交换网络中环路问题的数据链路层协议。

1 mac地址表翻摆

当pc发送了一个广播帧A,交换机收到这个广播帧之后会进行泛洪操作,这样,SW1的e0/0/1---SW2的e0/0/----SW3的e0/0/1---SW3的e0/0/2----SW1的e0/0/2,同样的道理,SW1的e0/0/2----SW3的e0/0/2---SW2的e0/0/2---SW1的e0/0/1,这样以来,这个广播帧会顺时针和逆时针不停的旋转,每次A进入交换内,交换都会不停的修改mac-address表,这样就形成了mac地址表的翻摆。快速的mac地址表翻摆会大量消耗交换机的cpu,严重导致网络的拥堵。

2 广播风暴

因为A会不停的快速旋转,每台交换机都会收到A帧的拷贝,每次收到之后都会进行泛洪的操作,不停的进行泛洪转发,这样就形成了广播风暴。(和mac地址表翻摆同样的道理) 不停的进行泛洪,如果大量广播帧进入的话,会严重影响交换机的处理速度,导致网络的断掉。另外,计算机也会收到广播帧,并且会将广播帧通过网卡收到之后交给上层网络去处理,大量广播帧的话也可能导致计算机的cpu运算不足,导致计算卡顿甚至关机蓝屏。

3 多帧复制

pc1向pc2发送了一个单播帧B,假设SW1的mac-address中没有关于pc2的mac地址,SW2的mac-address中存在pc2的mac地址,SW3的mac-address中也存在关于pc2的mac地址。当pc1向pc2发送一个单播帧B的时候,由于SW1不知道 pc2的mac地址,所以SW1会进行泛洪的操作,这样以来,SW2和SW3都会收到一个单播帧B,又由于,SW2和SW3都存在pc2的mac地址,所以SW2和SW3都会对单播帧B进行对pc2的转发操作,这样以来pc2就收到了两个同样的单播帧B,这样就形成了多帧复制的现象。

STP树的生成

 

设想一下,在存在环路的网络中如何消除环路呢。最好的办法就是切断其中一条线路,这样环路就消失了。但是如果其中的一条线路被切断了,那么网络中如果发生故障时两台设备就没办法实现链路备份了。如何才能既想要在有环网络中消除环路,又能实现链路备份呢?显然,在物理状态下是没有办法实现的。(因为不可能通过人工手动插拔网线监测网络故障)但是我们可以假想一下,如果在逻辑层面上,**网络在运行正常的情况下让其中的某个端口保持阻塞状态,当网络发生故障的时候再让该端口保持转发状态,恢复正常。完成链路备份**。**这样,就可以做到既能消除环路,又能实现链路备份。**

   **这就是STP协议的基本原理:**在一个具有物理环路的交换网络中,交换机通过运行STP协议,自动生成一个没有环路的工作拓扑。该无环工作拓扑也成为STP树,当网络拓扑发生变化时,STP树也会自动地发生相应的改变。简言之,有环的物理拓扑提高了网络连接的可靠性,而无环的工作拓扑避免了广播风暴、MAC地址表震荡。这就是STP的精髓。

**运行过程**
STP算法很复杂,但是其过程可以归纳为以下三个部分。
1.选择根网桥
2.选择根端口
3.选择指定端口

**aa.**选择根网桥的依据是交换机的网桥优先级,网桥优先级是用来衡量网桥在生成树算法中优先级的十进制数,取值范围是0~65535.默认值是32768,网桥ID=网桥优先级+网桥MAC地址组成的,共有8个字节。由于交换机的网桥优先级都是默认,所以在根网桥的选举中比较的一般是网卡MAC地址的大小,选取MAC地址小的为根网桥。
**bb.**选择根端口是到根网桥路径开销最低,根路径开销是两个网桥间的路径上所有链路的开销之和,也就是某个桥网到达根网桥的中间所有链路的路径开销之和。
**cc.**选择指定端口:第一选择根路径开销较低,第二是所在的交换机网桥ID值最小,第三端口号最小。
注:根桥上的所有端口都是指定端口。
**端口状态**
Blocking(阻塞状态):不会参与数据帧的转发。该端口通过接收BPDU来判断根交换机的位置和根ID,以及在STP拓扑收敛结束之后,各交换机端口应该处于什么状态,在默认情况下,端口会在这种状态下停留20秒钟时间。
Listening(侦听状态):生成树此时已经根据交换机所接收到的BPDU而判断出了这个端口应该参与数据帧的转发。于是交换机端口就将不再满足于接收BPDU,而同时也开始发送自己的BPDU,并以此通告邻接的交换机该端口会在活动拓扑中参与转发数据帧的工作。在默认情况下,该端口会在这种状态下停留15秒钟的时间。
Learning(学习状态):这个二层端口准备参与数据帧的转发,并开始填写MAC表。在默认情况下,端口会在这种状态下停留15秒钟时间。
Forwarding(转发状态):这个二层端口已经成为了活动拓扑的一个组成部分,它会转发数据帧,并同时收发BPDU。
Disabled(禁用状态):这个二层端口不会参与生成树,也不会转发数据帧。

相关文章:

  • 公众号如何接入查题功能
  • IDC_ISP网络之IDC机房内网络架构及配置
  • ROS1云课→17化繁为简stdr和f1tenth
  • R-CNN(Regions with CNN features)
  • LeetCode 387---First Unique Character in a String
  • 《OpenDRIVE1.6规格文档》1
  • 城市区号查询易语言代码
  • Codeforces Round #818 (Div. 2)(A-E)
  • 【刷题笔记7】LeetCode 54. 螺旋矩阵(数组模拟)
  • 设计模式:代理模式
  • gitlab搭建2(linux搭建,外部windows访问,centos7)
  • 大衣哥新儿媳赚大了,刚刚拍摄完婚纱照,就成为了家喻户晓的网红
  • 隐入尘烟影评
  • 电影《隐入尘烟》单日票房第一,上映50多天后开始了逆袭
  • C语言|递归|青蛙跳台阶和汉诺塔问题
  • [译] 怎样写一个基础的编译器
  • EventListener原理
  • Java,console输出实时的转向GUI textbox
  • JavaScript函数式编程(一)
  • Java超时控制的实现
  • Java精华积累:初学者都应该搞懂的问题
  • JSDuck 与 AngularJS 融合技巧
  • overflow: hidden IE7无效
  • PHP变量
  • vue-cli在webpack的配置文件探究
  • vue总结
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 经典排序算法及其 Java 实现
  • 入口文件开始,分析Vue源码实现
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • (2)STM32单片机上位机
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (pytorch进阶之路)扩散概率模型
  • (第一天)包装对象、作用域、创建对象
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (南京观海微电子)——COF介绍
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (四)模仿学习-完成后台管理页面查询
  • (学习日记)2024.01.09
  • (转)visual stdio 书签功能介绍
  • ... 是什么 ?... 有什么用处?
  • .Net 6.0 处理跨域的方式
  • .net core Swagger 过滤部分Api
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .net访问oracle数据库性能问题
  • .NET命令行(CLI)常用命令
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • :如何用SQL脚本保存存储过程返回的结果集
  • @Autowired和@Resource的区别
  • [ 转载 ] SharePoint 资料
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [AutoSar]BSW_OS 01 priority ceiling protocol(PCP)
  • [BZOJ] 2006: [NOI2010]超级钢琴
  • [C/C++]数据结构----顺序表的实现(增删查改)