STP生成树协议——算法和过程

1、STP算法
     IEEE802.1D标准定义了STP的生成树算法。该算法依赖于BID、路径开销和端口ID参数来作出决定。
     一、BID(网桥ID):
     BID是生成树算法的第一个参数,BID决定了桥接网络的中心,称为根网桥或根交换机。
BID参数是一个8字节域。前2个字节(10进制)称为“网桥优先级”,后6个字节(16进制)是交换机的一个MAC地址。
网桥优先级用来衡量一个网桥的优先度,范围是0-65535,默认是32768。
思科交换机中的PVST+(每VLAN生成树)生成树协议使每一个VLAN都有一个STP实例。
比较两个BID的大小的原则:一是网桥优先级小的BID优先,二是若是网桥优先级相同,BID中的后六个字节的MAC小的则BID优先。      二、路径开销:      路径开销是生成树算法的第二个参数,决定到根网桥(根交换机)的路径。      通俗说,路径开销是用来衡量网桥之间的距离的远近的,其值是两个网桥之间某条路径上全部链路开销的总和。      路径开销与跳数无关。      路径开销决定到根网桥或根交换机的最佳路径,最小的路径开销是到根交换机的最佳路径。      路径开销的值的规律:带宽越大,STP开销越小。      三、端口ID:端口ID是生成树算法的第三个参数,也决定到根交换机的路径。它由2个字节组成,包括“端口优先级”和“端口号”,各占8位。      端口优先级值从0-255,默认128;端口号包括256个。      端口ID大小的断定与BID大小的断定相同。      2、STP的过程      一、STP判决和BPDU交换:      当建立一个逻辑无环的拓扑时,STP老是经过发送BPDU的第二层帧来传递生成树协议,并执行相同的4步判决顺序:      步骤1,肯定根交换机;      步骤2,计算到根交换机的最小路径开销;      步骤3,肯定最小的发送者BID;      步骤4,肯定最小的端口ID。      网桥为每一个端口存储一个其收到的最佳BPDU,当有其余的BPDU到达交换机的端口时,交换机会使用四步判决过程来判断此BPDU是否比该端口原来存储的BPDU更好,若是新收到的BPDU(或者本地生成的BPDU)更好,则替换原有值。      当一个网桥第一次被激活时,其上全部端口每隔一个HELLO时间(默认2秒)发送一次BPDU;若是一个端口发现从其余网桥收到的BPDU比本身发送的好,则本地端口就中止发送BPDU;若是在MAX AGE(最大生存时间,默认20秒)内没有从邻居网桥收到更好的BPDU,本地端口则从新开始发送BPDU,即最大生存时间是最佳BPDU的超时时间。      二、STP收敛的三个步骤:      生成树算法收敛于一个无环拓扑的初始过程包含三个选举步骤:      步骤1    选举一个根交换机。      步骤2    选举根端口。      步骤3    选举指定端口。      在网络第一次“初始”时,全部网桥都洪泛混合的BPDU信息,网桥经过执行STP四步判决过程,造成整个网络或VLAN唯一的生成树。在网络稳定后,BPDU从根网桥流出,沿着无环支路到达网络中的每个网段。网络发生变化时,生成树协议按照收敛三个步骤作出处理。      (1)选举根交换机:      根交换机是一个具备最小BID的网桥,它是唯一的,是经过交换BPDU选举得出来的。 BPDU的格式:BPDU是网桥之间用来交换生成树信息的特殊帧,它在网桥之间传播,包括交换机和全部配置来进行桥接的路由器,BPDU不携带终端用户流量。 BPDU包括根BID、根路径开销、发送者BID和端口ID信息。      也就是说,交换机经过传递BPDU来发现谁是最小的BID,从而将具备最小BID的网桥作为根交换机。最初时,交换机总将本身认为是根网桥,当它发现有比本身小的BID时,就将收到的具备最小BID的交换机做为根网桥。      (2)选举根端口:      在根交换机选举完后,就开始选举根端口了。所谓根端口,就是按照路径开销最靠近根交换机的端口,也就是说具备最小根路径开销的端口。每个非根交换机都必须选举一个根端口。      (3)选举指定端口:      经过以上两个步骤后,生成树算法尚未消除任何环路,由于尚未选举指定端口。所谓指定端口,就是链接在某个网段上的一个桥接端口,它经过该网段既向根交换机发送流量也从根交换机接收流量。桥接网络中的每一个网段都必须有一个指定端口。      指定端口也是根据最小根路径开销来决定,所以根交换机上的每一个活动端口都是指定端口,由于它的每一个端口都具备最小根路径开销(实际是它的根路径开销是0)。      注意:指定端口只在中继端口(TRUNK口)起做用。接入端口在指定端口选举中不起任何做用。接入端口是用来链接到主机或者三层端口的。      三、STP状态      在网桥已经肯定了根端口、指定端口和非指定端口后,STP就准备开始建立一个无环拓扑了。      为建立一个无环的拓扑,STP配置根端口和指定端口转发流量,非指定端口阻塞流量。      实际上,STP决定端口转发和阻塞看似只有这两个状态,其实是有五种状态的。      (1)、Disabled(为了管理目的或者由于发生故障将端口关闭);      (2)、Blocking(在初始启用端口以后的状态。端口不能接收或者传输数据,不能把MAC地址加入地址表,只能接收BPDU(bridge protocol da ta unit)。若是检测到有一个桥接环,或者端口失去了它的根端口或者指定端口的状态,那么就会返回到Blocking状态);      (3)、Listening(若是一个端口能够成为一个根端口或者指定端口,那么它就转入监听状态。此时端口不能接收或者传输数据,也不能把MAC地址加入地址表,但能够接收和发送BPDU);      (4)、Learning(在Forward Delay计时时间到(默认15秒)后,端口进入学习状态,此时端口不能传输数据,但能够发送和接收BPDU,也能够学习MAC地址,并加入地址表);      (5)、Forwarding(在下一次转发延时计时时间到后,端口进入转发状态,此时端口可以发送和接收数据、学习MAC地址、发送和接收BPDU)。      在这些状态过程当中,会引起网络拓扑结构发生改变。此时,发生变化的交换机会在它的根端口上每隔hello time时间就发送TCN BPDU,直到上级的指定网桥邻居确认了该TCN(拓扑结构变化通知)为止。当根网桥收到后,会发送设置了TC(topology change,拓扑改变)位的BPDU,通知整个生成树拓扑结构发生了变化。这会让全部的下级交换机把它们的Address Table Aging(地址表老化)计时器从默认值(300秒)降为Fordwarding Delay(默认为15秒),从而让不活动的MAC地址比正常状况下更快地从地址表更新掉
相关文章
相关标签/搜索