stp生成树协议

为什么要有生成树协议

生成树协议存在的意义

:为了解决二层环路所带来的问题(例如广播风暴和Mac地址表震荡)

如下为图解:左边的交换机上的计算机A发送报文,从左边交换机的3口发出,到了右边交换机的2口后泛洪转发发到又交换机的3口和1口上,但是右边交换机又会从3口往左交换机发送报文,则会在两个交换机间形成环路,造成“广播风暴”

在交换机上,来回的报文会导致在交换机上的mac地址表发生来回变化,造成“mac地址震荡

所以给生成树协议一个定义

:stp是用来解决二层环路问题所存在的协议。

stp中的相关问题

stp中的BPDU

BPDU的定义:

桥协议数据单元,用于传递stp协议的相关报文。

BPDU的分类:

配置BPDU:用来传递stp的配置信息。(这个报文的意义呢就像:在选举班干部时,大家互相的自我介绍)

TCN BPDU:用来通告拓扑变更信息。(这个报文呢就像:班干部当的不到位,被撤离了岗位,现在需要重新选举一个班干部出来,这个时候要告诉大家班干部人员发生了改变,这个时候这个消息就相当于TCN BPDU)

stp的选举规则

1.在所有交换机中选举出一台作为跟交换机(Root Bridge)

选举规则:Bridge-id小的优先

Bridge-id的定义是:桥的ID,BID,用来标记交换机的身份。

格式:优先级+Mac地址

优先级的默认是32768,而且在设置优先级时必须是4096的倍数。

2.每台非根网桥(交换机)选出一个根端口(Root Port)

选举规则:

1.到达根网桥的开销(到根网桥的开销)小的优先。

2.对端交换机的BID小的优先。

3.端口id小的优先。

开销的定义:Cost,代表路径耗费的代价和成本,带宽越大,开销越小。

3.每个物理段(每根线)上选举出一个指定端口(Designated Port)

选举规则:

1.到达根网桥开销小的优先。

2.本机BID小的优先。

3.端口id小的优先。

4.剩下没有角色的端口就是阻塞端口(Blocked Port)

5.以下为具体图解:

如图所示:

首先假设所有线的开销(cost)都为10.

1.我们要先选根网桥,根据根网桥的选举规则,我们看交换机的BIDBID包括优先级Mac地址,如图上边的交换机A,B,C,D的优先级都一样,怎要比MAC地址,mac地址以16位进制,则A<B<C<D,且规则是选择小的。怎交换机为根网桥

2.选完根网桥后,则要选出根端口,根据规则1,则在B和C中都是上面的那个端口为根端口,在D上则要匹配规则2,看它的对端交换机的BID,BID小的优先,则在该实例中D交换机左边的端口将选为根端口。

有没有一种可能,对端交换机的BID都相等呢?如图所示,交换机E上的两个端口所连的交换机为同一个交换机,则对应的BID必然相同,这个时候怎么办呢,则要用到规则3,在交换机E上端口小的选为根端口,则E1为根端口。

3.选完根端口以后要选择指定端口,物理段就是图中所连的线,根据规则cost小的选为指定端口,则跟根交换机相连的端口都是指定端口,B和C所连的线上选指定端口的话发现他们到根网桥的消耗都相等,则需要匹配规则2:看端口所在的交换机的BID,还是小的优先。在实例中,交换机B的优先级就比交换机C的优先级小了,所以选择交换机B上的端口为指定端口。根据规则,BC与D相连的线都选靠上的端口为指定端口,在D与E相连的线上,也选靠上的端口为指定端口。

4.选完了这三个身份的端口后,剩下的没有身份的端口都选为阻塞端口。

如上的图解已经很详细了,具体情况还要具体分析,该实例为理想话的cost相等的情况。

stp中交换机端口的状态

1.disable:禁用状态,被关闭的端口。

2.blocking:阻塞状态,接收BPDU,但不发送BPDU,不学习Mac地址,不转发数据。

3.listening:监听状态:接收并发送BPDU,不学习Mac地址,不转发数据,持续15s。

4.learning:学习状态:接收并发送BPDU,学习Mac地址,不转发数据,持续15s。

5.forwarding:转发状态:接收并发送BPDU,学习Mac地址,转发数据。

stp中的计时器

1.Hello time:周期2s,配置BPDU的发送周期(相当于打招呼的“hello girl)

2.Max age:周期20s,为10个Hello time的周期,判断链路故障

3.Forwarding delay:周期15s,用于状态切换延迟。

stp的变更机制

1.Mac age超时/有接口变更为转发状态,判断为拓扑发生变更,向根网桥发送TCN BPDU。

2.收到TCN BPDU的交换机继续向根网桥转发TCN BPDU,到达根网桥为止。

3.根网桥收到TCN BPDU后,向所有的端口发起TC置位的配置BPDU

4.交换机收到TC置位的配置BPDU后,Mac地址表的老化时间缩短为15s

stp存在的问题

1.收敛速度慢,故障切换的时间太长。(这对于运营商来说,1s的损失都是巨大的,况且他恢复时间还这么长,对他们来说损失是巨大的)

2.网路中如果大量的主机上下线的话,会导致TCN BPDU以及TCN配置BPDU大量的发送

为了解决STP的问题

又推出了解决stp问题的RSTP和MSTP以及PVST。

因为时间问题后续的RSTP和MSTP我将在下一篇博客进行讲解。

  • 16
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值