网络初级篇之STP(BPDU详解与STP故障恢复)
一、BPDU包含的参数

通过STP的原理,我们学习了红色部分的字段(根桥ID、根路径开销、桥ID、端口ID)。现在讲解一下黄色部分的字段(类型、计时器、老化时间、访问时间)
1、(BPDU Type)BPDU类型
BPDU报文共有两种类型:配置BPDU与TCN BPDU。一般情况下,配置BPDU是根桥发送给各个桥的报文;而TCN BPDU是当网络拓扑中的桥发现网络拓扑发生变化时,向根桥发送的报文。
2、计时器
BPDU报文在网络中的生存周期(配置BPDU报文每经过一台桥设备,报文老化时间+1)
3、最大老化时间
BPDU报文在网络中最大的老化时间(当报文老化时间大于最大老化时间时,BPDU报文将被丢弃。桥设备将根桥看做不可用前保留根ID的最大时间。最大老化时间可修改,默认为20秒)
4、访问时间
根桥经过特定的时间向其他桥设备发送BPDU报文,为STP生成树包活,这一特定的时间就是访问时间(每间隔2秒一次)
5、转发延时
端口状态改变时所需要的时间(30秒)
二、常碰到的问题
1、根桥故障时

当根桥发生故障时,不会再向其他桥设备发出配置BPDU报文。当非根桥没有收到根桥发出的配置BPDU报文后,会等待一个最大老化时间(默认时间20秒)。当到达最大老化时间后,非根桥会认为根桥网络不可达(根桥故障),使原本阻塞的端口会由阻塞状态(阻塞状态只接收对端发送的配置BPDU报文,不能发送BPDU;不能参与数据的转发)变为监听状态(监听状态是选举根与各个端口类型的状态,此时依旧不能参与数据的转发),此变化过程需要15秒的时间。之后,端口状态由监听状态变为学习状态(此过程需要15s的时间)。处于学习状态的端口可以学习接收到的数据中的MAC地址,此时依旧不能转发数据。再次经过15秒后,端口状态由学习状态变化为转发状态,此时,端口恢复数据的转发。
从上面可以看出:在STP中,当根桥出现故障时,会自动重新选举新的根桥与各个端口(根端口、指定端口、阻塞端口)。经过(20秒+15秒*2=50秒)的时间才会恢复数据的转发。
2、直连链路发送故障

当上图的链路发生故障时,由于另外一条链路仍然可以收到根桥发出的配置BPDU报文,所有LSW2会立刻知道链路发生问题。原本的阻塞端口会变成监听状态,在变为学习状态,最后变为转发状态,整个过程会用2*15秒=30秒的时间。
从上面可以看出:在STP中,当直连链路发生故障时,需要经过30秒的时间才会恢复网络数据的转发。
3、非直连链路发生故障

当上图链路发生故障时,LSW2会感知到链路发生故障,会以自己为根桥给LSW3发送配置BPDU报文。当LSW3收到LSW2的配置BPDU报文后,与收到根桥(LSW1)的配置BPDU报文进行对比,对比发现LSW2发送的配置BPDU报文不是最优的,便不理会。当LSW3经过一个最大老化时间(默认20秒)后,LSW3上的阻塞端口由于收不到来自根桥的配置BPDU,便由阻塞状态转换为转发状态,将根桥的配置BPDU报文发送给LSW2。当LSW2收到根桥的配置BPDU报文后,与自己的配置BPDU报文进行对比。发现不是最优配置BPDU报文,然后进行端口收敛。整个过程会持续(20秒+2*15秒=50秒)的时间。
从上面可以看出:在STP中,当非直连链路发生故障时,需要经过50秒的时间才会恢复数据的转发。
三、TCN TC TCA 与MAC地址表
MAC地址表的默认老化时间为300秒,当网络拓扑发生变化,桥设备的端口可能发生变化,相应的MAC地址表可能会发生错误(MAC地址表中记录MAC地址与端口对应错误)。
当网络拓扑发生变化时,出现变化或者发现链路发生故障的桥设备会向外发送TCN BPDU报文,而接受到TCN BPDU的设备会向TCN BPDU报文的发送端发送TCA BPDU报文进行应答,并且会向外继续发送TCN BPDU报文。当根桥接收到TCN BPDU报文后,会向外发送TC BPDU报文,以告知所有的桥设备网络拓扑发生改变。接收到TC BPDU报文的桥设备,MAC地址表的老化时间由300秒(默认)自动修改为15秒(华为设备为5秒,没试验,不确定)。
四、BPDU扩展

网络初级篇之STP(BPDU详解与STP故障恢复)的更多相关文章
- 计算机网路中CDP,LLDP,STP的详解
CDP,LLDP,STP知识详解 (1) CDP CDP(Cisco Discovery Protoco:Cisco发现协议)是Cisco专有的用来发现邻接点的协议 ,所有的Cisco产品都支持CDP ...
- 【初级】linux rm 命令详解及使用方法实战
rm:删除命令 前言: windows中的删除命令大家都不陌生,linux中的删除命令和windows中有一个共同特点,那就是危险,前两篇linux mkdir 命令详解及使用方法实战[初级]中我们就 ...
- SaltStack 入门到精通第二篇:Salt-master配置文件详解
SaltStack 入门到精通第二篇:Salt-master配置文件详解 转自(coocla):http://blog.coocla.org/301.html 原本想要重新翻译salt-mas ...
- Linux网络状态工具ss命令使用详解【转】
ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...
- Linux 网络流量实时监控工具之ntopng详解
大纲一.前言二.ntopng 简介三.ntopng 功能说明 四.ntopng 安装详解五.ntopng 配置详解 六.ntopng 使用详解注,操作系统 CentOS 5.5 X86_64,软件版本 ...
- SaltStack 入门到精通第三篇:Salt-Minion配置文件详解
SaltStack 入门到精通第三篇:Salt-Minion配置文件详解 作者:ArlenJ 发布日期:2014-06-09 17:52:16 ##### 主要配置设置 ##### 配置 默认值 ...
- (转)Linux网络状态工具ss命令使用详解
Linux网络状态工具ss命令使用详解 原文:http://www.landui.com/help/show-5991.html ss 是 socket statistics 的缩写.顾名思义,ss ...
- Farseer.net轻量级开源框架 入门篇:添加数据详解
导航 目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 分类逻辑层 下一篇:Farseer.net轻量级开源框架 入门篇: 修改数据详解 ...
- Farseer.net轻量级开源框架 入门篇:修改数据详解
导航 目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 添加数据详解 下一篇:Farseer.net轻量级开源框架 入门篇: 删除数据详解 ...
随机推荐
- lumen中间件中设置响应header
<?php namespace App\Http\Middleware; use Closure; class BeforeMiddleware { public function handle ...
- Spring Cloud(2):服务发现(Eureka)
Spring Cloud Eureka是Spring Cloud Netflix项目下的一个模块,作用是服务的注册和发现,并实现服务治理.它有一个(或一组,以实现高可用)服务注册中心(eureka s ...
- Linux学习—mysql安装配置及远程连接
安装前准备 1.检查是否已经安装过mysql 执行命令 [root@localhost /]# rpm -qa | grep mysql 从执行结果,可以看出我们已经安装了mysql-libs-5. ...
- 用js的方式运行c程序之webassemly
在这里就不科普webassemly的作用以及好处了,请自行百度. 那么,怎么通过js的方式在浏览器中运行c程序呢,其中原理如下: 可能另一张图会更详细: 1.安装emscripten 说明文档地址:h ...
- HashMap、Hashtable 以及HashSet
关于多线程的问题大多会涉及到Collection框架,涉及到Collection框架就不得不谈HashSet和HashMap.HashMap和HashSet都是collection框架的一部分,它们让 ...
- d3实现折线图
如果觉得作者写的对你有用,可以打赏作者哦!owo 多少不限,支持而已. 实现折线图不得不说的是d3的线段生成器: 假设data=[1,2,5,7,5,8,2,6]var line = d3.svg. ...
- USACO4.4 Shuttle Puzzle【bfs+优化】
直接上$bfs$,每一个状态记录下当前字符串的样子,空格的位置,和走到这个状态的答案. 用空格的位置转移,只有$50pts$ 考虑到题目一个性质:$W$只往右走,$B$只往左走,就可以过了. #inc ...
- freeRTOS学习二
临界段,用一句话概括就是一段在执行时不能被中断的代码段. 临界段被打断的情况,一个是系统调度,还有一个就是外部中断. 对临界段的保护就是对中断的开和关. 空闲任务与阻塞延时 xTicksToDelay ...
- 9.centos7 安装mysql
sudo yum install libaio # 安装依赖包 检查 MySQL 是否已安装 sudo yum list installed | grep mysql 也可以通过命令 rpm -qa| ...
- poj 3320 复习一下尺取法
尺取法(two point)的思想不难,简单来说就是以下三步: 1.对r point在满足题意的情况下不断向右延伸 2.对l point前移一步 3. 回到1 two point 对连续区间的问题求 ...