如果面试官突然问你:两台交换机之间用两根网线连着,会发生什么?我见过不少刚入行的朋友想都不想就答“冗余备份啊”,结果第一轮就被刷了。正确答案是:如果没开STP生成树协议,这两根线会在几秒内把你的网络打成广播风暴,整层楼都上不了网。STP(Spanning Tree Protocol,生成树协议)是网络工程师绕不过去的核心知识点,不管你是准备软考网络工程师,还是去面运维岗、数通岗,几乎必考。这篇文章我就把STP从头到尾给你捋一遍:二层环路为什么会出问题、STP怎么解决、三大选举怎么比、收敛时间怎么算、RSTP快在哪、华为和思科设备怎么配,最后再附一份考点自查清单。内容按0基础也能看懂的标准写,但细节绝对够你应付考试和面试。
1. 二层环路的三宗罪:广播风暴、MAC漂移、多帧复制
1.1 广播风暴:环路是你的第一台“广播放大器”
先搞清楚一个前提:交换机是二层设备,它不像路由器那样会隔离广播域。当交换机收到一个目的MAC地址未知的数据帧、广播帧或者组播帧时,它的处理方式非常简单粗暴——除了接收端口之外,从所有其他端口复制转发出去。这叫泛洪,是交换机的基本工作原理。
现在想象一下,两台交换机之间拉了两根线,形成了一个物理环路。第一台交换机把广播帧从两个口都发出去,第二台交换机收到后,又从除了接收口之外的所有口转发,其中就包括另一根互联的线,广播帧又回到了第一台交换机。第一台交换机再次泛洪……每一轮转发,广播帧的数量都在增加,而且是沿着环路的两个方向同时转,帧的副本会指数级增长。
这个风暴有多猛?我在实验室里见过一次真实复现:四台交换机接成环,一台PC发一个广播帧,大概两三秒后,交换机面板上的所有端口指示灯几乎全亮,CPU占用直接拉满,控制台敲命令都开始卡顿。这台PC明明只是发了一个包,整个二层网络就像被塞进了复印机里,不停地复印再复印,直到带宽耗尽、设备假死。普通终端用户看到的表象就是“网断了”,而且你拔哪一根线网络都能恢复,说明环路就是罪魁祸首。
1.2 MAC地址表抖动:一个MAC在两个端口间反复横跳
广播风暴是最直观的灾难,但还有另一个隐蔽的问题:MAC地址表震荡,也叫MAC漂移。交换机的MAC地址表记录了“哪个MAC地址从哪个端口学到的”,这个表是动态学习的。正常情况下,每个MAC在交换机上只会映射到一个端口。
一旦有了环路,事情就变了。假设一台PC接在SW1的G0/0/1口,但环路上存在两条路径可以到达这台PC。SW2会先从环路的A路径收到这个PC发来的帧,于是把MAC表条目记录为“PC-MAC,对应A路径的端口”;没过多久,同一个PC的帧又从环路的B路径传过来了,SW2一看端口不一样,就直接把MAC表条目更新成“PC-MAC,对应B路径的端口”。两个路径上的帧都在以极快的速度循环,SW2就在两个端口之间反复横跳式更新这张表。
MAC表抖动的直接后果是什么?交换机对目的MAC的转发决策会变得极其不稳定。这个帧刚从A口转发出去,下一次查表又发现表项变成了B口,于是又往B口转。数据帧在网络里围着环路打转、绕来绕去,延迟越来越高,丢包越来越频繁。更麻烦的是,MAC漂移不是只影响一台交换机,环路上的每台交换机都在疯狂更新自己的MAC表,整体交换性能断崖式下降。
1.3 多帧复制:同一条消息收到两遍
第三个问题是多帧复制。如果目的主机确实在MAC表里,交换机本不该泛洪,而是精准地从对应端口转发。但环路的存在让目的主机可能通过两个不同的方向都能收到同一帧。因为在环路中,一台交换机可能会从多个端口收到同一个帧的多个副本,这些副本都是有效转发的结果。
对普通数据来说,多帧复制会导致接收端收到重复包,TCP协议能识别重复序号并丢弃,影响相对有限;但要是碰上某些对重复帧敏感的二层协议,问题就严重了。比如生成树协议本身的BPDU如果被重复接收,可能会引发桥ID比较紊乱;再比如一些依靠广播发现邻居的二层协议,收到自己的报文副本后可能误判拓扑。总之,环路不破,后患无穷。
所以结论很明确:二层网络想要冗余,就必须引入一种机制,让物理上存在环路的拓扑在逻辑上变成一棵没有环的树。这就是STP生成树协议存在的原因。
2. STP的设计哲学:用BPDU选出一个“根”,画出一棵“树”
2.1 物理冗余与逻辑无环,两者必须兼得
有人可能会问:既然环路这么可怕,那干脆别做冗余链路不就行了?不行。现实网络里,交换机之间拉两根线、甚至拉一个环,是为了解决单点故障。一根线断了或者一个端口坏了,另一根线还能顶上,保证业务不中断。如果用人工方式去关掉其中一个端口来破除环路,那这个端口就废了,冗余的意义也没了。
STP的巧妙之处在于:它不是把冗余端口物理拔掉,而是让交换机之间通过协商,在逻辑上“阻塞”某个或某几个端口。被阻塞的端口不收发数据帧,但链路仍然存在。一旦正在使用的链路出现故障,被阻塞的端口可以在几十秒内自动切换到转发状态,继续承担流量。这个过程完全自动,不需要管理员干预。所以STP解决的核心问题是:在提供冗余保护的同时,动态消除环路。
2.2 BPDU:STP交换机之间的“竞选宣言”
STP要让全网交换机“商量”出谁是根、哪个端口该阻塞,总得有个沟通语言,这就是BPDU(Bridge Protocol Data Unit,桥协议数据单元)。BPDU是交换机之间交换的报文,里面携带了STA(生成树算法)计算所需要的全部信息。
一个标准配置BPDU里最重要的字段包括:
- 根桥ID:当前交换机认为的根桥是谁,由优先级加MAC地址组成。
- 根路径开销:从发送这帧BPDU的交换机到达根桥的开销值。
- 发送者桥ID:发送这帧BPDU的交换机自己的身份。
- 发送者端口ID:BPDU从哪个端口发出来的。
- 定时器参数:包括Hello Time、Forward Delay、Max Age这些计时器的数值。
BPDU在整个选举过程中就像竞选宣言一样,每台交换机都往外发,同时也在收别人的。谁拿到的BPDU更“优秀”,谁就服从谁。全网交换机通过不停地比较BPDU,最终收敛出一个所有人都认可的拓扑。
2.3 配置BPDU和TCN BPDU,别搞混
BPDU主要分两种,考试经常拿来出区分题:
- 配置BPDU:由根桥周期性发送,默认每2秒发一个,用来维护全网生成树状态。非根桥收到后,会把它从自己的指定端口继续转发下去。
- TCN BPDU(拓扑变更通知BPDU):当一台交换机检测到拓扑发生变化时,它不是直接告诉全网,而是向根桥方向发送TCN,逐跳上报,由根桥在下一个配置BPDU里带上拓扑变更标记,通知全网刷新MAC地址表。
这个区别很重要。STP里“维护”用的是配置BPDU,“通知”用的是TCN BPDU,别把它们混为一谈。
3. 三场选举定乾坤:根桥、根端口、指定端口
3.1 根桥选举:比优先级、再比MAC,小者为王
STP的整个算法流程,第一步永远是选举根桥(Root Bridge)。根桥是整个二层网络的“中心”,其他所有设备都要以它为准计算路径。
比较规则只有一条:看桥ID,谁小谁当根桥。桥ID = 桥优先级(Bridge Priority)+ MAC地址,合起来是一个8字节的值。选举时先比较优先级,优先级小者优;如果优先级完全相同,再比较MAC地址,MAC地址小者优。
华为和思科交换机的桥优先级默认都是32768。也就是说,如果不做任何配置,网络里MAC地址最小的那台交换机自动成为根桥。这一点非常容易踩坑:你新上线一台交换机,MAC地址碰巧比现有的根桥还小,它一进网络就会抢走根桥位置,整网拓扑全部重算,业务闪断。所以生产环境里,管理员一定会手动把核心交换机或者汇聚交换机的优先级调低,例如调成4096,确保根桥稳定。
这里有一个细节:配置优先级的时候,值必须是4096的倍数。有效范围一般是0到61440。考试的时候如果选项里出现一个不是4096倍数的值,比如“priority 5000”,可以直接排除,这是概念题常设的坑。
3.2 根端口选举:非根桥上离根最近的端口
根桥选出来之后,接下来的问题是:每台非根桥上,哪个端口负责把数据往根桥方向送?这个端口就叫根端口(Root Port,RP)。注意,根端口是“每台非根桥上选一个”,而不是每个链路上选一个。根桥上不存在根端口,因为根桥本身就是目的地。
根端口的选举顺序是固定的,按优先级从高到低依次比较:
- 根路径开销最小者优。
- 如果根路径开销相同,比较对端发送者的桥ID,小者优。
- 比较对端发送者的端口ID,小者优。
- 最后一个比较本端自己的端口ID,小者优。
根路径开销是啥?这就要引入一张表了。STP给不同速率的链路定义了一个开销值,速率越高,开销越小:
- 10Mbps:开销100
- 100Mbps:开销19
- 1Gbps:开销4
- 10Gbps:开销2
路径开销是从交换机到根桥沿途所有链路的开销之和。比如一台非根交换机到根桥要经过一条千兆链路加一条百兆链路,那根路径开销就是4+19=23。
我在带新人时最常看到的一个误解是:以为千兆端口比百兆端口更容易当选根端口。这句话是不完整的,准确说法应该是:根路径开销更小的端口更容易当选,而千兆链路通常开销更小,所以它更可能成为根端口。一切以开销值计算为准,别凭感觉猜。
3.3 指定端口选举:链路上唯一的“话事人”
根端口解决的是“每台非根桥往哪个方向走”,指定端口解决的则是“每条链路上由哪个端口负责转发”。每一条链路上,有且只有一个指定端口(Designated Port,DP)。指定端口所在的交换机负责把数据从这条链路转发出去。
指定端口的选举逻辑用一句话概括:在一条链路上,谁发送的BPDU更优,谁的端口就是指定端口;两边的端口都往链路上发BPDU,交换机收到对端的BPDU后和自己本端口的BPDU比较,更优的胜出。
这里有个非常容易理解的点:根桥上的所有端口,在正常情况下都是指定端口。因为根桥到自己的根路径开销是0,没有任何其他交换机比根桥更接近根桥,所以根桥发出去的BPDU在这种比较中总是占优。于是根桥所有端口都是DP,这也是判断端口角色的一个快捷技巧。
如果一条链路两端的交换机都不是根桥呢?那就比较这两台交换机谁更靠近根桥,也就是谁的根路径开销更小。如果根路径开销一样,继续比较发送者的桥ID,再比较端口ID。最终在两个端口中挑一个最优的作为指定端口,另一个端口如果既不是根端口也不是指定端口,恭喜它,它就是被阻塞的端口(Blocking Port)。
3.4 一个简单拓扑完整走一遍选举流程
光看规则容易晕,我拿一个最经典的三角拓扑演示一遍。三台交换机SW1、SW2、SW3,两两互联,优先级都是默认的32768,MAC地址依次是SW1:00-e0-fc-00-00-01,SW2:00-e0-fc-00-00-02,SW3:00-e0-fc-00-00-03,所有链路都是千兆,开销为4。
第一步,选根桥。三者优先级相同,都是32768,所以比MAC地址,最小的01是SW1,SW1成为根桥。
第二步,给每台非根桥选根端口。SW2和SW3都是非根桥。SW2到SW1有两条链路:SW2-G0/0/1直连SW1,根路径开销4;SW2-G0/0/2连SW3再到SW1,总开销4+4=8。比较下来G0/0/1开销更小,成为SW2的根端口。同理,SW3-G0/0/1直连SW1,成为SW3的根端口。
第三步,给每条链路选指定端口。SW1上的端口都是指定端口,这个不用说。剩下还有两条链路需要考虑:SW2到SW3之间的那条链路上,两边都是非根桥。SW2的根路径开销是4,SW3的根路径开销也是4,打平。再比较发送者桥ID,SW2的MAC地址是02,SW3是03,SW2更小,所以SW2这一侧连SW3的端口是指定端口,SW3那一侧对应的端口既不是根端口也不是指定端口,进入阻塞状态。
最终端口角色就是这个结果:
| 交换机 | 端口 | 角色 | 说明 |
|---|---|---|---|
| SW1 | G0/0/1 | DP | 根桥端口 |
| SW1 | G0/0/2 | DP | 根桥端口 |
| SW2 | G0/0/1 | RP | 根路径开销4 |
| SW2 | G0/0/2 | DP | 链路上桥ID更优 |
| SW3 | G0/0/1 | RP | 根路径开销4 |
| SW3 | G0/0/2 | Blocking | 被阻塞,避免环路 |
从这个例子可以看出,虽然物理上三台交换机之间是一个三角形的环,STP通过阻塞SW3的G0/0/2,在逻辑上把这三角拓扑砍成了一棵树。SW3访问根桥只需要走SW3-G0/0/1直连,如果这条链路断了,SW3的G0/0/2就会从阻塞状态恢复,自动顶上去。
4. 端口状态机与计时器:30秒收敛背后到底发生了什么
4.1 五种状态从禁用到转发
STP端口不是一上来就能转发数据的,它要经历一系列状态迁移。标准的802.1D定义了五种端口状态:
- Disabled:端口被管理员关闭,或者物理链路断开,不参与STP计算。
- Blocking:端口处于阻塞状态,不收发数据帧,但可以接收BPDU,持续监听网络拓扑。
- Listening:端口正在监听BPDU,参与根桥和端口角色选举,但既不学习MAC地址,也不转发数据帧。
- Learning:端口已经确定了角色,开始学习MAC地址、构建MAC地址表,但依然不转发数据帧。
- Forwarding:端口正常工作,可以收发数据帧。
新端口启动时,默认从Blocking开始,依次通过Listening和Learning,最后进入Forwarding。阻塞状态持续多久呢?如果端口一开始就是阻塞的,那它就一直待着,直到需要它顶替时才往下走。如果是一个新启用的端口,它从Listening到Learning各需要15秒,总共30秒后才能正常转发数据。
这里有一个高频考点:Blocking状态的端口能不能收BPDU?能!虽然它不转发数据,但生成树协议报文是照收不误的,否则它怎么知道根桥挂了?考试题目里只要说“阻塞端口完全不接收任何报文”,基本就是错的。
4.2 三个计时器参数必须背
STP一共用了三个计时器,默认值一定要刻在脑子里:
- Hello Time:根桥发送配置BPDU的周期,默认2秒。
- Forward Delay:端口在Listening和Learning状态停留的时间,默认15秒。
- Max Age:交换机保存收到的BPDU的最长时间,默认20秒。如果超过20秒还没收到来自根桥的新BPDU,交换机就认为根桥不可达,拓扑需要重新计算。
这三个值之间的关系也要理解。Hello Time是根桥发报文的节奏,不是每台交换机都发。非根桥收到根桥的BPDU后在自己的指定端口转发出去,所以BPDU的传播依赖根桥和逐跳转发的配合。Max Age必须大于网络中BPDU可能的最大传输延迟,否则会误判根桥失效,导致无谓的拓扑重算。
4.3 根桥故障时的重新收敛过程
搞清楚了状态迁移和计时器,就能算STP的收敛时间了。收敛时间指的是从链路故障或根桥故障发生,到全网恢复转发能力所花的时间。
先看最常见的两种场景。
场景一:链路直接故障。比如根端口所在的链路断了,非根桥上有另一个端口可以作为替代,但那个端口处于阻塞状态。阻塞端口之前一直在收BPDU,链路断掉后,它立刻知道自己需要顶上吗?不需要等Max Age,因为直连链路故障是物理层马上就能感知的。它会进入Listening状态,等15秒,再进入Learning状态,等15秒,最后进入Forwarding。所以直连链路故障的收敛时间大约是30秒。
场景二:根桥故障,但不是直连链路断,而是根桥整体失联。此时非根桥上的阻塞端口必须等Max Age,也就是20秒,确认根桥真的没了,才能进入Listening,再花30秒,总共约50秒。
这两种场景的收敛时间差异,是软考和面试选择题里的常客。很多人只记得“30秒”,忘了根桥故障是50秒,丢分非常可惜。
除了收敛时间,还有一条关于拓扑变更的流程要掌握。当一台交换机发现自己的某个端口进入Forwarding状态、拓扑发生变化后,它会向根桥方向发送TCN BPDU。收到TCN的交换机先回复一个TCA(拓扑变更确认),然后继续向根桥转发TCN。根桥收到TCN后,在接下来的配置BPDU里把TC(Topology Change)位置1,发给全网。所有收到TC标记的交换机会把MAC地址表的老化时间从默认的300秒缩短到Forward Delay的时间,也就是15秒,这样错误的MAC表项能快速过期,不用等5分钟。
5. RSTP进化论:毫秒级收敛是怎么做到的
5.1 STP的慢是结构性问题,不是参数调大就能救
STP标准设计的收敛时间长达30到50秒,这在今天的网络里是没法接受的。几十秒的断网时长,对于办公网络可能还能忍,对于数据中心、在线交易系统来说就是灾难。所以后来IEEE推出了802.1w标准,也就是RSTP(Rapid Spanning Tree Protocol,快速生成树协议)。
RSTP并不是在STP的基础上把计时器参数改小,它是从机制上重塑了收敛过程。STP的问题是它过度依赖定时器:端口发现根桥失联要等Max Age,从阻塞到转发要经历两个Forward Delay。RSTP引入了显式的握手机制和快速切换机制,让指定端口可以在点到点链路上通过握手立即进入转发状态,把收敛时间压缩到秒级甚至毫秒级。
5.2 端口角色细化:替代端口与备份端口
RSTP在原有两种端口角色(根端口、指定端口)之上,增加了两种额外的角色:
- 替代端口(Alternate Port):当交换机同时从多个端口收到更优的BPDU时,除了根端口之外,那些端口就是替代端口。替代端口是根端口的备份,一旦根端口所在链路故障,替代端口可以立刻切换为根端口,不需要等待计时器倒计时。
- 备份端口(Backup Port):当交换机自己的某个端口收到了自己发送的更优BPDU时,该端口就是备份端口。备份端口是对指定端口的冗余。
端口角色一细化,故障切换的逻辑就清晰多了。STP时代,阻塞端口只能被动等待Max Age超时;RSTP时代,替代端口知道自己随时可以替换根端口,切换几乎是瞬时的。
同时,RSTP把端口状态从五个精简为三个:Discarding(既不放行数据也不学习MAC,相当于原来的Blocking和Listening合并)、Learning、Forwarding。状态少了一层,切换路径自然更短。
5.3 P/A握手机制:指定端口不再傻等15秒
RSTP最核心的加速机制是Proposal/Agreement,简称P/A握手,专门用于点到点链路上指定端口的快速切换。整个过程可以这么理解:
当一条链路两端都处于Discarding状态时,一端交换机(通常是离根更近的那一端)的指定端口会向对端发送一个Proposal报文,相当于说“这条链路让我来转发,请你把端口阻塞掉”。对端收到Proposal后,如果确认自己在这条链路上不是指定端口,就会把自己的非边缘端口全部阻塞,并回一个Agreement报文,“同意你的意见,我这边已经阻塞”。发起方收到Agreement后,立即将指定端口切换为Forwarding状态。
这个握手的核心价值在于:它用两次报文交互替代了15秒的Listening等待。整条链路的收敛只需要2秒以内,对于使用RSTP的现代网络来说,链路切换几乎是秒级完成。不过要注意,P/A机制只在点到点全双工链路上生效。如果链路是共享式的半双工模式,RSTP仍然要退回到类似STP的慢速收敛流程。
5.4 边缘端口:别让交换机端口对电脑说“请稍等30秒”
除了P/A握手,还有一个很实用的概念叫边缘端口(Edge Port),也就是连接终端设备(PC、服务器、打印机)的端口。这些端口不会连接其他交换机,理论上不会产生环路,所以没有必要让它们经历30秒的阻塞到转发过程。
在RSTP中,边缘端口配置之后可以直接进入Forwarding状态,设备插上就能用,不需要等待生成树收敛。华为里命令是stp edged-port enable,思科则对应spanning-tree portfast。但要注意:边缘端口一旦收到BPDU,就说明你判断错了,这个端口实际连接了另一台交换机。此时RSTP会让边缘端口自动失效,恢复成普通STP端口参与计算,防止出现环路。
我见过不少新手在核心交换机上把所有下行端口都设成边缘端口,然后网络里偶尔出现环路,生成树完全没拦住,就是因为边缘端口不参与正常的环路计算。边缘端口一定要用在终端侧,不要用在交换机互联侧,这是生产环境里非常重要的一个原则。
6. 华为、思科配置速查与软考/面试高频考点
6.1 华为交换机STP常用命令
华为设备默认开启了STP,但模式是MSTP(多实例生成树),基础学习阶段可以先切到STP或RSTP模式来验证效果。
进入系统视图后,最常用的配置如下:
system-view stp enable // 开启STP stp mode rstp // 切换为RSTP模式 stp priority 4096 // 手动修改优先级,范围0-61440且为4096的倍数 interface GigabitEthernet0/0/1 stp edged-port enable // 配置边缘端口 stp disable // 极端情况下关闭某端口的STP,生产环境慎用查看STP状态常用的命令是:
display stp // 查看本设备STP全部信息 display stp brief // 查看端口角色和状态摘要 display stp root // 查看根桥信息其中display stp brief输出里能看到每个端口的STP状态是root、designated还是alternate,角色一目了然,排查环路时非常有用。我在现网排查时基本就看这个输出。
6.2 思科交换机STP常用命令
思科设备的默认STP模式是PVST(Per-VLAN Spanning Tree),也就是每个VLAN单独跑一棵生成树。新一代设备上更推荐使用快速PVST,即Rapid PVST:
spanning-tree mode rapid-pvst // 切换为Rapid PVST模式 spanning-tree vlan 1 priority 4096 // 修改VLAN 1的桥优先级 interface GigabitEthernet0/1 spanning-tree portfast // 配置边缘端口查看命令:
show spanning-tree // 查看生成树汇总信息 show spanning-tree vlan 1 // 查看指定VLAN的STP信息 show spanning-tree interface gigabitEthernet 0/1 // 查看端口角色和状态思科的show spanning-tree输出里,端口角色会明确标出Root、Desg、Altn等字样,同样可以直接用来判断端口状态。
6.3 考点自查清单与易错题
最后按考试和面试的命题角度,把STP的重点列成一份自查清单。下面这张表建议收藏,刷题之前过一遍,比盲目背题效率高得多。
| 考点 | 核心结论 | 易错点 |
|---|---|---|
| 根桥选举 | 优先级优先,其次MAC,值小者优 | 优先级必须是4096的倍数 |
| 根路径开销 | 10M=100,100M=19,1G=4,10G=2 | 千兆不一定优,看链路累加开销 |
| 根端口 | 每台非根桥选一个,根路径开销最小优先 | 根桥没有根端口 |
| 指定端口 | 每条链路选一个,BPDU更优者胜 | 根桥上端口默认全是指定端口 |
| 端口状态 | 阻塞不收发数据但收BPDU | 阻塞不等于不接收任何报文 |
| 计时器 | Hello 2s,Forward Delay 15s,Max Age 20s | 根桥故障收敛约50s,链路故障约30s |
| TCN流程 | TCN逐跳上报根桥,全网临时缩短MAC老化时间 | 从300s缩短为15s |
| RSTP | 端口角色扩展为根、指定、替代、备份 | P/A握手仅点到点链路生效 |
| 边缘端口 | 接终端直接转发;收到BPDU自动失效 | 不能在交换机互联口配置 |
再看一道典型的易错题:一台交换机上所有端口都收到了优于自身BPDU的报文,其中端口A收到的BPDU根路径开销最小,端口B与端口A的根路径开销相同,但对端桥ID更小。问根端口是哪个?答案是端口B。因为根端口选举先比根路径开销,若相同再比发送者桥ID,B在对端桥ID上更优,所以选B。这类题只要你把选举顺序背下来,基本就是送分题。
还有一道我见过很多人栽过的:交换机新配置了一个端口,为什么连上去之后要等大约30秒才能上网?拆解下来就是新端口经历阻塞到监听再到学习的流程,最终才转发,本意是为了防止临时环路。如果接的是电脑,用边缘端口即可解决;如果接的是另一台交换机,这个等待是正常的,不能强行关STP或者把端口设成边缘端口来“优化”。
再提醒一个现网里非常常见的坑:有人为了图省事,直接stp disable或spanning-tree shutdown全局关闭STP。除非你能保证整个二层网络物理上确实没有环路,否则千万不要这么干。网线上一个不经意的回环、一台傻瓜交换机误接成环,几秒钟就能把全局网络打瘫。生成树协议是你的第一道防线,你可以嫌弃它慢,但你不能没有它。
在考试或者面试里遇到STP的题目,我自己的习惯是:先在草稿纸上画出拓扑,标出根桥,再逐台交换机找根端口,然后逐条链路找指定端口,最后剩下的就是阻塞端口。只要按这个顺序,再复杂的拓扑也能理清楚。希望这份STP汇总能帮你在理解和应试这两条路上都走得快一点,少踩几个我曾经踩过的坑。