标题：pvst
名称
PVST: Per-VLAN Spanning Tree（每VLAN生成树）  pvst
用途
PVST是解决在虚拟局域网上处理生成树的CISCO特有解决方案。PVST为每个虚拟局域网运行单独的生成树实例．一般情况下PVST要求在交换机之间的中继链路上运行CISCO的ISL。
每VLAN生成树 (PVST)为每个在网络中配置的VLAN维护一个生成树实例。它使用ISL中继和允许一个VLAN中继当被其它VLANs的阻塞时将一些VLANs转发。尽管PVST对待每个VLAN作为一个单独的网络，它有能力（在第2层）通过一些在主干和其它在另一个主干中的不引起生成树循环的Vlans中的一些VLANs来负载平衡通信。
PVST与PVST+的区别
PVST BPDU的格式和STP/RSTP BPDU格式已经不一样，发送的目的地址也改成了Cisco保留地址01-00-0C-CC-CC-CD，而且在VLAN Trunk的情况下PVST BPDU被打上了802.1Q VLAN标签。所以，PVST协议并不兼容STP/RSTP协议。
Cisco很快又推出了经过改进的PVST+协议，并成为了交换机产品的默认生成树协议。经过改进的PVST+协议在VLAN 1上运行的是普通STP协议，在其他VLAN上运行PVST协议。PVST+协议可以与STP/RSTP互通，在VLAN 1上生成树状态按照STP协议计算。在其他VLAN上，普通交换机只会把PVST BPDU当作多播报文按照VLAN号进行转发。但这并不影响环路的消除，只是有可能VLAN 1和其他VLAN的根桥状态可能不一致。由于每个VLAN都有一棵独立的生成树，单生成树的种种缺陷都被克服了:
第一点缺陷：由于整个交换网络只有一棵生成树，在网络规模比较大的时候会导致较长的收敛时间，拓扑改变的影响面也较大。
第二点缺陷：近些年IEEE 802.1Q大行其道，逐渐成为交换机的标准协议。在网络结构对称的情况下，单生成树也没什么大碍。但是，在网络结构不对称的时候，单生成树就会影响网络的连通性）。同时，PVST带来了新的好处，那就是二层负载均衡。
PVST/PVST+的缺陷：
1.由于每个VLAN都需要生成一棵树，PVST BPDU的通信量将正比于Trunk的VLAN个数。
2.在VLAN个数比较多的时候，维护多棵生成树的计算量和资源占用量将急剧增长。特别是当Trunk了很多VLAN的接口状态变化的时候，所有生成树的状态都要重新计算，CPU将不堪重负。所以，Cisco交换机限制了VLAN的使用个数，同时不建议在一个端口上Trunk很多VLAN。
3.由于协议的私有性，PVST/PVST+不能像STP/RSTP一样得到广泛的支持，不同厂家的设备并不能在这种模式下直接互通，只能通过一些变通的方式实现，例如Foundry的IronSpan。IronSpan默认情况下运行的是STP协议，当某个端口收到PVST BPDU时，该端口的生成树模式会自动切换成PVST/PVST+兼容模式。一般情况下，网络的拓扑结构不会频繁变化，所以PVST/PVST+的这些缺点并不会很致命。但是，端口Trunk大量VLAN这种需求还是存在的。
Spanning-tree 的发展史
1. STP （802.1D）也就是所说的classical spanning－tree，大概意思是每2s发送一个hello，15s的forward delay，20s的max age，与vlan无关，整个bridge只有一个spanning－tree实例。这个协议是Radia Perlman为早期的DEC桥所写，后被IEEE收容形成802.1D标准。而在那时，大部分layer2设备还是以端口数较少的网桥为主，所以没有考虑到端口数较多的layer2 switch。随着技术的发展，layer2 switch开始盛行，这就导致了vlan的盛行，致使802.1D已经不在适用。因为两台switch间存在冗余链路不一定就会导致环路，所以Cisco为了满足用户需求，就对802.1D进行了扩展，便出现了PVST。它是基于vlan的，每个vlan都会有一个对应的spanning－tree实例。需要注意的是，PVST在通常状态下只有在default vlan 1 中才使用untagged的STP报文，所以vlan 1的spanning－tree实例又有一个独立的名称，就是CST，细心的朋友可能已经注意到，很多只支持STP协议的设备只能与cisco在vlan1中进行互操作，就是这个原因了。
2. 随着时间的推移，越来越多的人感觉传统spanning－tree的收敛时间过长，简直无法接受，特别是Cisco在别出心裁的提出了Portfast，Backbonefast，Uplinkfast等一系列spanning－tree特性后，IEEE不得不对已过时的802.1D进行修改，便有了802.1W，也就是所说的RSTP，基本就是在802.1D的基础上添加了几个类似Cisco的特性，对Cisco来说，为和上一代PVST区分，便把有这些特性的spanning－tree称为PVST+或Rapid PVST.
3. 科技日新月异，人们的要求也越来越高，原本以前被认为是经典的东西，现代人可能感觉他是那么的冗长复杂，PVST就是一个很好的例子。当年PVST的设计者可能怎么也没想到，真的会有这样的疯子要在一个交换机上配置成百上千个vlan，这就要求运行相同数目的spanning－tree实例，这不论从管理上还是spanning－tree的运算上，都是人类和一颗普通的Power PC无法承受的，因而便应运而生了802.1S，即MST，这次Cisco很聪明，为了避免出现类似PVST这样的尴尬局面（虽然很好，但无法与众多其它厂家兼容），便在协议研发阶段就将其提交到了IEEE，再联合上Foundry，Extreme，RiverStone等几个业内顶级厂家，很快就把这个协议做出来了，至于这个协议的好处，我也就不说了，那是相当的明显。
说了这么多，只是想和大家分享一下自己以前学习的心得，但从现在来看，spanning－tree似乎不会再有往日的盛行，因为随着layer 3技术的进步，spanning－tree已经开始逐步失去自己仅存的接入网市场，更别说Metro的distribution或是core了，因而建议大家如果从研究协议本身出发，可以学习它的设计理念，但最好就不要有其它想法了。[1]
生成树CST、PVST、PVST+比较
今天比较一下CST、PVST、PVST+ 几个生成树技术，以区别他们的关系。
CST成为公共生成树，在生成树收敛的时候，不考虑网络中vlan的存在，只在网络中生成和维护单个生成树；还有一个要注意的是：所有CST的BPDU作为不带标记的帧通过本地vlan进行传输。
这样的工作模式有它自己的优点，就是计算STP时的CPU的负载。然而，也会带来问题：
1.网络中的STP无法按照vlan的特殊需求，为vlan创建最优的STP路径，可能导致某些vlan存在次优路径。
2.冗余的端口被阻塞掉之后，在每个vlan中就无法转发数据，会导致无法实现网络流量的负载均衡。
PVST是cisco私有的技术，per-vlan即给网络中的每个vlan都创建一颗生成树，这样可以解决CST的问题，为不同vlan通过冗余连接进行负载平衡。但是，是cisco的私有技术，只能通过cisco的中继链路ISL中继封装发送，这样协议的兼容性就差。
PVST+是cisco的另一个STP专利，但是与PVST不同，PVST+的诞生就是为了兼容其他版本的BPDU而产生的，它可以通过ISL封装与PVST互通，也可以不给BPDU封装与802.1Q互通。
通过上面的分析，可以看出CST、PVST、PVST+之间的关系到底是什么样的了！当然还有很多生成树协议标准，IEEE802.1D、IEEE802.1S、IEEE802.1W这样国际标准的生成树协议。[2]