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

生成树协议(STP)

在企业的网络设计中,一般都会设计具有冗余的拓补结构。因为单一的链路会导致单点故障,提高故障发生的概率。越是大型的网络,对冗余性要求越高。但是,当网络具有冗余性之后,就会产生一些问题,比如:
1.广播风暴
生成树协议(STP)
当广播帧经过交换机时,交换机就会以指数的形式生成广播帧(交换机从除收到该广播帧之外的所有端口转发广播帧)。这种广播帧会越来越多,最后形成广播风暴,导致网络瘫痪。
这种广播风暴只有在物理环路消失时才可能停止。
2.多帧复制
生成树协议(STP)
指单播的数据帧被多次复制传送到接受端,很多协议都只需要每次传输一个副本。多帧复制会造成接收端收到数据帧的多个副本,不仅浪费接收端的主机资源,而且会导致上层协议在处理这些数据帧时无法选择,严重时还可能导致不可恢复的错误。
3.MAC地址表紊乱
生成树协议(STP)
会导致交换机通过两个接口学到相同的MAC地址,从而导致MAC地址表紊乱,影响数据包的转发。
虽然冗余链路会存在一些问题,但是环形的物理线路能够为网络提供备份线路,增强网络的可靠性,这在网络设计中是必要的。因此,就需要一种解决方法,一方面能够保证网络的可靠性,另一方面还要解决因为冗余链路所带来的一系列问题。
STP就是用来解决这个问题的。STP并不是断掉物理环路,而是在逻辑上断开环路,防止冗余链路的一些问题的发生。
STP(生成树协议)就是把一个环形的结构改变成一个树形的结构。
STP就是用来将物理上存在环路的网络,通过一种算法,在逻辑上阻塞一些端口来生成一个逻辑上的树形结构。
生成树协议(STP)
生成树协议(STP)
对于三台交换机构成环路的网络,在使用STP后,交换机SW2与SW3连接在链路上的一个端口被逻辑上阻塞,也就是这条线路不能传输数据了,当正常通信的线路发生故障时,被逻辑阻塞的线路将重新被激活,使得数据能从这条线上正常传输数据。
STP运行STA(生成树算法)的过程很复杂。大致分为三个步骤:
1.选择根网桥(交换机)
生成树协议(STP)
依据:
1.网桥是唯一的;
2.选择交换网络中网桥ID最小的交换机作为根网桥。
生成树协议(STP)
2.选择根端口
离根网桥最近的端口(在一个非根网桥上有且只有一个根端口)
选择根端口的依据:
1.到根网桥最低的路径成本;
2.直连的网桥ID最小;
3.直连的端口ID最小。
生成树协议(STP)
网桥到根网桥的路径上所有链路的成本之和
生成树协议(STP)
带宽与路径成本的关系
生成树协议(STP)
3.选择指定端口
为了消除环路形成的可能,STP进行最后的计算,在每一个网段上选择一个指定端口,选择指定端口的依据:
1.根路径成本较低;
2.所在交换机的网桥ID指较小;
3.端口ID值较小。
生成树协议(STP)
和选择根端口不同,在比较端口ID时,比较的是自身的端口ID值。
接下来我们简单的来看一下怎么查看生成树的状态
生成树协议(STP)
生成树协议(STP)
根网桥的两个端口都是指定端口,而非根端口!
交换机之间通过BPDU(桥协议数据单元)来交换网桥ID、根路径成本等信息。
BPDU包中包括:
1.根网桥ID;
2.根路径成本;
3.发送网桥ID;
4.端口ID;
5.及时器;
根网桥的选择是一个持续的、反复进行的过程,每2s触发一次,检查BPDU的根网桥ID是否发生了变化,网络中是否有网桥ID值更低的交换机加进来。
STP在交换机中自动运行,在交换机开机的时候可以看到,交换机的指示灯为×××的,并且大约30s的时间不能转发数据,这是交换机在做STP计算。
生成树的端口状态
生成树协议(STP)
(仅供参考)
生成树计时器
1.HEIIO时间:IEEE802.1d规定的默认时间为2s;
2.转发和延迟:默认值各为15s;
3.最大老化时间:默认值为20s。
典型的端口过渡:
1.从阻塞到侦听20s;
2.从侦听到学习15s;
3.从学习到转发15s。
生成树协议(STP)
(STP计时器的时间可以使用命令进行调整,一般情况不建议修改)
STP与VLAN的关系:
IEEE的CST:不考虑vlan,所有vlan公用一个生成树;
Cisco的PVST:每一个vlan都有一个生成树根;
Cisco的PVST+:增强每个vlan生成树;
IEEE的MST:多生成树。
接下来我们根据一个简单的小拓补实验,来讲解一下如何配置生成树:
1.Cisco的设备默认已经启用了生成树,(启用生成树的命令)
生成树协议(STP)
2.指定根网桥
生成树协议(STP)
3.如果在现实环境中,交换机某个接口连接的服务器,我们不可能让它30s之后在进行工作,可以配置速端口,命令
生成树协议(STP)
生成树的命令差不多就这些,以后如果用到别的会时时更新的!
愿我们共同学习,共同进步!

转载于:https://blog.51cto.com/14157628/2382917

相关文章:

  • Robust PCA via Outlier Pursuit
  • JavaScript 设计模式之策略模式
  • SpringSocial相关的知识点
  • 移动端长按事件
  • 浅克隆和深克隆
  • (一)appium-desktop定位元素原理
  • 解密虚拟 DOM——snabbdom 核心源码解读
  • Python基础之列表
  • MyBatis配置多数据源
  • Asp.net core Identity + identity server + angular 学习笔记 (第三篇)
  • 【题解】四色定理
  • Android 实现动态背景“五彩蛛网”特效,让你大开眼界!
  • python高并发?
  • 雷林鹏分享:二级目录配置CI应用
  • Sym System Recovery 2013 ( 備份 操作 )
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • angular2开源库收集
  • HTML-表单
  • javascript 哈希表
  • leetcode386. Lexicographical Numbers
  • Lsb图片隐写
  • MySQL主从复制读写分离及奇怪的问题
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 创建一个Struts2项目maven 方式
  • 浅谈web中前端模板引擎的使用
  • 使用 @font-face
  • 使用agvtool更改app version/build
  • 优秀架构师必须掌握的架构思维
  • nb
  • ​【已解决】npm install​卡主不动的情况
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • ${factoryList }后面有空格不影响
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (C++)八皇后问题
  • (Python) SOAP Web Service (HTTP POST)
  • (SpringBoot)第二章:Spring创建和使用
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (利用IDEA+Maven)定制属于自己的jar包
  • (强烈推荐)移动端音视频从零到上手(上)
  • (学习日记)2024.01.19
  • (转)h264中avc和flv数据的解析
  • (转)ORM
  • (转)我也是一只IT小小鸟
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .net实现客户区延伸至至非客户区