STP算法实现的基本过程

交换机是如何通过STP选举出根桥、根端口、指定端口,进而确定阻塞的端口?


配置BPDU格式

PID

PVI

BPDU

Type

Flag

Root

ID

RPC

Bridge

ID

Port

ID

Message

Age

Max

Age

Hello

Time

Forward

Delay

初始状态

每个桥(交换机)都认为自己是根桥,周期性地(Hello Time,缺省为2s)主动产生并向外发送配置BPDU: 

Root ID=自己的BID

RPC=累计到根桥的开销

Bridge ID=自身BID

Port ID=发送该BPDU端口的端口ID

根桥的选举

        配置BPDU中RID最小的为根桥,其余为非根桥。

最优配置BPDU的对比规则
  1. RID最小的最优

  2. RPC最小的最优

  3. BID最小的最优

  4. PID最小的最优

最优配置BPDU的选择过程
  1. 每个端口将收到的配置BPDU与自己的配置BPDU进行比较:

    • 如果收到的配置BPDU优先级较低,则将其直接丢弃,对自己的配置BPDU不进行任何处理

    • 如果收到的配置BPDU优先级高,则用该配置BPDU的内容将自己配置BPDU的内容替换掉

    • 如果收到的配置BPDU和自己的一样,则将其直接丢弃

    • 设备将所有端口的配置BPDU进行比较,选出最优的配置BPDU

根端口的选择过程

        非根桥设备将接收的最优配置BPDU且路径开销最小的那个端口定为根端口:RID小的为根端口;若RID相同比较RPC,RPC小的为根端口。比较RPC时非根桥要做累计开销和的计算

指定端口的选择过程
  1. 设备根据根端口的配置BPDU和根端口的路径开销,为每个端口计算一个指定端口配置BPDU

    1. 根桥ID替换为根端口的配置BPDU的根桥ID

    2. 根路径开销替换为根端口配置BPDU的根路径开销加上根端口对应的路径开销

    3. 发送者BID替换为自身设备的ID

    4. 发送者端口PID替换为自身端口ID

  2. 设备将计算出的配置BPDU与角色待定端口自己的配置BPDU进行比较

    1. 如果计算出的配置BPDU更优,则该端口被确定为指定端口,其配置BPDU也被计算出的配置BPDU替换,并周期性地向外发送

    2. 如果该端口自己原本的配置BPDU更优,则不更新该端口的配置BPDU并将该端口阻塞。该端口将不再转发数据且只接收不发送配置BPDU

        SW3收到SW2发过来的BPDU后,自身拥有的两份BPDU的RID值一样,根端口出现争议,为进一步确认根端口,SW3会计算接口到根的路径开销:

                1.SW3通过1口经SW2到达根桥的路径开销为2000+2000=4000

                2.SW3通过2口到达根桥的路径开销为2000

        因此,确定SW3的2口为RP,然后用2口接收到的配置BPDU为1口计算出新的配置BPDU

        SW3根据2口为1口计算出的配置BPDU没有1口本身的配置BPDU的优先级高,将该端口阻塞。

注意事项
  1. 根端口接收配置BPDU,不修改只保存使用,对端指定端口发送什么就是什么
  2. 非根桥上指定端口的配置BPDU都是依据根端口接收的配置BPDU通过计算产生的
  3. 根端口选举时,若RPC相同需交换机计算自身端口到达根桥的路径开销,而不是直接根据收到配置BPDU的RPC进行比较
  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值