从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 英语的文化
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 英语的文化
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • 计算机历史

  • 数字电路

  • 计算机组成原理

  • 汇编语言

  • C语言

  • 数据结构

  • 操作系统

  • Linux

  • 计算机网络

    • 计算机网络微课堂-B站教书匠

      • 《计算机网络微课堂》课堂介绍
      • 第一章 因特网概述
      • 1.1 计算机网络在信息时代的作用
      • 1.2 因特网概述
      • 1.3 三种交换方式
      • 1.4 计算机网络的定义和分类
      • 1.5 计算机网络的性能指标
      • 1.6计算机体系结构
      • 第二章 物理层
      • 2.1 物理层的基本概念
      • 2.2 物理层下面的传输媒体
      • 2.3 传输方式
      • 2.4 编码与调制
      • 2.5 信道的极限容量
      • 第三章 数据链路层
      • 3.1 概述
      • 3.2 封装成帧
      • 3.3 差错检测
      • 3.4 可靠传输
      • 3.5 点对点协议PPP
      • 3.6 媒体接入控制的基本概念
      • 3.7 ARP协议
      • 3.8 集线器与交换机的区别
      • 3.9 以太网交换机自学习和转发帧的流程
      • 3.10 以太网交换机的生成树协议STP
        • 3.10 以太网交换机的生成树协议STP
      • 3.11 虚拟局域网VLAN
      • 第四章 网络层
      • 4.1 网络层概述
      • 4.2 网络层提供的两种服务
      • 4.3 IPv4地址
      • 4.4 IP数据报的发送和转发过程
      • 4.5 静态路由配置及其可能产生的路由环路问题
      • 4.6 路由选择
      • 4.7 IPv4数据报的首部格式
      • 4.8 网际控制报文协议ICMP
      • 4.9 虚拟专用网VPN与网络地址转换NAT
      • 第五章 传输层
      • 5.1 运输层概述
      • 5.2 运输层端口号、复用与分用的概念
      • 5.3 UDP和TCP的对比
      • 5.4 TCP的流量控制
      • 5.5 TCP的拥塞控制
      • 5.6 TCP超时重传时间的选择
      • 5.7 TCP可靠传输的实现
      • 5.8 TCP的运输连接管理
      • 5.9 TCP报文段的首部格式
      • 第六章 应用层
      • 6.1 应用层概述
      • 6.2 客户—服务器方式和对等方式
      • 6.3 动态主机配置协议DHCP
      • 6.4 域名系统DNS
      • 6.5 文件传送协议FTP
      • 6.6 电子邮件
      • 6.7 万维网WWW
    • 计算机网络微课堂-实验手册

  • Git

  • 数据库

  • 计算机小知识

  • 编译原理

  • 名人堂

  • 计算机基础
  • 计算机网络
  • 计算机网络微课堂-B站教书匠
2023-11-16
目录

3.10 以太网交换机的生成树协议STP

# 3.10 以太网交换机的生成树协议STP

我们介绍以太网交换机生成数协议的基本概念,请大家思考一下,应该如何提高以太网的可靠性呢?例如如图所示的以太网,由三台交换机互联而成,每个交换机上都连接有一些主机,为了简单起见,我们只画出了每个交换机上连接的一台主机,如果交换机A与B之间的链路出现了故障,则交换机B上连接的所有主机,既无法与交换机A上连接的所有主机进行通信,也无法与交换机C上连接的所有主机进行通信。

如果交换机A与交换机B和C之间的链路都出现了故障,则原来的以太网变成了三个独立的较小的以太网,他们之间无法通信,

相信很多同学已经想到了,可以通过添加冗余链路的方法来提高以太网的可靠性。

‍

‍

‍

例如在本例中,我们给交换机B和C之间添加一条冗余链路后,即使交换机A和B之间的链路出现了故障,整个网络还是联通的,但是冗余链路也会带来负面效应,那就是形成网络环路。如图所示,网络环路会带来一些问题。例如广播风暴,我们来举例说明,假设主机H1发送了一个广播帧,交换机B收到该帧号,将其从自己的其他所有接口转发出去,交换机A收到交换机B转发来的该帧后,将其从自己的其他所有接口转发出去。同样的交换机C收到交换机B转发来的该证号,将其从自己的其他所有接口转发出去,交换机C收到交换机A转发来的该帧后,将其从自己的其他所有接口转发出去。
同样的交换机A收到交换机C转发来的该帧后,将其从自己的其他所有接口转发出去,
交换机B收到交换机C转发来的该帧后,将其从自己的其他所有接口转发出去。
同样的交换机B收到交换机A转发来的盖章后,将其从自己的其他所有接口转发出去,

很显然该广播帧将在各交换机之间反复转发,分别按顺时针和逆时针方向同时兜圈,这就是所谓的广播风暴,广播风暴会大量消耗网络资源,使得网络无法正常转发其他数据帧,也会使主机反复收到广播帧,大量消耗主机资源,还会使交换机的帧交换表震荡(漂移),如图所示,这是交换机B的帧交换表,这是其各接口的接口号。为了简单起见,假设各主机的名称也可作为其MAC地址,当交换机B收到主机H1发送的广播帧后进行登记工作,将帧的源MAC地址H1和帧进入交换机B的接口号1登记到帧交换表中,这条记录是正确的。

当交换机B再次收到交换机C转发来的该广播帧后进行登记工作,将帧的源MAC地址H1和帧进入交换机B的接口号2,这条错误记录登记到帧交换表中,并删除原先正确的记录。

当交换机B再次收到交换机A转发来的该广播帧号进行登记工作,将帧的源MAC地址H1和帧进入交换机B的接口号3,这条错误记录登记到帧交换表中,并删除原先错误的记录。

当交换机B再次收到交换机C转发来的该广播帧后进行登记工作,将帧的源MAC地址H1和帧进入交换机B的接口号2,这条错误记录登记到帧交换表中,并删除原先错误的记录。很显然有关MAC地址H1的记录将在这两个错误记录之间反复震荡,

‍

‍


‍

为了可以在增加冗余链路来提高网络可靠性的同时,又避免网络环路带来的各种问题。以太网交换机使用生成树协议,其英文缩写词为STP不论交换机之间采用怎样的物理连接,使用生成树协议的交换机都能够自动计算,并构建出一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树形的,也就是没有逻辑环路。我们来举例说明,如图所示,为了提高可靠性,5台交换机之间进行了冗余连接,冗余链路不止一条,网络环路也不止一个。为了简单起见,各交换机上连接的主机没有画出。我们用绿色的小圆圈表示交换机的接口状态为正常状态,用橙色的小方块表示交换机的接口状态为阻塞状态,用红色的叉表示出现了故障,如果各交换机的各接口都处于正常状态,则会存在多个网络环路。实际上各交换机之间按照生成树协议中规定的生成树算法,交互一些参数后,就可以判断出自己应该阻塞自己的哪些接口。例如图中所示,这样就会形成一个逻辑上没有环路的网络,如图所示。

‍

‍

当然这个逻辑上没有环路的网络,一定要确保联通整个网络,否则就没有意义了。当首次连接交换机或网络物理拓扑发生变化时,这有可能是人为改变造成的,也有可能是出现故障造成的,交换机都将进行生成树的重新计算。例如假设这段链路出现了故障,相关交换机检测到该故障后,重新计算生成树,决定将自己之前阻塞的接口恢复为正常状态,这样就会形成一个新的逻辑上没有环路的网络。需要说明的是生成树协议所使用的生成树算法,以超出本系列课程的教学大纲,对生成树算法感兴趣的同学,可以参看我们的另一个系列课程,计算机网络简明教程和仿真实验。

‍

‍

‍

在GitHub上编辑此页 (opens new window)
上次更新: 2023/12/6 14:23:41
3.9 以太网交换机自学习和转发帧的流程
3.11 虚拟局域网VLAN

← 3.9 以太网交换机自学习和转发帧的流程 3.11 虚拟局域网VLAN→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式