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 非指定接口不使用
在这个图中,形成了环路,所以要进行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
转载于:https://blog.51cto.com/vanshin/1312238