STP总结

一、STP概述


STP是一个用于局域网中消除环路的协议。

        没有生成树协议会引起:1、广播风暴导致网络不可用;2、 MAC地址表震荡导致MAC地址表被破坏生成树模型:1、单生成树实例模型;2、多生成树实例模型;3、基于VLAN生成树实例模型。

1、单实例模型:SST(Singles STP),交换机上所有vlan只能使用相同的一个拓扑,华为单实例模型只有STP和RSTP模式

2、多实例模型:MST(Multiple STP),可以自定义实例的数量,可手工指定哪些vlan使用哪些实例。华为默认生成树协议为MSTP。

3、基于vlan实例模型:VBST(vlan-based STP),每个vlan都拥有各自的生成树实例,实例与拓扑之间独立不相关。(此生成树只在特定交换机平台支持,不建议使用)

二、功能介绍


        生成树协议是IEEE 802.1D中定议的数据链路层协议,用于解决在网络的核心层构建冗余链路里产生的网络环路问题,通过在交换机之间传递网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),通过采用STA生成树算法选举根桥、根端口和指定端口的方式,最终将网络形成一个树形结构的网络,其中,根端口、指定端口都处于转发状态,其他端口处于禁用状态。如果网络拓扑发生改变,将重新计算生成树拓扑。生成树协议的存在,既解决了核心层网络需要冗余链路的网络健壮性要求,又解决了因为冗余链路形成的物理环路导致“广播风暴”问题 。但是,由于协议机制本身的局限,STP保护速度慢(即使是1s的收敛速度也无法满足电信级的要求,如果在城域网内部运用STP技术,用户网络的动荡会引起运营商网络的动荡。在MSTP 组成环网中,由于SDH保护倒换时间比STP协议收敛时间快的多,系统采用依然是SDH MS-SPRING或SNCP,一般倒换时间在50ms以内。但测试时部分以太网业务的倒换时间为0或小于几个毫秒,原因是内部具有较大缓存。

       SDH保护倒换动作对MAC层是不可见的。这两个层次的保护可以协调工作,设置一定的“拖延时间”(hold-off),一般不会出现多次倒换问题。

三、STP报文类型


STP有2种报文结构:

一种是配置BPDU(Configuration BPDU)

一种是拓扑变化通知BPDU(TCN BPDU)

        配置BPDU是一种心跳报文,只要端口使能STP,则配置BPDU会被周期通告,TCN BPDU是在设备检测到网络拓扑发生变化时才发出。

3.1、802.3帧结构


BPDU报文被封装在802.3帧中,目的MAC是组播MAC:0180-C200-0000,Length/Type 字段为其后内容长度(不考虑CRC),后面是LLC头,LLC之后是BPDU报文头。


LLC由DSAP、 SSAP、 Control 组成,各占1Byte

 

3.2、配置BPDU


        通常所说的BPDU报文多数指配置BPDU在初始化过程中,每个根交换机都会主动发送配置BPDU。在网络拓扑稳定后,只有根桥主动发送配置BPDU,其他桥在收到上游传来的配置BPDU后,才转发自己的配置BPDU。配置BPDU的长度要35个Byte,包含了 桥ID、路径开销、端口ID等参数。只有当发送者的BID或端口的PID两个字段中至少有一个和本桥接收端口不同,BPDU报文才会被处理,否则丢弃,避免处理和本端口信息一致的BPDU报文。


配置BPDU会在以下3种情况下产生:
        1、只要端口使能STP,配置BPDU就会按照Hello Time 定时器规定的时间间隔从指定端口发出。
        2、当根端口收到配置BPDU时,根端口所在的设备会向自己的每一个指定端口复制一份配置BPDU。
        3、当指定端口收到比自己差的配置BPDU时,立刻触发向下游设备发送自己的BPDU。

配置BPDU报文基本格式


5-8字段用于检测最优配置BPDU
配置BPDU的Flag位中,仅位7和位0有定义,其他未定义

 

TCA (Topology Change Acknowledgement flag)置位的配置BPDU用来确认收到TCN BPDU
TC(Topology Change flag)配置的BPDU用来通知交换机清空桥表

3.3、TCN BPDU

TCN BPDU 是在下游拓扑发生变化时用来通知根交换机网络某处拓扑发生变化。仅用户通告变化,不含拓扑信息。
TCN 工作方式可靠,TCN BPDU会受到TCA置位的配置BPDU用作确认,否则一直发。
TCN BPDU在两种情况下产生
1、端口状态变为Forwarding状态,且该设备上至少有一个是指定端口。
2、指定端口收到TCN BPDU,复制TCN BPDU发往根桥

四、拓扑变化通知


STP可以在拓扑变化时,通过算法快速计算出新的转发链路,但交换机桥表却没有这么快进行调整,旧MAC和端口指向关系会影响数据正常转发。所以需要拓扑变化通知机制去加快转发桥表更新,减少中断时间。
1、拓扑变化后,下游设备会不间断向上游设备发送TCN BPDU报文。TCN从RP端口发出,间隔2s,不受根交换机Hello间隔的影响。
2、上游设备收到下游设备发来的TCN BPDU后,只有指定端口处理TCN BPDU,其他端口有可能收到但不处理。
3、上游设备会把配置BPDU报文中的Flags的TCA位置1,然后发送给下游设备,充当收到TCN的确认,否则下游设备会一直发送TCN BPDU报文。
4、上游设备重复该过程,把TCN BPDU继续向其他RP端口发送,直到从上游收到TCA置位的配置BPDU.
5、TCN BPDU会一直向上发送,直到送至根桥。
6、根桥收到网络拓扑变化后,会把配置BPDU报文中的Flags的TC置位后发送,TC置位的配置BPDU会泛洪到全网,收到的华为交换机会直接删除桥MAC地址表项。
7、根桥持续发送TC置位的BPDU,时间为forward-delay+max-age,共35s。

华为STP拓扑通知机制区别于传统STP的拓扑变化行为:
1、华为的STP实现中,触发产生拓扑变化通知是当端口(非边缘端口)进入转发状态的时候,而端口down时并不触发拓扑变化通知。
2、当TC置位BPDU被交换机收到后,将交换机的桥表清空。这种方法能及时清除错误MAC表项,但会导致网络产生过多单播泛洪报文
 

五、协议不足以及改进

        1、拓扑收敛慢,当网络拓扑发生改变的时候,生成树协议需要50-52秒的时间才能完成拓扑收敛。

        2、不能提供负载均衡的功能。当网络中出现环路的时候,生成树协议简单的将环路进行Block,这样该链路就不能进行数据包的转发,浪费网络资源。

华为对STP的优化:
1、使用新端口角色及状态;
2、RP失效,AP立即成为新RP;
3、接收次的BPDU,端口不需要等待max-age,就立即计算端口角色;
4、若收不到BPDU,不再使用max-age来判定链路失效,3个hello间隔后重新收敛,检测网络故障时间变短。
STP不足:
1、STP算法为被动算法,状态迁移依赖定时器,最短需要30s;
2、若拓扑变化频繁,反复清空桥表,会导致过量单播报文泛洪
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值