网络初级篇之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轻量级开源框架 入门篇: 删除数据详解 ...
随机推荐
- rsync+inotify实时数据同步
没有实际的用过,先mark一下,后面实践. https://www.osyunwei.com/archives/7447.html 一.为什么要用Rsync+sersync架构? 1.sersync是 ...
- R语言与概率统计(二) 假设检验
> ####################5.2 > X<-c(159, 280, 101, 212, 224, 379, 179, 264, + 222, 362, 168, 2 ...
- java和delphi共用的des加密解密
java: import antlr.StringUtils;import org.jeecgframework.core.util.StringUtil; import java.security. ...
- windows端口映射
1. 查看netsh interface portproxy show all 2. 添加端口映射转发netsh interface portproxy add v4tov4 listenaddres ...
- 安装neutron
在控制节点上执行 controllerHost='controller' MYSQL_PASSWD='m4r!adbOP' RABBIT_PASSWD='0penstackRMQ' NOVA_PASS ...
- D3学习之坐标系绘制
坐标轴的绘制我们需要搞清楚以下三个要点: 1).axis函数 2)..call()函数用于组合 3).坐标轴的平移旋转 关于第三点其实就是"transform","tra ...
- 【并行计算-CUDA开发】有关CUDA当中global memory如何实现合并访问跟内存对齐相关的问题
ps:这是英伟达二面面的一道相关CUDA的题目.<NVIDIA CUDA编程指南>第57页开始 在合并访问这里,不要跟shared memory的bank conflic ...
- C++ min函数
min 是c++标准库头文件中的一个重要的函数.它的功能是一个最小值的函数,比较两个数值的大小,返回他们的之间最小值. #include <algorithm> int a=2; int ...
- 深入理解C语言-二级指针三种内存模型
二级指针相对于一级指针,显得更难,难在于指针和数组的混合,定义不同类型的二级指针,在使用的时候有着很大的区别 第一种内存模型char *arr[] 若有如下定义 char *arr[] = {&quo ...
- HDU 1688 Sightseeing 【输出最短路+次短路条数】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1688 题目大意:给n个点,m条有向边.再给出起点s, 终点t.求出s到t的最短路条数+次短路条数. 思 ...