MSTP实现过程

来源:互联网 发布:java list分组 编辑:程序博客网 时间:2024/06/03 19:11

      MSTP协议在计算生成树时使用的算法和原理与STP/RSTP大同小异,只是因为在MSTP中引入了域和内部路径开销等参数,故MSTP中的优先级向量是7维,而STP/RSTP是5维。STP/RSTP中的优先级向量是{根桥标识符,根路径开销,桥标识符, 发送BPDU报文端口标识符, 接收BPDU报文端口标识符},MSTP中的优先级向量是{CIST根桥标识符,CIST外部根路径开销,CIST域根标识符,CIST内部根路径开销,CIST指定桥标识符,CIST指定端口标识符,CIST接收端口标识符},其中STP/RSTP中的桥标识符实际上是发送BPDU的设备的标识符,与MSTP中的CIST指定桥标识符对应。MSTP中的CIST域根标识符有两种情况,一种是总根所在域内,BPDU报文中该字段是参考总根的标识符,另一种情况是不包含总根的域中,BPDU报文该字段是参考主设备的标识符。运行MSTP的实体初始化时认为自己是总根、域根,通过交互配置消息,按照上面介绍的7维向量计算CIST生成树和MSTI

CIST生成树的计算

网络中的设备发送接受BPDU报文,在经过比较配置消息后,在整个网络中选择一个优先级最高的交换机作为CIST的树根。在每个MST域内MSTP通过计算生成IST;同时MSTP将每个MST域作为单台交换机对待,通过计算在MST域间生成CST。如前所述,CST和IST构成了整个交换机网络的CIST。

MSTI的计算

    在MST域内,MSTP根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例。每棵生成树独立进行计算,计算过程与STP/RSTP计算生成树的过程类似

生成树协议算法实现过程

在初始时,每台交换机的各个端口会生成以自身交换机为根桥的配置消息,其中根路径开销为0,指定桥ID为自身交换机ID,指定端口为本端口。
(1)   每台交换机都向外发送自己的配置消息,并在接收到其他配置消息后进行如下处理:
当端口收到比自身的配置消息优先级低的配置消息时,交换机把接收到的配置消息丢弃,对该端口的配置消息不作任何处理;
当端口收到比本端口配置消息优先级高的配置消息时,交换机把接收到的配置消息中的内容替换该端口的配置消息中的内容;然后交换机将该端口的配置消息和交换机上的其它端口的配置消息进行比较,选出最优的配置消息。
(2)   配置消息的比较原则如下:
树根ID较小的配置消息优先级高;
若树根ID相同,则比较根路径开销。比较方法为:计算配置消息中的根路径开销与本端口对应的路径开销之和(设为S),S较小的配置消息优先级较高;
若根路径开销也相同,则依次比较指定桥ID、指定端口ID、接收该配置消息的端口ID等。MSTP中比较上面提到的7维向量,STP/RSTP中比较上面提到的5维向量。
(3)   计算生成树的步骤如下:

选出根桥。

比较所有交换机发送的配置消息,其中树根ID最小的交换机为根桥。

选出根端口。

每台交换机把接收最优配置消息的那个端口定为自身交换机的根端口。

确定指定端口。

     首先,交换机根据根端口的配置消息和根端口的路径开销,为每个端口计算一个指定端口配置消息:树根ID替换为根端口的配置消息的树根ID;根路径开销替换为根端口的配置消息的根路径开销加上根端口的路径开销;指定桥ID替换为自身交换机的ID;指定端口ID替换为自身端口ID。
      然后,交换机使用计算出来的配置消息和对应端口上原来的配置消息进行比较。如果端口上原来的配置消息更优,则交换机将此端口阻塞,端口的配置消息不变,并且此端口将不再转发数据,只接收配置消息;如果计算出来的配置消息更优,则交换机就将该端口设置为指定端口,端口上的配置消息替换成计算出来的配置消息,并周期性向外发送。
原创粉丝点击