RSTP基础知识

RSTP基础知识

因为STP收敛速度过慢,远远低于三层协议的收敛,所以,后来推出了快速STP。RSTP引入了一些新的功能:比如端口角色增加,端口状态减少,配置BPDU格式进行了修改,能实现快速收敛。

一、 新的端口角色

AP:如果该端口不属于所连接网段的指定交换机,则端口状态为预备端口,预备端口是根端口的备份

BP:对于非根非指定端口,如果这个端口属于所连接网段的指定交换机,则端口状态为备份端口,备份端口是指定端口的备份(BP能接收到自己发送的BPDU)

另一种解释:

从配置BPDU的角度来看:

AP就是由于学习到其它网桥发送的配置BPDU报文而阻塞的端口

BP就是由于学习到自己发送的配置BPDU报文而阻塞的端口

从用户流量角度来看:

AP提供了从指定桥到根的另一条可切换路径,作为根端口的备份

BP作为指定端口的备份,提供了另一条从根桥到相应网段的备份。

二、新的端口状态

forwarding:转发状态

learnning:学习状态

discarding: 华为的传统STP也discarding状态,而不是blocking。 在快速生成树中,discarding状态包括了 listening blocking和disbled 如果不转发用户流量也不学习MAC地址,端口状态是discarding.

三、如何实现快速收敛

1. RP端口的快速切换:如果一个交换机根端口丢失,且它有AP端口,那么它将快速切换AP为RP。

2. DP端口发起的提议/协定:在点到点的链路上,由指定端口发起proposal,根端口收到以后,会将本交换机除边缘端口以外的正在转发的接口置于discarding状态,然后向上游回复agreement,这样,这一对指定端口--根端口完成了收敛,接着再进行下一层的收敛。这个P/A收敛机制是从根桥一直向下游实现。

3. 三倍hello时间超时:华为的设备在标准的RSTP上,需要诚意一个时间因子,默认为3.即3倍hello超时为18秒。

4. 边缘端口引入,当一个端口被配置为边缘端口以后,它能立即进入转发状态。它不参与RSTP的运算。 如果一个边缘端口收到了BPDU,那么它将放弃边缘端口的属性,成为普通的STP端口。(当一个交换机的两个边缘端口连接到一台关闭了STP的华为交换机上,会形成环路。因为关闭了STP的华为交换机会过滤STP报文。实验表明:非边缘端口这样接也会引起环路。)

四、 配置BPDU的变化

1. 非根桥设备也可以发送配置BPDU

2. BPDU超时:3倍hello时间 * 时间因子(3),18秒

3. 对于次优BPDU的处理:当一个接口收到了上游指定交换机发送过来的RST配置BPDU后,该端口会将自身存储的BPDU与收到了BPDU进行比较。如果该端口存储的RST BPDU比收到的RST BPDU更优,那么该端口会直接丢弃收到的RST BPDU,并且将自己的RST BPDU回应给上游。当上游收到下游设备的RST BPDU以后,上游设备会根据收到的RST BPDU报文中相应的字段立即更新自己存储的RST BPDU。RSTP收到次级BPDU以后不依赖于任何定时器通过超时来解决拓扑收敛。

五、RSTP如何实现P/A快速收敛机制

RSTP通过对STP协议的改进,实现了快速收敛。

链路为点对点,RSTP按照P/A快速收敛进入转发状态:

  1. 上游设备发送Proposal报文,启动等待定时器。
  2. 下游设备堵塞全部其它端口,回应上游Agreement报文。
  3. 上游设备收到Agreement报文,端口进入转发状态。

通过一层一层的往下游请求,下游同意快速收敛,上游进入转发,实现整个RSTP网络快速收敛。

原文地址:http://blog.51cto.com/liu008qing/2147751

时间: 2024-11-06 09:57:03

RSTP基础知识的相关文章

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

BroadcastReceive基础知识总结

BroadcastReceive基础知识总结 1.BroadcastReceive简介 BroadcastReceive也就是"广播接收者"的意思,顾名思义,就是用来接收来自系统和应用中的广播 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能,当网络状态改变时,系统会产生一条广播,接收到这条广播,就能及时的做出提示和保存数据等操作,当电池的电量改变的时候,系统会产生一条广播,接收到这条广播就能在电量低的时候告知用户

基础知识--:before伪元素和:after伪元素

http://book.51cto.com/art/201108/285688.htm 3.7  替换指定位置 大家都知道before和after是前.后的意思.但是奇怪的是,CSS中的:before伪元素和:after伪元素是为源文档中不存在的内容设置样式的. 没有内容怎么设置样式呢?别急!它们有一个content属性,一起使用就可以为某个选择器前.后的内容设置样式了. 下面就来了解一下:before伪元素和:after伪元素的用法. 视频教学:光盘/视频/3/3.7  替换指定位置.avi 

20_Shell语言———VIM编辑器基础知识三之窗口属性定制、配置文件及查找替换功能

Vim编辑器可以让用户按照需求来定制一些使用属性. 一.窗口属性定义 1)显示行号 行号不是内容,只是用来帮助用户确认文本所在的行.在vim编辑器中,如果要显示行号,可以在末行模式下输入: set number 如果想关闭,则可以在功能名称前面加上no,即: set nonumber 命令可以被简写,如set number 可以简写为 set nu:set nonumber 可以简写为 set nonu. 注意,上述设定仅对当前vim的进程有效,一旦当前进程关闭,这些设定就会失效,如果要使设定永

web基础知识(一)关于ajax传值最基础东西

HTTP方法之 GET对比POST GET:从指定的资源请求数据, POST:向指定的资源提交要被处理的数据 GET方法: 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的: /test/demo_form.asp?name1=value1&name2=value2 有关 GET 请求的其他一些注释: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回

线程基础知识

什么是线程: 在一个程序里的一个执行路线就叫做线程(thread).更准确的定义是:线程是"一个进程内部的控制序列" 一切进程至少都有一个执行线程 进程与线程 进程是资源竞争的基本单位 线程是程序执行的最小单位 线程共享进程数据,但也拥有自己的一部分数据 线程ID 一组寄存器 栈 errno 信号状态 优先级 fork和创建新线程的区别 当一个进程执行一个fork调用的时候,会创建出进程的一个新拷贝,新进程将拥有它自己的变量和它自己的PID.这个新进程的运行时间是独立的,它在执行时几乎

Keepalived基础知识

大纲: 一.什么是Keepalived? 二.VRRP协议简介. 三.Keepalived原理. 四.Keepalived配置文件详解. 五.Keepalived配置示例. 一.什么是Keepalived? 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,那说到keepalived时不得不说的一个协议就是VRRP协议,可以说这个协议就是

【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识

前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy.Pandas和Matplotlib三个包.目录:        一.Python常用扩展包        二.Numpy科学计算包        三.Pandas数据分析包        四.Matplotlib绘图包 前文推荐:       [Python数据挖掘课程]一.安装Python及爬虫入门介绍       [Python数据挖掘课程]二.K