STP基础
操作流程
通过构造一颗树来消除交换网络中的环路
- 选举一条根桥
- 在非根桥中选举一个根接口
- 选举指定接口
- 阻塞剩余接口
STP数据包结构
BPDU
- BPDU Bridge Protocol Data Unit 桥协议数据单元
- 使用组播,组播的MAC地址为 01-80-C2-00-00-00
图示
BPDU数据包
四个ID
- PID
- Protocol Identifier 协议ID
- 都是Spanning Tree Protocol(0x0000),不会变
- PVIID
- Protocol Version Identifier 协议版本ID
- STP模式 Spanning Tree(0)
- RSTP模式 Rapid Spanning Tree (2)
- MSTP模式 Multiple Spanning Tree(3)
- RID
- Root Identifier 根桥ID
- BID
- Bridge Identifier 桥ID
- PID
- Port Identifier 端口ID
BPDU类型(BPDU Type)
- 配置类型
- BPDU Type : Configuration
- 选举根交换机以及确定每个端口的角色和状态
- 在初始化过程中,每个桥都会主动发送配置BPDU
- 网络拓扑稳定之后,只有根交换机主动发送BPDU,其他交换机只有在收到上游传来的配置BPDU,才会发送自己的配置BPDU
- 发送周期为 Hello Time
- 老化时间为 Max Age
- TCN类型
- BPDU Type : Topology Change Notification(0x80) 拓扑变更通知
- 下游交换机感知到拓扑发生变化时,给上游交换机发送的拓扑变化通知
- BPDU Flags : 0x00
- Topology Change Acknowledgement : No 拓扑变更确认
- Topology Change : No 拓扑变更
选举时主要参数(用于检测最优配置BPDU)
图表
参数 备注 Root Identifier 发送配置BPDU的交换机认为的根交换机的标识 Root Path Cost 发送此配置BPDU的交换机到达根交换机的最短路径总开销
包含此交换机根端口的开销,
不含此交换机发送此配置BPDU端口的开销Bridge Identifier 发送配置BPDU的交换机的标识 Port Identifier 发送配置BPDU的交换机端口标识
BID 桥ID
用于STP中唯一标识一个交换机
由两部分组成
- 桥优先位:高16位 缺省值是:32768
- 桥MAC地址:低48位
图示
PID 端口ID
用于在STP中唯一标识交换机端口的
由两部分组成:
- 端口优先级:高8位 , 缺省值为128
- 端口编号: 低8位 ,只是一个流水号,与端口名称没有关系
图示
PC 路径开销(Path Cost)
路径开销,衡量交换机路径之间的优劣的,越低越好
STP中每条链路都具有开销值
链路开销标准
图示
RPC 根路径开销(Root Path Cost)
确定到达根交换机的最短路径,并生成无环树状网络
到根交换机的所有路径开销之和
图示
Hello Time 发送周期
- STP的发送时间间隔
- 默认为2s
Max Age 老化时间
- STP老化的时间
- 默认是20s
- 保持阻塞的时间
- 20s内没有收到比我BPDU更好的数据帧,我将解除阻塞,开始监听、学习
Forward Delay
- 转发延迟
- 默认是15秒
- Listening状态到Learning状态的时间15s
Message Age
- 当前的年龄
- BPDU报文,每经过一个交换机,Message Age 都会加1
- 如果Message Age 大于 Max Age , 非根桥会丢弃该配置BPDU