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

STP详解

STP详解

Write From YangWj

Wednesday, March 5, 2014

一、 生成树协议

STP的主要任务是阻止在第2层网络(网桥或交换机)产生网络环路,它警惕的监视着网络中所有的链路,通过关闭任何冗余的接口来确保在网络中不会产生环路。STP采用生成树算法,它首先创建一个拓扑数据库,然后搜集并破坏掉冗余的链路

二、 生成树术语

根桥:根桥是桥ID最低的网桥

非根桥:除根桥外其他的网桥都是非根桥。

BPDU(桥协议数据单元):交换机之间用来交互的信息,使用BPDU里面的参数进行对比,然后再传给某个邻居,并且放入他们从另外邻居收到的BPDU。

桥ID:桥ID是由优先级和MAC地址组合来决定的,STP利用桥ID来跟踪网络中所有的交换机。

根端口:直接连到根桥的链路所在端口,或者到根桥路径最短的端口。

指定端口:有最低开销的端口就是指定端口,指定端口被标记为转发端口。在根交换机上的每个端口都是指定端口。

非指定端口:开销比指定端口高的端口,它被置为阻塞状态。

转发端口:能够转发帧的端口。

阻塞端口:不能转发帧,但始终监听帧。

端口开销:两台交换机之间有多条链路且都不是根端口时,就根据端口开销来决定最佳路径,链路的开销取决于链路的带宽。

三、 根桥选举

桥ID用来选举根桥,,并决定根端口。桥ID为8个字节长,包括设备的优先级和MAC地址,默认所有的优先级都是32768 。若更改则要求为4096的倍数。

网络中的交换机默认都是每2秒发送一次BPDU,被发送到网桥/交换机的所有活动的端口上。桥ID最小的网桥就被选举为根桥。一般我们会手动将要作为根桥的交换机的优先级降低,这样会比较有效率。

四、 生成树端口状态

阻塞:无法转发帧,但是会监听。

侦听:侦听BPDU,确保在传送数据帧之前,网络上没有环路产生。处于此状态在没有形成mac地址表时,就准备转发数据帧。

学习:交换机端口侦听BPDU时并学习交换式网络中的所有路径。此时形成了mac地址表,但不能转发数据帧。转发延迟意味着将端口从侦听状态转换到学习状态所花费的时间,默认15秒。

转发:发送并能接收所有的数据帧,如果在学习状态结束时,端口仍然是制定端口或根端口,它就进入转发状态。

五、 实验部分

(一) 根桥的选举

实验拓扑图

clip_image001

连接好了之后我们可以清楚的看到S3的F0/12被阻塞了

1. 查看S1

clip_image003

2. 查看S2(它是根桥)

clip_image005

3. 查看S3

clip_image007

4. 查看S4

clip_image009

5. 修改S1的优先级,使其成为根桥

clip_image011

6. 此时的网络选举结果如下

clip_image012

7. 查看S1的信息(它已作为根桥)

clip_image014

8. 实验结论如下

a) 选举根桥时用优先级和mac地址作为依据。

b) 优先使用优先级作为选举依据。

c) 优先级小的被选举为根桥。

d) 优先级相同时mac值小的被选举成根桥。

(二) 探索1——优先级与阻塞端口

实验拓扑图

clip_image016

首先右图是左图的复制,照理说他们的阻塞端口(S4上)应该都是一样的,那么为什么在复制过去之后就成了这样的呢?

1. 查看有图中的CopyS1信息(它还是根桥,这个肯定的)

clip_image018

2. 查看右图CopyS2的信息

clip_image020

3. 查看右图CopyS3中的信息

clip_image021

4. 查看右图CopyS4中的信息

clip_image023

5. 通过将CopyS2和CopyS3的信息分析对比得到

clip_image025

6. 再次分析左图中S2和S3的信息

clip_image027

7. 修改左图S3的优先级(但要小于S1,因为它是根桥)

clip_image029

8. 同理修改右图CopyS2的优先级

clip_image031

9. 查看左图S3和右图CopyS2的信息

clip_image033

10. 实验结论

a) 端口阻塞的选择与上层交换机的优先级有关联

b) 优先比较的是上层优先级,优先级大的被阻塞

c) 上层优先级等同时比较mac地址,mac大的被阻塞

(三) 探索2——端口号与阻塞端口

实验拓扑图

clip_image034

上图中S1与S2连接,分别对应的端口为F0/1,F0/11,图中已经将根桥选举出来,并且阻塞了S2的F0/11端口。那么它又是如何进行选择的呢?

1. 为了使实验得以稳定,将S1手动指定为根桥,即修改它的优先级

clip_image036

2. 查看S2的信息

clip_image038

3. 借助探索1的结论,上层的优先级完全一样,我们先复制一份

clip_image039

4. 对比CopyS2和CopyS1(或者S1和S2),发现只有Prio.Nbr的值异样

clip_image041

5. 更换右图中S2的F0/1为F0/15,得下(无变化)

clip_image042

6. 更换左图中S1的F0/1为F0/15,如下(阻塞端口被改变了)

clip_image043

7. 实验结论可得

a) 端口阻塞的选择与根桥的接口有关系。

b) 在优先级等同的时候才会用上层交换机端口号做选择。(不一定是根桥)

c) 根桥接口号大的对应链路到下层交换机的端口会被阻塞。

转载于:https://www.cnblogs.com/ywj2013/p/3583229.html

相关文章:

  • 又见西安
  • 一次失败的网购:在兰蔻官网订购的货不对版
  • 多线程试题汇总
  • CentOS上配置LVS DR集群
  • Android应用加入微信分享
  • nowrap要与回车换行符结合才有意义
  • XMPP 基础
  • 初学3ds Max,做了个雪人,大家来评评哪个更好看
  • 精彩十年(3)——初露锋芒
  • Java常用工具类的使用
  • 精彩十年(4)——缔造神话
  • HibernateDaoSupport实现分页技术总结
  • 新作《.NET 4.0面向对象编程漫谈》之序“穿越梦想、起锚远航”
  • java synchronized详解(非常详细)
  • 123456789分割成12,34,56,789
  • 【技术性】Search知识
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • echarts的各种常用效果展示
  • ES6--对象的扩展
  • go语言学习初探(一)
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • underscore源码剖析之整体架构
  • V4L2视频输入框架概述
  • 分布式熔断降级平台aegis
  • 将 Measurements 和 Units 应用到物理学
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 深度学习入门:10门免费线上课程推荐
  • 云大使推广中的常见热门问题
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • Semaphore
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #stm32驱动外设模块总结w5500模块
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (11)MATLAB PCA+SVM 人脸识别
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (七)Java对象在Hibernate持久化层的状态
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)UDP基本编程步骤
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)项目管理杂谈-我所期望的新人
  • .NET Core 中的路径问题
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .net中的Queue和Stack
  • :=