STP协议的作用:

第一, 可以避免网络环路和广播风暴。

  二层数据包是没有TTL(time to live)的,如果不加以限制,可能会无限的传播下去。二层设备间如果存在环路,大量的广播包就可能导致广播风暴,导致网络瘫痪。  

这里需要理解广播包和二层设备是如何对广播包进行处理的。广播包又分为二层广播包和三层广播包,二层广播包基于特定mac段,三层广播包基于特定IP段。二层设备收到广播报后,会将该数据包从除了接收端口外的其他端口洪泛出去。

第二,可以增强网络的健壮性,正在工作的链路出现故障时,可以使用备份链路,以保证业务的正常

STP工作的主要步骤:

第一步,根据优先级最小的原则,在全网的交换机中选出一个根桥。

第二步,每个交换机上离根桥最近的端口选为根端口,每个网段上距离根桥最近的端口选为指定端口。

第三步,非根桥上的端口中除了根端口和指定端口外的端口都将被阻塞,保证网络不会成环。

第四步,检测到网络拓扑发生变化时,重新计算并生成新的树结构。

STP协议又可以分为:STP,RSTP,MSTP。

下面是STP工作各步骤的详细解释:

第一步,如何选择根桥。

交换机的优先级和交换机的mac地址之和最小的将选为根桥。交换机的优先级默认值是32768,但是也是可以设置的,可以将性能较好的交换机优   先级调低,指定其作为根桥。

各交换机都假设自己为根桥,发送BPDU数据包,包含了优先级和mac地址的信息,通过比较,交换机之间都知道了哪个交换机是根桥。

第二步,选取根端口和指定端口。

根端口和指定端口的选取也是基于优先级的,依据如下:

1.首先比较path cost,越小越好。一般是网络传输速率越快,path cost越小。

2.path cost相同,比较优先级和mac地址,和根桥的选取相同。

3.以上都相等,比较端口ID,越小越优。

STP协议的更多相关文章

  1. OSI模型第二层数据链路层-STP协议

    1.stp协议的由来. 在二层网络中,交换机起到了很重要的作用,如果有一台交换机出现故障会影响网络的使用,为了避免存在单点故障,在实际的二层链路中会采用链路冗余,也就是采用交换设备之间多条联络连接,即 ...

  2. 二层协议--STP协议总结

    生成树协议的技术实现与配置注意点 一.stp协议的用途 二.stp协议的运行机制 三.stp协议规范

  3. LLDP协议、STP协议 笔记

    参考: 数据链路层学习之LLDP 生成树协议 LLDP协议.STP协议 笔记 LLDP 提出背景: 随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加 ...

  4. STP协议树配置

    STP协议树作用 为了提高网络可靠性,交换网络中通常会使用冗余链路. 然而,冗余链路会给交换网络带来环路风险 并导致广播风暴以及MAC地址表不稳定等问题进而会影响到用户的通信质量. 生成树协议STP( ...

  5. [转载]交换机STP协议

    注:之前做一个项目,测试部使用2个公司的交换机,H3C和H公司的,H公司的交换机是OEM H3C的交换机,正常来说两者使用没有区别. 但是使用中发现,如果设备的多个对外业务网口连接的交换机的聚合网口, ...

  6. STP协议与MSTP协议

    STP协议与MSTP协议 目录 一.STP概述 1.1.交换网络环路的产生 1.2.STP简介 二.生成树算法 2.1.生成树算法的步骤 2.2.网桥 ID 2.3.选择根端口 2.4.选择指定端口 ...

  7. STP生成树协议

    STP主要作用 1.消除环路:通过阻断冗余链路来消除网络中可能存在的链路 2.链路备份:当活动那个路径发生故障时,激活备份链路,及时恢复网络连通性. 根桥选举 每个交换机启动STP后,都认为自己是根桥 ...

  8. 生成树协议(STP)

    首先了解一下环路问题: 两个交换机将两个局域网同时连接起来的时候,不幸地出现了环路: 这两个交换机还是都能够收到广播包的.交换机 A 一开始是不知道机器 2 在哪个局域网的,所以它会把广播消息放到局域 ...

  9. CCNA 之 九 STP生成树协议

    STP生成树 在上一次实验中,使用了单臂路由是两个不同的VLAN之间进行通信,而单臂路由的这种网络拓扑,当一条链路或者路由设备出现故障的时候,整个网络就会瘫痪. 称此网络为:不健壮的,无冗余的网络环境 ...

随机推荐

  1. [bzoj 2017] [Usaco2009 Nov]硬币游戏

    一个多月没更博客了..(期间明白了自己有多傻逼. 这种问题大概就倒着做... f[i][j]:表示考虑剩下的硬币i..n,且之前的人取了j个时,先手最多拿到的钱数.aft[i]:表示硬币i..n的总钱 ...

  2. hdu_1027(好吧。。。牛。。。next_permutation也可以水过)

    #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; int ...

  3. React Native学习(四)—— 写一个公用组件(头部)

    本文基于React Native 0.52 Demo上传到Git了,有需要可以看看,写了新内容会上传的.Git地址 https://github.com/gingerJY/React-Native-D ...

  4. const类型变量的详细解读

    const类型变量--------------------------------------int i;const int *p; --------------------------------- ...

  5. 打开redis和solr

  6. error: Failed dependencies:解决

    error: Failed dependencies:解决 使用rpma安装安装包时,会出现 error: Failed dependencies: 意思是 失败的依赖 解决方法: 在安装包后面加两个 ...

  7. CSS3 [attribute^=value] 选择器

    设置 class 属性值以 "test" 开头的所有 div 元素的背景色: div[class^="test"] { background:#ffff00; ...

  8. Assembly oth

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  9. 【Java框架型项目从入门到装逼】第十二节 项目分层

    这一节我们开始对项目进行分层,一般来说,一个web项目的层次结构如下图所示: controller层为我们的控制层,用来接收用户的请求,比如新增一个学生的信息,新增的请求最先就是走到这一层.contr ...

  10. python_如何对迭代器进行切片操作

    案例: 对于某个文件,我只想读取到其中100~200行之间的内容,是否可以通过切片的方式进行读取? 我想: f = open() f[100:200] 可行? 如何解决这个问题? 方法1: 全部读取到 ...