首页 > 代码库 > OSI模型第二层数据链路层-STP协议
OSI模型第二层数据链路层-STP协议
1.stp协议的由来。
在二层网络中,交换机起到了很重要的作用,如果有一台交换机出现故障会影响网络的使用,为了避免存在单点故障,在实际的二层链路中会采用链路冗余,也就是采用交换设备之间多条联络连接,即多台交换机之间都有连接,这样即使一台交换机故障了,也可以使用其他交换机。这就是链路冗余。
链路冗余会------带来环路。
1.1环路影响一----广播风暴。
上图主机A发送arp报文,交换机B收到后,除接收端口外,其余端口都发送一份。B-->A-->C--->B这样循环(外圈)
交换机A收到交换机C的报文后又发给交换价B。B-->C-->A--B(内圈)
由于交换价没有TTL值,所以这些报文一直这样循环,占用交换机资源。
而且主机B会收到2份报文。试想你下了一份手机壳的单,过来两份手机壳,还是货到付款的。
1.2环路影响二---mac地址震荡。
上图,主机A发送arp报文。交换机B首先是学习主机A的mac地址在G0-0-3上。并且交换机B吧数据帧发给A--->C---->B并且从G0-0-2口又学习到同一mac地址。
交换机以后学习到的mac地址为准,(因为平时办公室用笔记本电脑,直接吧网线拔了,去另个办公室插上,还能上网。)
就会产生mac地址在两个端口跳。导致交换机获取mac地址不稳定。
2.生成树计算过程
2.1根交换机的选举。
1.选桥(交换机是由网桥演变过来的)ID小的为根交换机,上图中SWA最小,选为根。
2.每个交换机刚启动的时候都认为自己是根交换机,然后在和网络中发送BPDU报文和交换设备比桥ID。
3.桥ID的组成32768(优先级).00e0-fc16-ee43(mac地址) 其中优先级可以修改,取值范围为0-65535里面4096*n也就是4096倍数 (n取0及正整数)
2.2非根交换机的根端口选举。
1.选开销小的(带宽越大,开销越小)距离根交换机越近。
2.邻居桥ID小的。
3.端口ID(端口号)(上游的端口)选小的
2.3选举网段的指定端口
0.这个网段是指数据链路段,比如交换机B和C之间的连线就是网段。
1.选开销小的(带宽越大,开销越小)距离根交换机越近。
2.邻近交换机 桥ID小的。
3.端口ID(端口号)(上游的端口)选小的
剩余交换机端口进行阻塞。
3.交换机端口的角色
交换机端口状态:
各个状态的转换
开机后从disabled转listenning,listenning状态默认停留15秒,如何接收到的bpdu被告知需要blocking,就直接进入阻塞状态。
否则进入learning状态,默认停留15秒,如果需要阻塞,直接进入blocking状态,否则进入forwarding状态就成为正常使用端口。
如果需要阻塞,直接进入blocking状态。
根交换机每隔两秒中发送一个bpdu报文,告知非根交换机状态(是否还活着)。非根交换机20s收不到根交换机报文,则视为根交换机已死,重新选举根交换机。
OSI模型第二层数据链路层-STP协议