生成树协议STP
{Back to Index}

Table of Contents

当网络中的设备或链路出现故障时,通常要求网络不会中断。这需要在网络构建的时候就增加好冗余链路,使得网络中任意两个站点可以通过两条甚至多条路径连通。

no_redundancy.png

Figure 1: 无冗余链路网络

with_redundancy.png

Figure 2: 添加冗余链路网络

1 网络环路问题

冗余链路提高网络可靠性的同时,会产生网络环路,而网络环路会带来以下问题:

  • 广播风暴
  • 主机收到重复广播帧
  • 交换机的帧交换表震荡(漂移)

loop_problem.png

Figure 3: 网络环路带来的问题(广播风暴)

2 生成树协议 1

以太网交换机使用生成树协议 STP ,可以在提高网络可靠性的同时,又避免环路带来的各种问题:

  • 无论交换机之间采用怎样的物理连接,交换机都能够 自动计算并构建一个逻辑上没有环路的网络 ,其逻辑拓扑结构必须是 树形 的(即无逻辑环路)。
  • 最终生成的树形逻辑拓扑要确保 连通整个网络的每一部分
  • 当首次连接交换机或网络物理拓扑发生变化时(人为改变或是故障),交换机都将进行生成树的 重新计算

3 生成树协议算法 2

生成树协议算法有三个步骤:

  • 选举根交换机
  • 选举根端口
  • 选举指定端口并阻塞备用端口

选举 是通过网络中各交换机相互发送生成树协议专用的数据帧 BPDU 来实现的。

3.1 选举根交换机

root_switch.png

Figure 4: 根交换机选举逻辑

3.2 选举根端口

root_port.png

Figure 5: 根端口选举逻辑

3.3 选举指定端口并阻塞备用端口

designated_port.png

Figure 6: 指定端口并阻塞备用端口选举逻辑

Footnotes:

Author: Hao Ruan (ruanhao1116@gmail.com)

Created: 2020-11-13 Fri 15:09

Updated: 2021-08-17 Tue 11:23

Emacs 27.1 (Org mode 9.3)