whycx2013 发表于 2013-12-29 11:06:12

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

一、STP算法
  IEEE802.1D标准定义了STP的生成树算法。该算法依赖于BID、路径开销和端口ID参数来做出决定。
  1、BID(网桥ID):
  BID是生成树算法的第一个参数,BID决定了桥接网络的中心,称为根网桥或根交换机。
  BID参数是一个8字节域。前2个字节(10进制)称为"网桥优先级",后6个字节(16进制)是交换机的一个MAC地址。
  网桥优先级用来衡量一个网桥的优先度,范围是0-65535,默认是32768.
  思科交换机中的PVST+(每VLAN生成树)生成树协议使每个VLAN都有一个STP实例。
  比较两个BID的大小的原则:一是网桥优先级小的BID优先,二是如果网桥优先级相同,BID中的后六个字节的MAC小的则BID优先。
  2、路径开销:
  路径开销是生成树算法的第二个参数,决定到根网桥(根交换机)的路径。
  通俗说,路径开销是用来衡量网桥之间的距离的远近的,其值是两个网桥之间某条路径上所有链路开销的总和。
  路径开销与跳数无关。
  路径开销决定到根网桥或根交换机的最佳路径,最小的路径开销是到根交换机的最佳路径。
  路径开销的值的规律:带宽越大,STP开销越小。
  3、端口ID:端口ID是生成树算法的第三个参数,也决定到根交换机的路径。它由2个字节组成,包括"端口优先级"和"端口号",各占8位。
  端口优先级值从0-255,默认128;端口号包括256个。
  端口ID大小的判定与BID大小的判定相同。
  二、STP的过程
  1、STP判决和BPDU交换:
  当创建一个逻辑无环的拓扑时,STP总是通过发送BPDU的第二层帧来传递生成树协议,并执行相同的4步判决顺序:
  步骤1,确定根交换机;
  步骤2,计算到根交换机的最小路径开销;
  步骤3,确定最小的发送者BID;
  步骤4,确定最小的端口ID.
  网桥为每个端口协议按照收敛三个步骤做出处理。
  (1)选举根交换机:
  根交换机是一个具有最小BID的网桥,它是惟一的,是通过交换BPDU选举得出来的。
  BPDU的格式:BPDU是网桥之间用来交换生成树信息的特殊帧,它在网桥之间传播,包括交换机和所有配置来进行桥接的路由器,BPDU不携带终端用户流量。
  BPDU包括根BID、根路径开销、发送者BID和端口ID信息。
  也就是说,交换机通过传递BPDU来发现谁是最小的BID,从而将具有最小BID的网桥做为根交换机。最初时,交换机总将自己认为是根网桥,当它发现有比自己小的BID时,就将收到的具有最小BID的交换机作为根网桥。
(2)选举根端口:  在根交换机选举完后,就开始选举根端口了。所谓根端口,就是按照路径开销最靠近根交换机的端口,也就是说具有最小根路径开销的端口。每一个非根交换机都必须选举一个根端口。  (3)选举指定端口:  通过以上两个步骤后,生成树算法还没有消除任何环路,因为还没有选举指定端口。所谓指定端口,就是连接在某个网段上的一个桥接端口,它通过该网段既向根交换机发送流量也从根交换机接收流量。桥接网络中的每个网段都必须有一个指定端口。  指定端口也是根据最小根路径开销来决定,因此根交换机上的每个活动端口都是指定端口,因为它的每个端口都具有最小根路径开销(实际是它的根路径开销是0)。  注意:指定端口只在中继端口(TRUNK口)起作用。接入端口在指定端口选举中不起任何作用。接入端口是用来连接到主机或者三层端口的。  3、STP状态  在网桥已经确定了根端口、指定端口和非指定端口后,STP就准备开始创建一个无环拓扑了。  为创建一个无环的拓扑,STP配置根端口和指定端口转发流量,非指定端口阻塞流量。  实际上,STP决定端口转发和阻塞看似只有这两个状态,实际上是有五种状态的。  (1)、Disabled(为了管理目的或者因为发生故障将端口关闭);  (2)、Blocking(在初始启用端口之后的状态。端口不能接收或者传输数据,不能把MAC地址加入地址表,只能接收BPDU(bridge protocol data 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地址比正常情况下更快地从地址表更新掉

页: [1]
查看完整版本: STP生成树协议——算法和过程