stp:生成树协议的简单总结

是什么是STP?

生成树协议(STP)是一种为了解决企业网三层架构,二层桥接环路的类似于广播风暴的一系列问题的一种算法;而生成树是一种结构,是在一个二层交换网络中,生成一棵树型结构,逻辑的阻塞部分接口,使得从根到所有的节点仅存在唯一的路径;当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用;在解决这些问题的时候,我们把生成树的路径尽量做到最短,即星型结构。

这一系列问题包括:

  1. 广播风暴;
  2. MAC地址表翻滚 —在一台交换机上,同一个MAC地址只能映射唯一的接口;但同一个接口可以映射多个不同的MAC地址;
  3. 同一数据帧的重复拷贝;
  4. 以上3个条件最终导致设备工作过载,导致重启保护。

stp主要分为6类:802.1D,PVST,PVST+,RSTP(CISCO),RSTP(802.1W),MSTP(802.1S).
这6类的关系如下:
stp:生成树协议的简单总结_第1张图片
下面来详细的介绍一下这几个stp,首先说说802.1D.
802.1D在交换机间使用BPDU—桥协议数据单元 – 交换机间沟通互动收发的数据配置BPDU—只有根网桥可以发送,在交换网络初始状态时,所有交换机均定义本地为根网桥,进行BPDU的发送;使得网络中所有交换机均收到其他设备的BPDU,之后基于数据中的参数进行比对,选举出根网桥;再所有非根网桥不再发送BPDU,而是仅接收和转发根网桥的BPDU,周期2s发送,hold time 20s。本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老换时间修改为15s(默认的,转发延时)。所以,在一个生成树中,最主要的就是进行选举。
1.根网桥的的选举(在一棵生成树实例中,有且仅有一台交换机为root):
BPDU中的 桥ID(网桥优先级,默认32768 + MAC地址)来决定, 先比较优先级,会选举优先级小的; 若优先级相同,比较mac,选举mac值小的。
2.根端口的选举(在每台非根网桥上,有且仅有一个接口):
(1)比较从根网桥发出后,通过该接口进入时的cost值,选举cost值小的;
(2)若cost值相同,则比较该接口对端设备的BID,选举BID小的;
(3)若cost值相同,该接口对端设备的BID也相同,则比较该接口对端设备的接口的PID(端口号),选举PID小的;
(4)若前面三者都相同,则比较本地PID,还是选举PID小的。
3.指定端口的选举(在每一段存在STP的物理链路上,有且仅有一个,默认根网桥上所有接口为指定端口):
(1)比较从根网桥发出后,通过该接口进入这段链路时的cost值,选举cost值小的;
(2)若cost值相同,则比较该接口本地设备的BID,选举BID小的;
(3)若本地BID相同,则比较本地的PID,还是选举小的;
(4)若本地PID也相同,直接阻塞该端口。
4.非指定端口(阻塞端口)的选举:
当以上所有角色全部选举完成后,剩余没有任何角色的接口为非指定,
该接口逻辑阻塞,实际可以接收到信息,但不转发。
那么stp为什么要改进呢,它的缺点是收敛慢,那么它是怎么收敛的呢?
首先进行侦听:强制15s,(所有交换机进行BPDU收发,选举所有角色;接口角色为非指定端口直接进入阻塞状态,若为指定端口和根端口进入下一状态);
然后学习:强制15s,(指定端口和根端口学习所有接口连接设备的MAC地址,生成MAC表;之后进入下一状态);
最后才转发,逻辑阻塞。
所以收敛时间=侦听时间+学习时间=30s。
PVST 是cisco的技术,他将一个vlan划为一个生成树,然后每个树的工作原理同802.1d一致,这样的话就利用了备用线路,不存在阻塞端口了。提高了链路利用率,仅支持 trunk干道封装为ISL。但是还是没有解决收敛慢的难题。
PVST+ Cisco在Pvst的基础上,想要解决收敛时间的问题,进行了升级。它兼容802.1q的trunk封装,启用了端口加速,上行链路加速,骨干加速的技术,大大减少了收敛的时间,但是还是没有彻底解决。
端口加速:接入层连接用户的接口,可以直接省去30s的收敛时间;
上行链路加速:针对直连检测(本地存在阻塞端口,若其他端口断开,该阻塞端口马上进入15是侦听,结果若为启用,那么将再进入15s学习—总30s
),可以省去30s的收敛时间;
骨干加速:针对次优BPDU,当我们有俩个valn的时候,要选举一个主root和一个次root作为备用,这个时候次优BPDU就可以直接省去30s的收敛时间了,直接选举成功。
4.RSTP又称快速生成树,分为Cisco的和公有的(802.1w)俩种,他们的原理都是一样的:
1、取消了计时器,而是在一个状态工作完成后,直接进入下一状态;
2、分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位;
3、BPDU的保活为6s,hello time 2s;
4、将端口加速(边缘接口)、上行链路加速、骨干加速集成了;
5、兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速,当tcn消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表。虽然,RSTP解决了收敛时间的问题,但是还是没有解决一个vlan一颗树的问题,当vlan特别多的时候,那岂不是要很多树,这就造成了很多不必要的结果。
5.MSTP则是继承了快速生成树的基础,彻底解决了一个valn一颗树的难题,将多个vlan放置于一个组内,基于每个组一棵生成树,不同组间的BPDU中优先级= 4096倍数+组号。其实就是多个RSTP的结合。

你可能感兴趣的:(网络)