STP帧格式:
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
![](https://i-blog.csdnimg.cn/blog_migrate/b0903e16a14becd5d1b02172b79f4f88.jpeg)
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
STP包内容:
1、
BPDU
采用的是多播,目标
MAC
地址:
01-80-C2-00-00-00
(
Bridge_group_addr
:网桥组多播地址)
2、
协议标识符和协议版本都是固定的
0
工作流程:
1、
建立生成树
根桥选择:选举的原则是根据
BPDU
当中的
BID
来进行判断
,
优先级最小的成为根网桥;当
BID
中
的网桥的优先级相同时就根据
MAC
地址小的选为根桥。
选定根端口:根据下列配置消息的优先级进行比较,落选端口进入阻塞状态,只侦听
BPDU
。
配置消息的优先级比较原则
标识
|
优先级
| |
RootID(根ID)
|
越小优先级越高
|
BPDU携带信息
|
RootPathCost(根开销)
|
越小优先级越高
| |
TransmitID(根桥ID)
|
越小优先级越高
| |
PortID(端口ID)
|
越小优先级越高
|
交换机本身比较
|
![](https://i-blog.csdnimg.cn/blog_migrate/560154cd69f847c5a59948b604521ef4.jpeg)
指定端口和阻塞(
Blocking
)端口的定义:
端口类型
|
条件
|
指定端口
|
收到的配置消息里的RootID>其他端口收到的RootID
|
如果收到的配置消息里的RootID相同,比较开销:开销>RootPathCost+1
| |
如果RootID相同,开销=RootPathCost+1,BID< 配置消息里的BID
| |
阻塞(Blocking)端口
|
收到的配置消息里的RootID=根ID
|
如果RootID相同,开销=RootPathCost+1,BID> 配置消息里的BID
|
2、
生成树的维护
参数
|
说明
|
Message Age(消息年龄)
|
报文老化时间,按时间递增,每当收到一个生存期更小的配置消息,则更新自己的配置消息
|
Max Age(信息寿命)
|
BPDU的生存期(控制交换机保存BPDU信息的最长时间,根据BPDU更新)
当一段时间未收到任何配置消息,生存期达到Max Age时,网桥则认为该端口连接的链路发生故障,进行故障处理
|
Hello time
|
根交换机发送BPDU的时间间隔,根交换机发送BPDU包,非根交换机转发
|
3、
生成树的重新建立
拓扑改变消息的传播
![](https://i-blog.csdnimg.cn/blog_migrate/e3c21f6a947d362e71ca396748fae158.jpeg)
BPDU
分为两种:
Configuration BPDU (
配置的
BPDU)
和
TCN BPDU(拓扑变化的
BPDU
)
< 1 > TCN BPDU ---
拓扑变化的
BPDU
非根桥始发。当一台非根桥交换机,检测到网络拓扑发生变化的时候,就会产生一个
TCN BPDU
,这个
BPDU
是告诉根桥的,也就是说只有根端口才会向跟桥方向发送这类的
BPDU
,上行
。
当交换机从它的指定端口接收到
TCN
类
BPDU
时
,
它必须为其做转发
,
从它自已的根端口上发送出去
,
这样一级一级地传到根交换机后
,TCN
的任务才算完成。
在以上的过程中
,
无论是哪台交换机从它的指定端口上收到了
TCN
类型的
BPDU
包
,
它都必须给一个回复
,
必须从指定端口上发出
BPDU Type=0x01
的
configuration BPDU
包
< 2 > Configuration BPDU ---
配置
BPDU
根桥始发。当根桥收到
TCN BPDU
后,会产生一个配置
BPDU
,告诉所有它知道的非根桥交换机,拓扑发生了变化。会发现这种的
BPDU
是通过指定端口始发和转发的,下行。
当所有交换机都知道拓扑发生改变后,开始重新进行生成树计算,端口进入
Listening
状态
端口的五种状态:
端口状态
|
端口能力
|
Disabled
|
不收发任何报文
|
Blocking
|
不接收或转发数据,接收但不发送BPUDs,不进行地址学习
|
Listening
|
不接收或转发数据,接收并发送BPDUs,不进行地址学习
|
Learning
|
不接收或转发数据,接收并发送BPDUs,开始地址学习
|
Forwarding
|
接收并转发数据,接收并发送BPDUs,进行地址学习
|
Forward Delay
(转发延迟):交换机端口处于侦听、学习状态的时间;决定了
listening
与
learning
状态之间的切换时间
转载于:https://blog.51cto.com/cindy0smile/112036