OSI模型第二层数据链路层-STP协议

时间:2023-03-09 07:26:35
OSI模型第二层数据链路层-STP协议

1.stp协议的由来。

在二层网络中,交换机起到了很重要的作用,如果有一台交换机出现故障会影响网络的使用,为了避免存在单点故障,在实际的二层链路中会采用链路冗余,也就是采用交换设备之间多条联络连接,即多台交换机之间都有连接,这样即使一台交换机故障了,也可以使用其他交换机。这就是链路冗余。

链路冗余会------带来环路。

OSI模型第二层数据链路层-STP协议

1.1环路影响一----广播风暴。

OSI模型第二层数据链路层-STP协议

上图主机A发送arp报文,交换机B收到后,除接收端口外,其余端口都发送一份。B-->A-->C--->B这样循环(外圈)

交换机A收到交换机C的报文后又发给交换价B。B-->C-->A--B(内圈)

由于交换价没有TTL值,所以这些报文一直这样循环,占用交换机资源。

而且主机B会收到2份报文。试想你下了一份手机壳的单,过来两份手机壳,还是货到付款的。

1.2环路影响二---mac地址震荡。

OSI模型第二层数据链路层-STP协议

上图,主机A发送arp报文。交换机B首先是学习主机A的mac地址在G0-0-3上。并且交换机B吧数据帧发给A--->C---->B并且从G0-0-2口又学习到同一mac地址。

交换机以后学习到的mac地址为准,(因为平时办公室用笔记本电脑,直接吧网线拔了,去另个办公室插上,还能上网。)

就会产生mac地址在两个端口跳。导致交换机获取mac地址不稳定。

2.生成树计算过程

2.1根交换机的选举。

OSI模型第二层数据链路层-STP协议

1.选桥(交换机是由网桥演变过来的)ID小的为根交换机,上图中SWA最小,选为根。

2.每个交换机刚启动的时候都认为自己是根交换机,然后在和网络中发送BPDU报文和交换设备比桥ID。

3.桥ID的组成32768(优先级).00e0-fc16-ee43(mac地址)  其中优先级可以修改,取值范围为0-65535里面4096*n也就是4096倍数 (n取0及正整数)

2.2非根交换机的根端口选举。

OSI模型第二层数据链路层-STP协议

1.选开销小的(带宽越大,开销越小)距离根交换机越近。

2.邻居桥ID小的。

3.端口ID(端口号)(上游的端口)选小的

OSI模型第二层数据链路层-STP协议

2.3选举网段的指定端口

OSI模型第二层数据链路层-STP协议

0.这个网段是指数据链路段,比如交换机B和C之间的连线就是网段。

1.选开销小的(带宽越大,开销越小)距离根交换机越近。

2.邻近交换机 桥ID小的。

3.端口ID(端口号)(上游的端口)选小的

剩余交换机端口进行阻塞。

3.交换机端口的角色

OSI模型第二层数据链路层-STP协议

交换机端口状态:

OSI模型第二层数据链路层-STP协议

各个状态的转换

OSI模型第二层数据链路层-STP协议

开机后从disabled转listenning,listenning状态默认停留15秒,如何接收到的bpdu被告知需要blocking,就直接进入阻塞状态。

否则进入learning状态,默认停留15秒,如果需要阻塞,直接进入blocking状态,否则进入forwarding状态就成为正常使用端口。

如果需要阻塞,直接进入blocking状态。

根交换机每隔两秒中发送一个bpdu报文,告知非根交换机状态(是否还活着)。非根交换机20s收不到根交换机报文,则视为根交换机已死,重新选举根交换机。