生成树协议(STP)简介
生成树协议(STP)
生成树协议是二层管理协议。通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备了链路的备份功能。定义了根桥Root Bridge,根端口Root Port,指定端口Designated Port,路径开销Path Cost等概念,目的就在于通过构造一棵自然树的方法,达到裁剪冗余环路的目的,同时实现链路备份和路径最优化。
要实现这些功能,网桥之间必须要进行一些信息的交流,这些信息交流单元就称为配置消息BPDU:Bridge Protocol Data Unit 。STP BPDU是一种二层报文,目的MAC是多播地址01-80-C2-00-00-00 ,所有支持STP协议的网桥都会接收并处理收到的报文。在数据区里携带了用于生成树计算的所有有用信息。
首先进行根桥的选举。选举的依据是网桥优先级和网桥MAC地址组合成的桥ID :Bridge ID 。桥ID最小的网桥将成为网络中的根桥。网络中各网桥都以默认值启动,在网桥优先级都一样(默认优先级是32768)的情况下,MAC地址最小的网桥成为根桥。
接下来其他网桥将各选择一最粗壮的树枝,作为到根桥的路径相应端口的角色成为根端口。
经过一段时间(默认值是30秒左右)后,生成树稳定之后,所有端口要么进入转发状态,要么进入阻塞状态.STP BPDU仍然会定时从各个网桥的指定端口发出,以维护链路的状态.如果网络拓扑发生变化,生成树就会重新计算端口状态也会随之改变。
快速生成树协议RSTP: Rapid Spanning Tree Protocol。作了重要改进,收敛速度快的多:
第一:为根端口和指定端口设置了快速切换用的替换端口Alternate Port 和备份端口Backup Port 两种角色。当根端口/指定端口失效时替换端口/备份端口就会无时延地进入转发状态。
第二:在只连接了两个交换端口的点对点链路中,指定端口只需与下游网桥进行一次握手就可以无时延地进入转发状态。如果是连接了三个以上网桥的共享链路,下游网桥是不会响应指定端口发出的握手请求的,只能等待两倍Forward Delay时间进入转发状态。
第三:直接与终端相连而不是和其他网桥相连的端口,定义为边缘端口EdgePort 。边缘端口可以直接进入转发状态,不需要任何延时。由于网桥无法知道端口是否是直接与终端相连,所以需要人工配置。
为支持这些改进,BPDU的格式作了一些修改但仍然向下兼容STP协议,可混合组网。RSTP和STP同属于单生成树SST。
缺陷一:由于整个交换网络只有一棵生成树,在网络规模比较大的时候,会导致较长的收敛时间,拓扑改变的影响面也较大。
缺陷二:近年IEEE 802.1Q大行其道逐渐成为交换机的标准协议。在网络结构对称的情况下,单生成树也没什么大碍;但是,在网络结构不对称的时候,单生成树就会影响网络的连通性。
缺陷三:当链路被阻塞后,将不承载任何流量,造成了带宽的极大浪费,环行城域网明显。
于是支持VLAN的生成树协议出现了。每个VLAN都生成一棵树是一种比较直接而且最简单的解决方法,它能够保证每一个VLAN都不存在环路。
PVST BPDU的格式和STP/RSTP BPDU格式已经不一样,发送的目的地址也改成了Cisco保留地址01-00-0C-CC-CC-CD ,而且在VLAN Trunk的情况下,PVST BPDU被打上了802.1Q Tag标签。所以最初的PVST协议并不兼容STP/RSTP协议。Cisco很快推出了经过改进的PVST协议,并成为了交换机产品的默认生成树协议。经过改进的PVST 协议在VLAN 1上运行的是普通STP协议,在其他VLAN上运行PVST协议。PVST 协议可以与STP/RSTP互通。在VLAN 1上生成树状态按照STP协议计算,在其他VLAN上普通交换机只会把PVST BPDU当作多播报文,按照默认VLAN或者Tag头进行转发,但这并不影响环路的消除,只是有可能VLAN 1和其他VLAN的根桥选取可能不一致。由于每个VLAN都有一棵独立的生成树,单生成树的种种缺陷都被克服了,同时PVST带来了新的好处,那就是二层负载均衡。
PVST/PVST协议实现了VLAN认知能力和负载均衡能力,但是新技术也带来了新问题:
一、由于每个VLAN都需要生成一棵树,PVST BPDU的通信量将正比于Trunk的VLAN个数。
二、在创建VLAN个数比较多的时候,维护多棵生成树的计算量和资源占用量将急剧增长。
三、由于协议的私有性PVST/PVST,不能像STP/RSTP一样得到广泛的支持,不同厂家的设备并不能在这种模式下,直接互通只能通过一些变通的方式实现。
相对于PVST的每VLAN一棵生成树而言,MISTP就是每实例一棵生成树,多个VLAN可以映射到一个实例中去,但是一个VLAN不能同时映射到多个实例中去。实例是什么样的拓扑由映射到里面去的VLAN决定。
多生成树协议MSTP。精妙的地方在于把支持MSTP的交换机和不支持MSTP交换机划分成不同的区域,分别称作MST域和SST域。在MST域内部运行多实例化的生成树,在MST域的边缘运行RSTP兼容协议。
MST域与SST域之间的边缘端口上,MSTP的处理稍微复杂一些。当边缘端口收到其他交换机发来的STP BPDU的时候,端口会进入STP兼容状态发送STP BPDU;当边缘端口收到RSTP BPDU的时候,端口会进入RSTP兼容状态但仍然发送MSTP BPDU;由于RSTP在设计的时候就考虑了扩展,所以对端的RSTP设备可以把MSTP报文理解成正确的RSTP报文。
MSTP具有VLAN认知能力,可以实现负载均衡,可以实现类似RSTP的端口状态快速切换,可以捆绑多个VLAN到一个实例中以降低各种资源的占用率,最难能可贵的是,MSTP可以很好地向下兼容STP/RSTP/PVST协议(PVST协议被作为一种SST)。
搜索更多相关主题的帖子:
STP 协议 简介