STP生成树协议详解
看了网上关于STP生成树的解释感觉不是很懂,随即自己研究了一番
如有错误,欢迎指正,欢迎留言
--------------------------------------------------------------------------------------------------------------------
首先我们来了解一下为什么会有STP协议,即它能解决什么问题。
在企业里,为了防止线路故障,通常会做线路冗余,由于交换机会转发所有广播,所以会产生以下的问题:
1.广播风暴。广播会在交换网络里无限传播,且越来越严重,直至占满交换机资源。
2.重复帧。目标主机会收到越来越多的重复帧,这些重复帧可能每一个都需要回复。
3.MAC地址表不稳定。由于交换机的自学习,使得发送广播的主机的MAC地址(即源MAC)不停的出现在交换机不同的接口。
所以出现了STP生成树协议,将多余的线路自动阻塞,防止以上的问题;当有线路故障时,又会生成新的生成树,原本阻塞的某一段又会重新开始转发帧,以达到线路冗余的目的。
我们来熟悉一下STP生成树的术语:
桥ID:网桥的优先级(2字节)+本网桥最小MAC地址(6字节)
网桥优先级默认为32768
每一个交换机都有一个桥ID
端口ID:端口优先级(1字节)+端口号(1字节)
端口优先级默认为128
每一个端口都有一个端口ID
BPDU:桥协议数据单元,包含了网桥ID和Cost等信息
选举过程:
1.选择根桥
具有最小网桥ID的交换机成为根桥
2.每个网桥选择一个根端口
①选取端口(注意是端口)到达根桥Cost值最小的端口作为根端口
②若以上相同,则选取BPDU发送方网桥ID最小的
③若以上均相同,则选取BPDU发送方端口ID最小的
带宽 Cost
10Gbps 2
1Gbps 4
100Mbps 19
10Mbps 100
3.每一个段选择一个指定端口
①选取网桥(注意是网桥)到达根桥Cost值最小的端口作为根端口
②若以上相同,则选取BPDU发送方网桥ID最小的
③若以上均相同,则选取BPDU发送方端口ID最小的
注意:已经成为根端口的端口不再参与指定端口的选举
4.既不是根端口也不是指定端口的,进入阻塞状态
选举过程中端口的状态:
Disable:不发送任何报文(端口处于关闭状态)
Blocking:接收但不转发BPDU,不学习MAC地址,不接收也不转发帧(阻塞状态,但接收BPDU,需要时转为Listening)
Listening:接收且转发BPDU,不学习MAC地址,不接收也不转发帧(监听状态,发送和接收BPDU)
Learning:接收且转发BPDU,学习MAC地址,不接收也不转发帧(开始学习MAC地址)
Forwarding:接收且转发BPDU,学习MAC地址,接收并转发帧(开始转发数据包)
端口状态变化过程:
Blocking-->Listening-->Learning-->Forwarding
①网桥开始活动后自动由Blocking转为Listening。
②在Listening阶段完成选举(20s),若为根端口或者指定端口则转为Learning,否则Blocking。
③在Learning阶段(15s)开始学习MAC地址,为数据转发做准备工作。
④Forwarding阶段(15s)就可以开始数据转发了。
读者可以根据下面的拓扑图练习一下STP生成树
通过sh int | include bia 可以查看交换机的MAC地址
通过sh spanning-tree可以查看各端口的状态
谢谢阅读。
STP生成树协议详解的更多相关文章
- HTTP协议详解(转)
转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...
- HTTP协议详解
Author :Jeffrey 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...
- 动态选路、RIP协议&&OSPF协议详解
动态选路.RIP协议&&OSPF协议详解 概念 当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路.路由器之间必须采用选路协议进行通信,这样的选路协议 ...
- ASP.NET知识总结(3.HTTP协议详解)
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...
- 接口测试之HTTP协议详解
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...
- 计算机网络(12)-----HTTP协议详解
HTTP协议详解 http请求 http请求由三部分组成,分别是:请求行.消息报头.请求正文 (1)请求行 请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Metho ...
- OSPF协议详解
CCNP OSPF协议详解 2010-02-24 20:30:22 标签:CCNP 职场 OSPF 休闲 OSPF(Open Shortest Path Fitst,ospf)开放最短路径优先协议,是 ...
- HTTP协议详解(真的很经典)
HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展.目前在WWW中使用的是HTTP/1.0 ...
- HTTP协议详解--转载http://blog.csdn.net/gueter/article/details/1524447
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...
- 关于http协议详解
Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前 ...
随机推荐
- STM32中的看门狗
先复制一段度娘的东西: 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个 ...
- Higress 基于自定义插件访问 Redis
简介 基于 wasm 机制,Higress 提供了优秀的可扩展性,用户可以基于 Go/C++/Rust 编写 wasm 插件,自定义请求处理逻辑,满足用户的个性化需求,目前插件已经支持 redis 调 ...
- 【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论
目录 一.爬取目标 二.展示爬取结果 三.爬虫代码 四.同步视频 五.附完整源码 您好,我是@马哥python说,一枚10年程序猿. 一.爬取目标 之前,我分享过一些B站的爬虫: [Python爬虫案 ...
- C#中的对象深拷贝和浅拷贝
目录 C#中的对象深拷贝和浅拷贝 概述 1. 浅拷贝 2. 深拷贝 总结 引用 C#中的对象深拷贝和浅拷贝 概述 在C#中,对象拷贝是指将一个对象的副本创建到另一个对象中.对象拷贝通常用于数据传输或创 ...
- Splashtop用于远程实验室的功能得到增强
加利福尼亚州圣何塞,2020年8月11日,远程访问和远程支持解决方案的领导者Splashtop Inc. 宣布更新其 Splashtop for Remote Labs 产品.该产品旨在帮助学生通 ...
- 4G EPS 中建立 UE 与 eNB 之间的 RRC 连接
目录 文章目录 目录 前文列表 RRC 连接 Radio Bearer SRB UE 与 eNB 建立 RRC 连接的流程 前文列表 <4G EPS 中的小区搜索> <4G EPS ...
- 4G EPS 中的消息类型
目录 文章目录 目录 消息 MIB(主消息块) SIBs(多个系统消息块) 系统消息的映射和调度 系统信息的更改通知 消息 LTE 的系统消息是蜂窝网络与 UE 互相交互的与 LTE 系统相关的.特殊 ...
- PageOffice 6 给SaveFilePage指向的保存地址传参
PageOffice给保存方法传递参数的方式有两种: 通过设置保存地址的url中的?传递参数.例如: poCtrl.setSaveFilePage("/save?p1=1") 通过 ...
- 微信H5分享不能展示卡片问题
来源与微信开放社区 微信H5已成功接入,微信api以及配置项验证正常,通过手机微信里面链接打开页面进行分享,分享出去的还是链接, 需要从以下场景进入才可以正常分享卡片 从二维码进入 分享卡片进入 公众 ...
- RuoYi(若依)前后端分离版本,windows下部署(nginx)
摘自:https://blog.csdn.net/yueyekkx/article/details/105505490 上一篇用了tomcat部署(https://blog.csdn.net/yuey ...