STP 协议

本文详细介绍了STP协议的工作原理,包括环路产生的影响、优先级向量的选举过程、端口状态转移、STP计时器和拓扑变化机制。重点讲解了根桥、根端口、指定端口和阻塞端口的选择,以及关闭STP功能后的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

定义与作用

环路产生的影响

二层环路产生的原因

优先级向量及其选举过程

首先是选取根桥

选取根端口RP

选取指定端口DP

选取阻塞端口AP

STP端口状态

端口状态转移

STP计时器

BPDU报文

拓扑变化机制(TC机制)

直连故障与非直连故障

关闭了STP的功能,收到BPDU将如何处理

STP不发送TC置位的配置BPDU会有什么影响


定义与作用

STP   Spanning Tree Protocol  生成树协议 

作用:以阻塞端口的方式来消除二层环路的协议

环路产生的影响

1.mac地址表震荡:接口学习mac地址优先级默认一样,一样的情况允许mac地址漂移,所以不断的会进行mac地址表项的覆盖。

2.广播风暴:mac地址从每个接口的不断广播,会形成广播风暴,导致网络资源耗尽,网络瘫痪。

二层环路产生的原因

1.从表面上来看是在物理拓扑上形成环路;

2.本质上是交换机对未知单播帧的泛洪处理。

优先级向量及其选举过程

选取顺序:根桥,RP,DP,AP(结合下图1-1 理解效果更佳)

首先是选取根桥

        通过root id选举(root id的意思是根桥ID,由于一开始所有的设备都会认为自己是根桥,所以这里用root id。后面选出根桥后,其他非根桥的ID就叫做桥ID,也就是BID)。根桥是一台交换机

        root id共有两部分组成共8个字节,前2个字节用来表示桥优先级,后6个字节用设备的MAC地址来表示。新华三设备桥优先级默认的是32768,以4096为步长(因为前两个字节共16比特位,前4个比特位才真正表示桥优先级,而后12个bit表示的是vlan-id,所以当桥优先级变化时,是16位的高4位在变化,步长为4096)

        看图,这时假设图中五台设备互相发送配置BPDU报文,确定了根桥是SW1。

选取根端口RP

确定根桥后,下面就要选取非根桥上的根端口RP(Root Port),注意:在根桥上没有根端口!

        RP是对非根桥上的端口而言的,选取规则是首先看离根桥的根路径开销RPC(Root Path Cost),RPC最小的称为根端口,很显然在SW2,SW3上的三个端口,只有最上面的端口离根桥最近,成为RP。

        在SW4上的四个端口,显然上面两个端口的RPC一样,这时就要第二个规则了,看与相应端口相连的设备的BID,BID越小的,成为RP,与这两个端口相连的分别是SW2,SW3,假设SW2的BID为4096,SW3的BID为32768,此时SW4的左上边那个端口成为RP。

        再看SW5,发现与SW5两个端口相连的设备是同一台,而且到根桥的距离也一样,这时就要第三个规则了,看发送端的端口ID,即PID(Port ID)PID越小的成为RP,假设SW4下面左边的端口PID比下面右边的要小,所以此时对于SW5来说,左边那个端口成为RP。

选取指定端口DP

根端口选举完成后,下面就要选举指定端口DP(Designated Port)

        注意:DP是在每一个物理段选举的,即在一根线的两端中选取一个作为DP。

        选取规则根据RPC,对于SW1和SW2,SW3相连的段,很显然SW1上的两个端口成为DP;

        在SW2和SW3相连的段上,由于两个端口的RPC相同,这时比较BID,显然SW2的BID比SW3的BID要小,所以SW2上的端口成为DP。

        同样在SW2,SW3和SW4相连的段上,SW2,SW3的两个端口的RPC更小,成为DP,在SW4和SW5相连的段上,SW4的两个下行端口成为DP。

选取阻塞端口AP

        在RP,DP选举完成后,剩下的端口成为阻塞端口,即AP(Alternate Port ),自此STP端口角色选举完成。

图1-1 端口角色选举

STP端口状态

1.Disabled:未启用STP功能的端口,不收发BPDU报文,不接收或者转发数据;

2.Blocking:阻塞状态,接收但不发送BPDU报文,但不接收或者转发数据,AP端口的状态

3.Listening:侦听状态,接收并且发送BPDU报文,不接收也不转发数据

4.Learning:学习状态,接收并且发送BPDU报文,不接受也不转发数据,学习MAC

5.Forwarding:接收并且转发数据,DP,RP端口的状态

端口状态转移

        在开启STP功能后,端口被选为DP或者RP后,状态从Blocking状态到Forwarding状态,会经历Blocking到Listening用时0~20秒,从lisenting到learning,从learning到forwarding 分别需要一个forwarding delay(15秒)所以最快需要30秒才能收敛。

STP为什么要设计Forwarding Delay:

        能够保证当网络拓扑发生变化时,新的配置消息能够传遍整个网络,从而避免网络未收敛时造成的临时环路。

STP计时器

Hello Time :配置BPDU的发送周期,用于检测对方是否存活,2s一个,开始时所有的交换机都会发送,在拓扑稳定的时候只有根桥去发送,其他人进行转发

Forwarding Delay :状态切换延迟15s一个

Max age:判断链路故障的时间为20s,10个Hello Time 内没有收到对方发送的配置BPDU,就认为链路挂掉了

BPDU报文

配置BPDU报文:开始所有人都发送,选举出根桥后由根桥发送,发送周期为一个hello time,所以一般配置BPDU都是由DP发送,RP接收

TCN BPDU:端口状态变为Forwarding 状态,设备向外发送TCN BPDU

拓扑变化机制(TC机制)

这个机制主要是为了当拓扑发生变化时,让网络的收敛速度更快。

1.STP中,设备检测到网络拓扑发生变化时就会触发TC机制。(down时触发拓扑变更无 意义)

2.下游交换机SW5会不间断向上游(沿RP口)发送TCN BPDU报文。

3.上游设备SW3收到下游SW5发来的TCN BPDU报文后,只有指定端口处理TCN BPDU报文。其他 端口可能收到TCN BPDU报文,但是不会处理。

4.上游设备SW3会把回复一个TCA置位的配置BPDU给下游SW5,下游停止发送TCN BPDU报文。

5.上游设备SW3复制一份TCN BPDU报文,沿RP口向根桥SW1发送。

6.根桥SW1收到TCN BPDU报文后,会回复TCA置位的配置BPDU,同时根桥会发送一个TC置 位的配置BPDU,沿着DP端口,泛洪到全网,发送间隔是2秒。                                                            持续时间35秒 = 20秒(老 化) +15秒(转发延迟)。

7.所有收到TC置位的配置BPDU的交换机,会将MAC表的老化时间调整成15秒。

注意: 1)整体老化时间是50秒=35秒+15秒。 2)如果三层交换机,会删除ARP表项。

直连故障与非直连故障

1.直连故障: 如果Hub与SW3之间的链路断了,对于SW3是有感知的,知道RP失效,AP马上变成 RP,状态从Blocking迁移成Forwarding,需要等待30秒的转发延迟。

2.非直连故障: 如果Hub与SW1之间的链路断了,对于SW3是没有感知的,RP端口需要先等待BPDU 老化时间20秒,然后RP失效,AP马上变成RP。状态从Blocking迁移成Forwarding, 还需要等待30秒的转发延迟。一共需要 20秒(Max Age老化)+ 30秒(2倍转发延迟)= 50秒的时间

关闭了STP的功能,收到BPDU将如何处理

BPDU报文的发送目的地址是01-80-C2-00-00-00,以组播的形式发送,如果交换机关闭了STP功能,将会收到这个组播数据帧,会接收不处理。

STP不发送TC置位的配置BPDU会有什么影响

        在原本的拓扑发生变化后,原来的MAC地址表将无法正确引导数据转发。如果不去发送TC置位的BPDU,将无法刷新MAC地址表,会导致数据流量无法正常转发,要等到300s的MAC地址表老化时间后,才会自动刷新MAC地址表。

注:本文有借鉴相关官方文档以及别的优秀博主的文章,仅供个人学习使用。

<think>好的,我现在需要帮助用户了解生成树协议STP)的相关信息,特别是网络配置和工作原理。首先,我要回顾一下已有的引用内容,确保回答准确。 根据引用[1],STP是数据链路层协议,用于防止二层网络中的环路。引用[2]提到STP收敛速度较慢,适用于防止环路,但所有VLAN共享同一生成树,可能不适合大型网络。引用[3]则详细介绍了STP的基本概念,如根桥、路径开销、端口角色和状态等。 用户的问题集中在STP网络配置和工作原理上,所以需要分两部分回答。首先,工作原理部分需要解释STP如何选举根桥、计算最优路径、阻塞冗余链路,以及收敛过程。然后,网络配置部分可能需要举例说明如何在设备上启用STP,设置优先级,调整计时器等。 需要注意的是,必须使用中文,并且遵循格式要求,如行内公式用$...$,独立公式用$$...$$。同时,生成相关问题,并在回答中正确引用。 现在开始组织内容: 1. STP简介:防止环路,确保无环拓扑。 2. 工作原理:根桥选举、路径开销计算、端口角色(根端口、指定端口、阻塞端口)、端口状态(阻塞、侦听、学习、转发)。 3. 网络配置示例:启用STP,设置优先级,调整计时器参数。 4. 引用文献标注。 5. 生成相关问题,如优化方法、与RSTP的区别、应用场景等。 需要确保每个引用在回答中正确标注,比如提到收敛速度时引用[2],提到端口状态时引用[3]。 最后检查是否符合所有系统级指令,特别是LaTeX格式和引用标识的位置。</think>### 生成树协议STP)详解 #### 1. STP协议简介 生成树协议(Spanning Tree Protocol, STP)是数据链路层协议,用于消除以太网中的环路并构建无环拓扑[^1]。通过阻塞冗余链路,STP确保数据帧在网络中沿唯一路径传输,同时提供链路冗余能力。 #### 2. STP工作原理 **(1)根桥选举** 所有交换机通过交换BPDU(桥协议数据单元),选举唯一的根桥(Root Bridge)。选举依据为桥ID(由优先级和MAC地址组成),值最小的设备成为根桥。 $$ \text{桥ID} = \text{优先级}(16位) + \text{MAC地址}(48位) $$ **(2)路径开销计算** 非根桥通过计算到根桥的最短路径开销(基于链路带宽),确定最优路径。例如: - 10 Gbps链路开销为$2$ - 1 Gbps链路开销为$4$ **(3)端口角色** - **根端口(Root Port)**:每台非根桥上离根桥最近的端口。 - **指定端口(Designated Port)**:每条链路上离根桥最近的端口,负责转发数据。 - **阻塞端口(Blocking Port)**:冗余链路中被阻塞的端口,防止环路[^3]。 **(4)端口状态** STP通过以下状态逐步收敛网络: 1. **阻塞(Blocking)**:不转发数据,仅接收BPDU。 2. **侦听(Listening)**:参与生成树计算,开始学习拓扑。 3. **学习(Learning)**:学习MAC地址表,但不转发数据。 4. **转发(Forwarding)**:正常转发数据帧[^3]。 **(5)收敛过程** STP收敛时间较长(默认30-50秒),依赖计时器: - **Hello Time**:2秒(BPDU发送间隔) - **Forward Delay**:15秒(侦听和学习状态的持续时间)[^2] #### 3. STP网络配置示例 以华为交换机为例: ```bash # 启用STP协议 [Huawei] stp enable # 设置根桥优先级(值越小优先级越高) [Huawei] stp priority 0 # 调整Forward Delay时间 [Huawei] stp timer forward-delay 1500 # 单位:厘秒(15秒) ``` #### 4. STP的局限性 - **收敛速度慢**:默认配置下需30秒以上,可能引发临时通信中断。 - **单一生成树**:所有VLAN共享同一拓扑,无法实现负载均衡。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值