一、生成树协议的由来:由于网络中会存在单点故障而导致网络无法访问,系统瘫痪,因此在网络中提供冗余链路即引入备份链路来解决单点故障问题,但是------这样做的好处是:减少单点故障,增加网络可靠性;缺点是:产生交换环路,会导致广播风暴、多帧复制、MAC地址表抖动。因此生成树协议是为了提供冗余链路,解决环路问题
二、名词解释:
根桥:树的特点则是有根节点的,而这里的根桥就是相当于树的根节点。以根桥为起始点发散出去。
BID:选择根桥就需要交换机自我选择,需要交换机们的通信,这些信息被称为BPDU(桥协议数据单元),每两秒发送一次,BPDU的包含信息比较多,BID就是其中的一种。BID最小的就是根交换机ID。BID=桥优先级+桥Mac地址,一般交换机的桥优先级都是一样的(32768),所以一般比较Mac地址的大小。
根端口:不是根桥的交换机,选择一个端口用来连接根桥。根端口只能在非根交换机上选
指定端口:每两个交换机之间的链路上选择一个端口。
三、STP选择的步骤:
1 .选择根桥;
起始各个交换机都认为自己是根桥,然后进行互发帧进行根桥PK。BID最小的交换机为根交换机,BID由交换机优先级(2字节)和Mac地址(6字节)组合而成。先看优先级,优先级小的为根交换机;当优先级相等,看MAC地址,MAC地址小的为根交换机。
2. 选择根端口(RP);
本交换机各端口到达根交换机路径的开销—到达根桥的链路开销之和,找到一条开销最小的路径,交换机的这个端口就是根端口;如果路径开销相同,则比较发送BPDU交换机的Bridge ID,选较小的;如果发送者Bridge ID相同(即同一台交换),则比较发送者交换机的port ID,选较小的;如果发送者Port ID相同,则比较接收者的portID,选较小的。
3. 选择指定端口(DP),而非指定端口进入阻塞状态;
“指定端口的选举”是在每一个物理网段的不同端口之间选举出一个指定端口。它是依次根据以下三项条件来判定的:
3.1某网段到根桥的路径开销最小。
3.2接收数据时发送方(也就是链路对端的桥)的桥ID最小
3.3发送方端口ID最小(端口ID有16位,它是由8位端口优先级和8位端口编号组成的,其中端口优先级的取值范围是0~240,缺省值是128,可以修改,但必须是16的倍数)。
4. RP,DP设置为转发状态,其他端口为阻塞状态;
四、实例:
1.选择根桥:
如图:比较全部设备的BID,其中E的BID最小(由于都是32769, 所以比较的Mac地址,得出数字最小的),所以E为根桥
2.选择根端口
为每一个非根桥的交换机(这里指A,B,C,D)选择一个距离根桥的最短路径。
即:C---->E :根端口为C的F0/3 路径为 19 最小。
D---->E :根端口为D的F0/5 路径为 19 最小。
B---->E :根端口为B的F0/3 路径为 19 最小。
A---->E :他不能直接到达,需要第三方,他有两条路径;
A---->B---->E :路径为19+4
A---->C---->E :路径为19+4
路径开销一致进行第三条判断依据:最低发送者的BID(对于A来说,B,C为发送者),
因为C的BID小于B的BID,所以选择 A---->C---->E这条路径,所以
根端口为A的G0/2 路径为19+4 最小。
3.选择指定端口:
为一对交换机之间选择指定端口(即路径最小的为指定端口):
注意;这里是在接受的端口累加路径的开销值。从E出来的路径开销值初始值都为0
3.1 D------------------E: 路径开销为19 (在E的端口初始值为0,在D的端口初始值为19,在中间的那条线上初始值为0)
如何判断: 站在D,E的中间, 前往D的方向,到达D的端口,开销值为19. 前往E的方向,开销的初始值为0. 0<19
所以指定的端口为 E的F0/5;
3.2 B-----------------D: 路径开销为4 (在B的端口初始值为19,在D的端口初始值为19 ;路径开销值是到达根桥的路径值)
如何判断: 站在B,D的中间,由于路径开销相等,进行第三条判断(比较发送端的BID)因为B的BID(0060.3EEE.3E25)>D的BID(000C.CFD1.67BA)
所以指定的端口为 D的G0/2;
3.3 其他大都是在这样判断的。
4.根端口与指定端口设置为转发状态,其他端口为阻塞状态: 交换机自动设置,也可以管理员再次设置。
五、缺点
反应时间慢
六、注意点
1.一个网段中只有一个根桥
2.非根网桥只有一个根端口
3.根网桥的端口都是指定端口
七、参考文章
http://blog.51cto.com/wt7315/2069902
https://blog.csdn.net/qq_29630271/article/details/53889820?locationNum=2&fps=1
https://blog.csdn.net/broaden08/article/details/78151935
https://blog.csdn.net/lycb_gz/article/details/17347189
https://blog.csdn.net/qq_36248475/article/details/75008171