生成树协议STP详解

生成树协议是什么?

定义 :生成树协议(Spanning Tree Protocol,简称STP)是一种数据链路层协议,主要用于防止交换机冗余链路产生的环路 ,确保以太网中无环路的逻辑拓扑结构,从而避免广播风暴和大量占用交换机资源

为什么需要STP协议

网络中存在环路是造成广播风暴最常见的原因。

下面以ARP报文为例,说明环路会存在什么问题,环路如何造成广播风暴

ARP造成网络风暴

在一个局域网(同一网段)中,设备之间的通信首先要通过ARP报文获取目的IP对应的MAC地址。首先交换机会查找ARP缓存表,(ARP缓存表存的是IP地址和MAc地址的对应关系,且有老化时间,过一段时间会消失):

  • 如果ARP缓存表中有目的交换机的MAC,直接发送数据包
  • 如果ARP缓存表中没有目的交换机的MAC,发送ARP请求报文

原理

假设网络连接图如上图,形成了环路。PCA要与PCB通信,PCA首先发送ARP报文(广播),每个设备收到报文之后都会进行泛洪(向入端口之外的端口发ARP广播包)。

  • PCB收到了ARP请求(来自SW3),并会进行单播回复(这个回复是正常的,不会形成风暴)。
  • 但是,SW2 和 SW3 同时通过链路B向对方发送了一个ARP请求的副本!然后就会一直循环在这个圈里打转~~

ARP报文包括以太网帧头和ARP报文数据。网上有很多资料,就不详细展开了,需要注意:

  • 以太网帧头的目的MAC用的全F广播,ARP报文数据中的MAC地址用全0填充。
  • 以太网帧头类型字段是0X0806表示ARP。

STP如何解决广播风暴问题

核心思路:把网络中的环变成一个树,因为树形结构是没有环路的。

BPDU(网桥协议数据单元)

BPDU封装在以太网帧中,包含下面的一些关键信息,后续交换机之间就是通过这个报文来确定阻断哪条路的:

  • 根桥ID:当前根桥的标识(由桥ID和MAC地址组成)。
  • 根路径成本:从发送BPDU的交换机到根桥的累计路径成本。
  • 发送桥ID:发送此BPDU的交换机的ID。
  • 端口ID:发送此BPDU的端口的ID。
  • 计时器:Hello时间、转发延迟、最大生存时间等。

原理

选举根桥

在所有的交换机中选择一个交换机作为根桥,建议手动配置。当所有交换机都启动STP后,都认为自己是根桥,然后发送BPDU报文。一轮轮比较确定根桥,值越小越优

复制代码
桥ID > MAC地址

选举根端口

每台非根桥按照到达根桥路径成本最小的原则,选取根端口。还是根据一轮一轮的比较来确定,值越小越优。比较顺序为:

arduino 复制代码
Root Path Cost > Bridge ID(发送者桥ID)> Port ID(发送者端口ID)> 本地端口ID(不在BPDU报文中)

选举指定端口

  1. 连接在同一个网段上的交换机,互相比较谁到达根桥的路径成本更小。
  2. 路径成本最小的那台交换机,它连接这个网段的端口就成为指定端口。
  3. 如果路径成本相同,则比较交换机的桥ID(小的优)。

阻塞

既不是根端口,也不是指定端口的,阻塞!

配置示例(华为)

通常配置的时候都是直接指定根桥,再指定一个备份根桥。防止他自己选举选到性能较差的交换机作为根桥。配置比较简单,放个链接:

配置STP功能示例 - S600-E系列交换机 典型配置案例 - 华为

相关推荐
吠品3 分钟前
企业信任基石OV SSL证书
网络协议·https·ssl
暖馒39 分钟前
Modbus应用层协议的深度剖析
网络·网络协议·c#·wpf·智能硬件
三水不滴9 小时前
有 HTTP 了为什么还要有 RPC?
经验分享·笔记·网络协议·计算机网络·http·rpc
宝塔面板10 小时前
AllinSSL 一站式搞定 SSL 自动续期:永久免费,开源可自托管
网络·网络协议·ssl
csdn今天倒闭了吗10 小时前
飞牛lucky配置ipv6 ddns+ssl+反向代理
网络·网络协议·ssl
JavinLu10 小时前
ios 配置了代理且使用 chls.pro/ssl 下载不了证书,无法弹出下载证书的提示问题
网络协议·ios·ssl
菜鸟特工00711 小时前
javax.net.ssl.SSLPeerUnverifiedException 异常如何处理
网络协议·.net·ssl
天荒地老笑话么11 小时前
静态 IP 规划:掩码/网关/DNS 的正确组合
网络·网络协议·tcp/ip·网络安全
Tadas-Gao11 小时前
TCP粘包现象的深度解析:从协议本质到工程实践
网络·网络协议·云原生·架构·tcp
aesthetician12 小时前
实时通信的艺术:Server-Sent Events (SSE) 与 WebSocket 的深度解析
网络·websocket·网络协议