【原理总结】STP生成树机制

STP 生成树原理

STP的介绍】

STP 的全称是 spanning-tree protocol STP 协议是一个二层的链路管理协议,它在提供链路冗余的同时防止网络产生环路。 STP 协议 (Spanning tree protocol) 本质就是实现在交换网络中链路的备份和负载的分担 .STP 是生成树协议 , 主要功能是从拓扑中清除第 2 层环路。
 

BPUD与生成树原理分析】

一。 BPDU 里有什么?
      
 
 
二。每个字段做什么用?
协议 ID 和版本号:目前都是 0 ,表示的是这是个 STP 协议。
BPDU 类型:表示的是配置 BPDU 还是 TCN BPDU
标志域:第一位和最后一位有用到,用来表示这是一个拓扑变更帧,还是拓扑变更确认帧。
根网桥 ID
路径成本: 4 个字节,计算到根桥的路径成本。
ID 8 个字节。由 2 个字节优先级和 6 个字节 MAC 地址构成。 2 个字节里前 4bits 表示优先级,后 12bits 表示扩展位( vlan 数)。默认优先级是 32768 ,最大是 65535
端口 ID :由优先级加端口出厂编号构成,优先级可以修改,但是一般不推荐修改。
消息老化时间:
消息寿命:消息最多存活时间。
hello 时间:默认是两秒,可以修改。
转发延迟:默认是 15 秒,可以修改。
 
实例图分析:
实验环境:在宿舍用 wireshark 抓的包。
先看 1 的部分:看到目的 MAC 地址是 01 80 c2 00 00 00 ,这是个组播地址。
再看 2 STP 部分:
协议标识和版本都是 0.
类型:是配置 BPDU
根标识:这里优先级是 0 。(不是很清楚,或许是被改过了
路径开销是: 220020 (这个是累加的)
ID :优先级 32768
端口标识: 0x800e
消息老化时间: 3
hello 时间是 2s
转发延迟是 15s
三。 BPDU 里的字段怎么用? (生成树的原理)
浩哥说:“我们只看 BPDU ”。
现在就看看怎么用 BPDU 来解释 STP 原理。
首先看几个术语:
 
根桥 :具 有最小桥 ID 的交换机。
根路径开销 :一台交换机的根路径开销是根端口的路径开销与数据包经过的所有交换机的根路径开销之和。根桥的根路径开销是零。  
根端口: 每台交换机都有一个根端口,这个端口到根桥的路径开销最低。一旦多个端口具有相同的到根桥的路径开销时,那么具有最低的端口 ID 的才会成为根端口。
指定端口: 为每个交换 LAN 网段选定的转发端口。
 
现在正式开始:
用一个拓扑图来说明:(这是 NA 时聪哥引以为豪的拓扑)
假设:他们的优先级默认都一样,都是 32768.
带宽都一样,是 100M 的。
 
 
 
 
1. 根桥的选举:
在交换机开机后,每个接口都会发送出 BPDU 信息,将自己的桥 ID 填入根网桥 ID 字段,然后进行协商。发现别人的桥 ID 比自己大,就把根网桥换成别人的,如此迭代到根网桥选出为止。这里协商后根网桥为: sw1 。因为他的 mac 地址最小。(二层取小,三层取大原则)。
总结:一个 VLAN 里只有一个根网桥。
2. 根端口的选举:
       根网桥选举后,只有根网桥会发送 BPDU 信息,其它交换机不会发送,但是会转发 BPDU 信息。首先从接受到的 BPDU 中查看 cost of path 字段,将自己到链路的开销加上里面的 BPDU 的值,形成新的 cost of path 值传出去。例如: sw2 sw3 sw2 1 口看到 BPDU cost of
path 的值是 0 ,因为是根桥发来的,由于自己知道自己的接口是 100M 的,所以将 19 加上 0 等于 19 ,填入那个字段。同理 sw3 1 口也一样。这时候 sw2 sw3 分别各从 1 口收到的 BPDU 的开销值都是 19. 现在来分析 sw2 2 口的链路开销值。 2 口的 cost of path 的值为 19 加上 sw3 19 ,即是 38. 同理分析 sw2 sw3 的其它接口,所以 sw2 sw3 选择 1 口作为根端口。
如果开销值一样,就比较发送 BPDU 的桥 ID 。例如: sw4 的端口 1 2 ,由于到根网桥的链路开销一样,所以现在比较发送 BPDU 的桥 ID ,从 1 口接受到发送的桥 ID 比较小,所以 1 是根端口。
如果开销值和发送 BPDU 的桥 ID 都一样,那就比较发送 BPDU 端口 ID 字段。例如 sw5 1 2 端口,由于 BPDU sw4 发送过来的,所以看 sw4 的端口号, 3 4 小,所以和 3 相连的 sw5 端口 2 是根端口(注意这里不是端口 1 ,因为要看发送 BPDU 的端口号 )。
       总结:一个交换机只有一个根端口。
3. 指定端口的选举。
1 )根桥上的端口都是指定端口。(根桥要向外发 BPDU 和数据,所以一定端口一定都是指定端口)
2 )根端口对应的都是指定端口。
3 )其他的选择跟选根端口的原则基本一样。但是第二步,开销值一样时,选择桥 ID 的时候不一样。
这里的桥 ID 是本交换机的桥 ID 。其实指的也是发送 BPDU 的桥 ID
例如: sw2 sw3 2 端口,因为选择的指定端口是用来转发 BPDU 的,所以比较后, sw2 的桥 ID 比较低,成为指定端口。
总结:一个网段上,只有一个指定端口。
4. 非指定端口。
除了上述说的,剩下的端口就是非指定端口,也就是要被阻塞掉的端口。

【小小总结】

 
STP 防止环路的机制是将某些端口阻塞掉,。选根端口,就是选路径,选指定端口就是决定要在网段上要将两个口的哪个口给阻塞掉,从而达到目的。
关于 STP 的目的是防环路还是为了冗余的理解:
STP 是为了更好地冗余。两个方面来理解:
1 )环路产生的原因的是冗余。
2 )后面发展 RSTP MSTP 都不仅仅是为了防环路,如果是的话, 802.1D 就可以了。引用第一段的话, STP 协议的本质就是实现在交换网络中链路的备份和负载的分担,也就是为了更好的冗余。
 
友情提示:
1. 根据发送的 BPDU 来判断,只有根网桥才能发送 BPDU
2. 理解根端口和指定端口的区别,根端口是用来接受 BPDU 信息,而指定端口是用来转发 BPDU 等信息的,一个是接受方,一个是发送方,所以当链路开销一样时,在选择指定端口和根端口时候是相反的。
 
最后��唆一下,“我们只看 BPDU “。 浩哥这话真是经典。
 
 
 
                    
 
 
 
二��九年八月六日
wzhj132

你可能感兴趣的:(网络,STP,交换,NP,环路)