STP(Spaning Tree Protocol) 协议

439 阅读1分钟

本文的主要目的:帮助简单理解 STP 协议的工作流程

1. 背景

二层网络,存在环路的情况下。引起下面的两个问题:

  1. 广播风暴

    交换机转发广播帧的原则,哪个接口收到了数据,就把数据转发给其他接口。
    想一想,如果存在环路的情况下,是不是产生了广播风暴
    
  2. MAC 地址漂移

    ARP 广播的时候,就会不停的收到不同的 MAC 地址,造成 MAC 地址漂移
    

2. STP

STP 的目的就是要让闭环变成树

假如有如下闭环:

SWA —— —— SWB
|  \     / |
|   \   /  |
|    \/    |
|    /\    |
|  /    \  |
SWC —— —— SWD

怎么才能变成一棵树?

  1. 选择根节点

    在这里我们选择自然排序最低的那个交换机,作为根节点
    
    SWA
    
  2. 选择根端口

    选择每个交换机到根节点,路径最短的那个端口
    
    SWA —— —— SWB
    |  \
    |   \
    |    \
    |     \
    |      \
    SWC     SWD
    
  3. 选择指定端口

    其实第二步的时候,一个树已经被我们建立了,但是这棵树太简化了
    比如:SWC-SWD 之间的两个端口其实,只需要堵塞一个即可
    
    我们比较 PORTID 的比重,来选择指定端口,这里我们选择了SWC 的两个指定端口和 SWB 的一个指定端口
    
    SWA —— —— SWB
    |  \       |
    |   \
    |    \
    |     \
    | /    \
    SWC——   SWD
    
  4. 其余端口将指定为预备端口,预备端口被阻塞