简单了解生成树协议

来源:互联网 发布:淘宝不支持该地区销售 编辑:程序博客网 时间:2024/06/05 11:25

    

一、STP

     1、 STP工作原理:阻塞冗余端口使网络中的链路在通信时只有一天链路生效 。当链路中出现故障时,将处于阻塞状态的端口重新打开。

     2、 STP(802.1D)的四个步骤:

           ① 选举根桥,每个vlan中只能有一个根桥

          ② 每个非根桥中,选举一个根端口

          ③ 每个网段选取一个指定端口

          ④ 根端口和指定端口转发数据,非根端口和非指定端口阻塞

     3、 STP端口的状态:

         ① 阻塞状态:只能接受BPDU,不能接受或传输数据,不能把MAC地址加入地址表

         ② 监听状态:能发送和接受BPDU,不能接受或传输数据,不能把MAC地址加入地址表(选举根桥,根端口,指定端口为此状态)

         ③ 学习状态:能发送和接受BPDU,不能接受或传输数据,能把MAC地址加入地址表(减少转发状态的泛洪)

         ④转发状态:能发送和接受BPDU,能接受或传输数据,能把MAC地址加入地址表



    4、STP收敛过程:

         ① 选根桥:每个交换机最初都认为自己是根桥,然后交换BPDU,收到BPDU后,比较routeID。往后发送的routeID都是最优的,直到选出全网公认的根桥。

         ② 选根端口:比较路径开销,相同比较BID,然后是PID。

         ③ 选指定端口:比较路径开销,相同比较BID,然后是PID。


二、BPDU

    1、BPDU(网桥协议数据单元)是运行STP的交换机之间交换的消息帧。BPDU内包含了STP所需的路径和优先级

信息,STP便利用这些信息来确定跟桥以及到根桥的路径 。

    2、BPDU四个重要字段:

          ① route ID(根桥的B-ID)

          ② Cost of pash (俩条网桥之间某条路径链路开销之和)

          ③ Bridge ID(桥优先级:0-65535  默认32769)/ MAC地址 (vlan MAC)

          ④ port  ID (端口优先级:0-255    默认128 )/ 端口号

   3.

STP 协议中两种类型的 BPDU : Configuration & TCN

BPDU分为几种类型:

  configuration BPDU     type:0x00   注意类型号

  TCN BPDU               type 0x80

 

这两种类型的BPDU是由BPDU协议字段中的TYPE决定的,具体字段内容如下:


               

          protocol ID        协议ID

          Version    STP版本

          Message Type   消息类型

          Root ID    根桥ID

          Cost of Path   路径开销

          Bridge ID      桥ID

          Port ID     端口ID

          Message Age    当前消息年龄(STP每经过一台交换机,该字段+1,同步不同位置的设备根桥超时)

          Max Age           最大消息年龄(超过则代表根桥故障)

          Hello Time    问候时间(根桥通过不断发送STP维持自己的地位,Hello time 是发送的间隔时间)

          Forward Delay   端口从listening -> learning  或 learning -> forwarding 的转态需要时间

       

STP在交换机之间运行,交换配置信息,就是靠BPDU实现的。

BPDU每隔2秒,以Multicast的方式发送,在designate port上被发送。

通过BPDU信息的交换,我们能够:

1、为整个STP网络找到一个root switch,也叫root bridge

2、为每个网段选举一个designate switch,或者说designate bridge

3、通过设置某些端口为backup状态,来打破环路

 

正常情况下,交换机只会从它的Root Port上接收configuration BPDU包,但是绝不会主动发送configuration BPDU包给root bridge。

 这里就需要提到第二种类型的BPDU包了,也就是Topology Change Notification(TCN) BPDU。

 

这样,当一台交换机检测到拓扑变化后,它就可以发送TCN给root bridge,注意TCN是通过root port向root bridge方向发出的.

 

当交换机从它的designate port接收到TCN类BPDU时,它必须为其做转发,从它自已的root port上发送出去TCN类型的BPDU包,这样一级一级地传到root bridge后,TCN的任务才算完成.

 

在以上的过程中,无论是哪台交换机从它的designate port上收到了TCN类型的BPDU包,它都必须给一个回复,必须从designate port上发出TCA位被置1的normal configuration BPDU包,注意,这里是正常的configuration BPDU包.它的TCA位被置1,表明是要给TCN以回复的,但它跟TCN不是一类型的包.

 

那么当TCN传遍全网,直至到达ROOT BRIDGE后,root bridge也要做出一种回应,它会发出一个正常的configuration BPDU包,当然会有一些不同,就是包内的TC字段会被置1,TC即topology change,表示发现拓扑变化.这个包会被所有交换机转发,同样的TC位会置1,直至传遍全网,所有交换机都得知拓扑变化为止.