文章出处:www.net1980.com网络
STP(生成树协议)、RSTP(快速生成树协议)、MSTP(多生成树协议),这三个协议都是二层交换网络中为了防止环路和实现链路冗余而设计的,他们之间有什么区别与联系呢?本文为您详细介绍。负载均衡
STP、RSTP、MSTP基本概念ide
一、STP(802.1d)学习
STP协议生来就是为了冗余而存在的,单纯树型的网络没法提供足够的可靠性,由此咱们引入了额外的链路,这才出现了环路这样的问题。但单纯是标准的802.1D STP协议并不能实现真正的冗余与负载分担。spa
STP为IEEE 802.1D标准,它内部只有一棵STP tree,所以必然有一条链路要被blocking,不会转发数据,只有另一条链路出现问题时,这条被blocking的链路才会接替以前链路所承担的职责,作数据的转发。不管怎样,总会有一条链路处于不被使用的状态,冗余是有了,可是负载分担是不可想象的。.net
cisco对STP作了改进,它使得每一个VLAN都运行一棵stp tree,这样第一条链路能够为vlan 1 2 3服务,对vlan 4 5 6 blocking,第二条链路能够为vlan 4 5 6 forwarding,对vlan 1 2 3关闭,无形中实现了链路的冗余,负载分担。这种技术被称之为PVST+随着网络的发展,人们发现传统的STP协议没法知足主备快速切换的需求,由于STP协议将端口定义了5种状态,分别为:blocking listening learning forwarding disabling,想要从blocking切换至forwarding状态,必须要通过50秒的周期,这50秒咱们只能被动地去等待。20秒的blocking状态下,若是没有检测到邻居发来的BPDU包,则进入listening,这时要作的是选举Root Bridge、Designate Port、Root Port,15秒后,进入learning,learning状态下能够学习MAC地址,为最后的forwarding作准备,一样是15秒,最后到达转发状态。这样的延时在现代网络环境下是让人极为难以忍受的。设计
二、RSTP(802.1w)ci
RSTP的出现解决了延时的问题,它的收敛速度很快,固然CISCO也针对这种技术推出了自已的RPVST+技术。RSTP在STP基础上额外定义了两种port role(注意这里的概念,端口角色),分别是alternate与backup。另外从新规定了port state(端口状态),分别为discarding、Learning、Forwarding.get
STP的一大失败之处在于混淆了port role与port state两种概念,在RSTP上,这样的问题再也不存在了,port state与port role无关了。alternate port责任是为另外一台交换机上的链路做备份,而backup port是为本交换机上的端口做备。it
RSTP最重要的变化在于对BPDU中type字段的利用上,以前STP只使用了其中的两个位,另外6个位中实现了不少的功能,包括再也不须要去等待50秒的时间完成主备切换,直接利用proposal与agreement协商便可,这样大大缩短了收敛时间。
RSTP还定义了两个新的概念:edge port与link type,若是是edge port,代表下面接的只能是主机,环路的存在是不可能的,因此咱们能够直接将其从discarding切换到forwarding状态,相似于STP中的port fast技术。而link type定义了这条链路是point-to-point的仍是shared。若是有pt-pt环境下,咱们就能够作快速的切换了。
三、MSTP(802.1s)
STP和RSTP都采用了一棵STP tree,负载分担不可实现,而CISCO的PVST+与RPVST+采用了每一个VLAN一棵生成树,虽然实现了负载分担,可是会占用很是多的CPU时间。这也正是MSTP(802.1s)产生的缘由
MSTP能够将多个VLAN的生成树映射为一个实例,即vlan map to a instance,咱们不须要那么多的生成树,只须要按照冗余链路的条数来得出须要几棵生成树。
若是只有两条链路,而且有1-1000个VLAN,咱们能够将1-500定义为instance 1,将501-1000定义到instance 2。只生成两棵树1和2,一样实现了冗余与负载分担。
MSTP是基于RSTP的,没有RSTP,MSTP是没法运行的。
STP、RSTP、MSTP的对比分析总结
一、STP不能使端口状态快速迁移,即便是在点对点链路或边缘端口,也必须等待2 倍的Forward delay 的时间延迟,端口才能迁移到转发状态。
二、RSTP能够快速收敛,可是和STP 同样存在如下缺陷:局域网内全部网桥共享一棵生成树,不能按VLAN 阻塞冗余链路,全部VLAN 的报文都沿着一棵生成树进行转发。
三、MSTP将环路网络修剪成为一个无环的树型网络,避免报文在环路网络中的增生和无限循环,同时还提供了数据转发的多个冗余路径,在数据转发过程当中实现VLAN 数据的负载均衡。
四、MSTP兼容STP 和RSTP,而且能够弥补STP 和RSTP的缺陷。它既能够快速收敛,也能使不一样VLAN的流量沿各自的路径分发,从而为冗余链路提供了更好的负载分担机制。