STP学习总结
STP学习总结
STP是广泛应用在二层的具有冗余的网络中用来消除环路的一种机制,当然二层环网中用来消除环路的技术还有RRPP和H3C的smart-link技术等。
一、STP的一些基本概念
STP是IEEE802.3D定义的,在二层网络中阻塞冗余链路,消除环路的一种,STP包含:STP、RSTP和MSTP等。
1、 根桥:网络中根优先级最小的那台交换机称为根桥,默认的优先级为32768。根桥优先级的步长为4096的整数倍,取值范围为0~61140。
2、 桥优先级:表示桥的优先级。
3、 根端口:根桥上的所有端口都是根端口,非根桥上离根桥开销最小的那个端口称为根端口。
4、 指定端口:在指定的物理网段上到根桥开销最小的那个端口。
5、 桥ID:桥优先级由桥MAC两部分组成。桥ID越小越有可能称为根桥。
6、 路径开销用来衡量桥与桥之间链路的优劣。
7、 BPDU:桥协议数据单元,在STP中存在两种BPDU,一种为配置BPDU,另外的一种为TCN BPDU,用来通告拓扑的变化。
二、STP计算过程
1、 根桥的选举
假设SW1的桥优先级为0,当上图网络中的所有设备启用STP特性后,会从和其他交换机相连的端口泛红以自己为根桥的BPDU,当交换机收到比自己更优的根桥ID的时候,便会使用该值填充BPDU中根桥的字段,通过一段时间的相互发送和比较后,由于SW1的交换机手工设置的优先级为0,此时,在整个网络中SW1为根桥。
2、 端口角色的确定
根桥上的端口都是指定端口DP,那么上图SW1的1和2号端口为指定端口,SW2为1-3网段的指定桥,SW3为2-4网段的指定桥,3和4端口为根端口,3-4网段1-3的路径比经过3-4-2这样的路径的开销要小,因此3号口味3-4网段的指定端口,阻塞4号端口。
SW4到达根桥的开销走7-5-3-1和8-6-4-2都是一致的,此时将会进行指定桥优先级,此时7为根端口。
SW5到达根桥的开销无论怎么出发都是一致的,此时将会进行指定桥端口的优先级,优先级小者优先,因此9号端口为根端口。
三、STP的端口状态
STP的端口状态包括:disable 、blocking、Listening、learning、Forwarding等状态,disable状态即端口没有启用stp特性,此时端口正常首发用户数据帧。
Blocking状态:端口处于阻塞状态的时候,仅接受BPDU,不发送BPDU。
Listening状态:端口处于监听状态,该状态是一个过渡状态,此时端口从blocking开始学习mac。但是在该状态仍然不进行用户数据帧的转发。
Learning状态:端口处于MAC学习状态,该状态规定仍然不进行用户数据帧的转发。
Forwarding状态:转发状态,只有当端口改变成为forwarding状态的时候才会进行数据帧的转发
四、STP的拓扑的处理机制
在STP中,从listening状态到forwarding需要经过两倍的Forward-delay时间,Forward-delay的时间为15s。
在STP中,当根桥选择完毕之后,根桥产生的BPDU从指定端口发出,非根桥从根端口接受,从指定接口转发出去,非根桥本省并不产生自身的BPDU。
当拓扑变化的时候,网桥感知拓扑变化,产生TCN置位的BPDU,通知根桥,根桥接收后会发送TCA置位的BPDU,并且产生TC置位的BPDU,下游网桥接收到根桥发送的TC置位的BPDU,会将MAC的老化时间设置为15s。
因此在STP中,当拓扑发生变化的时候网络的收敛时间可能为30s或者50s。
BPDU报文中的flag字段的第0位置1为TCN报文,第7位置1为TCA报文。
五、STP的缺点
1、 拓扑的收敛速度很慢,不适用于灵敏性的应用。
2、 当网络中的大量主机上线和下线时,拓扑会发生变化,对拓扑的控制不够灵活。
六、RSTP协议
802.3w规定的快速生成树协议,收敛机制和拓扑变化相应机制比STP快很多,主要的亮点有:
1、边缘端口
RSTP中可以手动将一些连接终端设备的端口设置为边缘端口,当一个端口被设置为边缘端口后,主机接入后可以直接进入转发状态,而且边缘端口主机频繁上线和下线时不会对整个拓扑造成影响。
3、 端口是根端口
在RSTP中,Alternate端口是根端口的一个备份口,当根端口故障时,备份端口可以马上进入转发状态,几乎不需要延迟。
4、 端口是指定端口
RSTP中指定了P/A机制,指定借口可以和对端网桥进行一次握手,即可进入转发状态,不依赖任何计数器,但是握手的前提必须是在点到点的链路中。
5、 P/A机制
BPDU报文中的flag字段,第一位是P置位,第六位是A置位。
6、 收敛机制
下游网桥收到TC置位的BPDU后会清除除TC报文接受端口除外的其余端口的MAC地址,并在两倍的Hello-time时间内向指定端口和根端口发送TC置位的RST BPDU。
7、 RSTP 可以兼容STP。
七、MSTP
Mstp是802.s规定的,可以实现不同vlan的流量的负载和多实例。
STP学习总结的更多相关文章
- 云计算--网络原理与应用--20171122--STP与HSRP
简单了解STP 学习HSRP 实验 一. 简单学习STP STP(spanning tree protocol)生成树协议,就是把一个环形的结构改变成一个树形的结构.通过一些算法,在逻辑上阻塞一些端 ...
- H3CNE学习5 STP
一.STP 1.概念 2.STP开机默认会运行 二.STP操作 1.原理 2.根桥选举,首先比前面的ID,谁小谁就是根桥,如果ID一样就比较mac,谁小谁就是根桥 可以手动修改优先级,图中可以将swA ...
- CCNA网络工程师学习进程(6)vlan相关协议的配置与路由器简单配置介绍
前面已经介绍了大部分与vlan技术相关的交换机的协议的配置,更深层次的还有STP协议和以太网端口聚合技术,接着还会简单介绍一下路由器的基本应用. (1)STP(Spanning-tre ...
- 系统吞吐量(TPS)、用户并发量、性能测试、IO负载学习
目录 . 如何评价一个系统的性能 . 系统吞度量 . 网络上下行数据量 . 客户端-服务端TCP同时长连接数量 . 系统性能的指标计算 . 系统IO负载 1. 如何评价一个系统的性能 在文章的开始,我 ...
- 浅议SNMP安全、SNMP协议、网络管理学习
相关学习资料 tcp-ip详解卷1:协议.pdf(重点看25章SNMP部分) http://www.rfc-editor.org/rfc/rfc1213.txt http://www.rfc-edit ...
- JMeter学习-014-JMeter 配置元件实例之 - 用户定义的变量 参数化配置
前文讲述了通过 CSV Data Set Config 实现参数化配置(详情敬请参阅:JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置), ...
- STP详解
STP详解 Write From YangWj Wednesday, March 5, 2014 一. 生成树协议 STP的主要任务是阻止在第2层网络(网桥或交换机)产生网络环路,它警惕的监视着网络中 ...
- 【转】不同VLAN之间相互通信及VTP、STP、EtherChannel概念
厘清最后一个概念. 转了网上两个相关帖子: http://www.net130.com/CMS/Pub/Tech/tech_zh/2009_03_12_97386_3.htm http://blog. ...
- OSI模型第二层数据链路层-STP协议
1.stp协议的由来. 在二层网络中,交换机起到了很重要的作用,如果有一台交换机出现故障会影响网络的使用,为了避免存在单点故障,在实际的二层链路中会采用链路冗余,也就是采用交换设备之间多条联络连接,即 ...
随机推荐
- TCP/IP笔记 一.综述
1. TCP/IP分层 TCP/IP 是四层的体系结构:应用层.运输层.网际层和网络接口层,如下图: OSI协议是国际标准的网络协议,但是由于OSI的实用性等问题造成OSI没有流行起来.目前国际上广泛 ...
- 采用管道处理HTTP请求
采用管道处理HTTP请求 之所以称ASP.NET Core是一个Web开发平台,源于它具有一个极具扩展性的请求处理管道,我们可以通过这个管道的定制来满足各种场景下的HTTP处理需求.ASP. NET ...
- Boost Thread学习笔记五
多线程编程中还有一个重要的概念:Thread Local Store(TLS,线程局部存储),在boost中,TLS也被称作TSS,Thread Specific Storage.boost::thr ...
- 自定义ALV控件的工具条按钮
*&---------------------------------------------------------------------* *& Report YTEST028 ...
- Eclipse在点击运行后不能自动保存的解决
今天在eclipse上写程序调试时,发现当我点击运行按键之后,并不能在运行前帮我自动保存,也就是说每次修改代码之后, 运行的还是前一次运行之前的代码,并不是修改之后的代码,因此通过在网上搜索解决方案之 ...
- 使用微软Remote Desktop 手机远程控制 windows
在我的电脑上右击选择“属性”,打开属性面板.然后点击左边的“远程设置”. 2/2 如果你要操作的计算机出入外网(大多数是家里网线进线直连电脑),就选择远程桌面选择框中的“允许运行任意版本远程桌面的计算 ...
- Delphi中获取某类的祖先类及其所在单元名称(使用GetTypeData(PClass.ClassInfo)函数,并且该类是从TPersistent类的派生类才可以这么使用)
前几天在CSDN社区看到一篇<如何得到自身单元名称>的帖子,其中一位名为sdzeng网友给出了答案.受此启发,自己写了一个函数,用来获取指定类的所有祖先类的名称及其所在的单元名称. //参 ...
- find查找大于1M小于10M的文件 $ find . -size +1M -size -10M
查找大于1M小于10M的文件$ find . -size +1M -size -10M
- Velocity教程-脚本语法详解(转)
Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象. 当Veloci ...
- 浙江大学PAT上机题解析之2-06. 数列求和
给定某数字A(1<=A<=9)以及非负整数N(0<=N<=100000),求数列之和S = A + AA + AAA + … + AA…A(N个A).例如A=1, N=3时,S ...