STP协议基本术语


1,根桥(root bridge) 根桥是桥ID 最小的交换机,stp收敛完成后,只有根桥能发送bpdu。其他交换机只能接受并转发。

2,桥ID(Bridge ID) 桥ID有桥的优先级(默认32768)和MAC地址组合而成,一般有8字节。

3,BPDU (bridge protocol data unit) 交换机之间STP协议下交流的信息单元。

4,非根桥(nonroot bridge )除了根桥,其他交换机都是非根桥。

5,根端口(root port) 非根桥上的到达根桥最近或开销最小的端口

6,指定端口(designated port) 进行转发的接口。通常选举指定接口首先比较两个交换机的桥ID,桥ID低者的交换机的接口为指定接口。

STP选举的四个原则

1 在一个广播域中只有一个根网桥

2 每一个非根网桥上都有一个根接口(离根网桥最近或cost最低的接口)

3 每一个网段中只有一个指定接口

4 非指定接口不使用


103642623.png 在这个图中,形成了环路,所以要进行stp协议,“down”掉一个接口,过程

1,首先选举出根桥,根据上面的原则,首先看优先级,如果没有设置那么优先级为默认设置,32768,这个时候看MAC地址,MAC地址一般都是不一样的,假设SW1的小,那么sw1为根桥。sw1上的每一个接口都是指定接口。这个时候sw2则为非根桥。

2,现在选举非根网桥的根接口,每一个非根桥上都有一个根接口,到根桥COST最低的则为根接口,1/1=1/2,此时,开销一样,那么比较端口号小的为根接口,所以1/1为跟接口。

3,根据原则的第三个,每个网段上只有一个指定接口,下面的那个网段已经有根桥的1/2为指定接口,所以1/1口被置为非指定接口。

环路清除。

交换机之间怎么比较MAC大小,怎么比较优先级大小呢。怎么计算接口开销(port cost)呢?通过根桥发出BPDU数据

1,BPDU格式(部分)

字节 类型

2 协议ID

1 版本号

1 消息类型

8 根桥ID

当前网络中的根桥ID

4 路径COST

接口的COST值

8 桥ID

本交换机的桥ID

2 接口ID

端口编号

2 消息年龄

2 最大时限

2 hellotime

2 forward delay

当交换机刚刚启动的时候,默认都是根桥。交换机之间相互交换BPDU,相互比较bpdu中自己和别人的桥ID的大小,找到最小的桥ID以后就选出根桥,通过比较路径cost来选举出根桥.

BPDU每两秒发送一次,hello time=2S。

接口状态

1,blocking 阻塞 只接收监听消息,但是不转发。交换机刚启动所有的交换机处于此模式。

2,listening 监听

3,learning 学习

4,forwarding 转发

交换机端口在选举完之后,端口只有两个状态,blocking 和 forwarding。2和3为过度状态。在一个环路中,如果正常的接口意外down掉后,分为两种情况

1, 当指定接口直接down掉时。


blocking端口转为listening,listening 下进行选举。选举完成以后转到learning 学习15S 学习,不装发数据。完成在转为forwarding。等待30S


2, 当某端口不可用,首先等待20S,20S没有接到BPDU'S HELLO 数据。则判断此指定接口为DOWN


blocking端口转为listening,listening 下进行选举。选举完成以后转到learning 学习15S 学习,不装发数据。完成在转为forwarding。等待50S