热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

1、如何提高以太网的可靠性?若交换机A与交换机B之间的链路故障若交换机A与交换机B和交换机C之间的链路都出现故障则原来的以太网,变成了三个独立的较小




1、如何提高以太网的可靠性?

若交换机 A 与交换机 B 之间的链路故障

image-20221202001452832



若交换机 A 与交换机 B 和 交换机 C 之间的链路都出现故障

则原来的以太网,变成了三个独立的较小的以太网,它们之间无法通行

image-20221202001608118




1.1、冗余链路提高可靠性

添加



















\color{red}冗余链路


可以提高以太网的可靠性


  • 例如:给交换机 BC 之间添加一条冗余链路后
    • 即使若交换机 A 与交换机 B 之间的链路出现故障,整个网络还是连通的

image-20221202002113040


1.2、网络环路问题

但是冗余链路也会带来负面效应-----形成



















\color{red}网络环路


image-20221203220302001




1.2.1、广播风暴







广













\color{red}广播风暴


广


  • 大量消耗网络资源,使得网络无法正常转发其他数据帧

假设主机 H1 发送一个广播帧(假设都知道了对方的 MAC 地址)

交换机 B 收到该帧后,将其从自己的其他所有接口转发出去

交换机 A 收到交换机 B 转发来的该帧后,将其从自己的其他所有接口转发出去

交换机 C 收到交换机 B 转发来的该帧后,将其从自己的其他所有接口转发出去

交换机 C 收到交换机 A 转发来的该帧后,将其从自己的其他所有接口转发出去

交换机 A 收到交换机 C 转发来的该帧后,将其从自己的其他所有接口转发出去

交换机 B 收到交换机 C 转发来的该帧后,将其从自己的其他所有接口转发出去

交换机 B 收到交换机 A 转发来的该帧后,将其从自己的其他所有接口转发出去

image-20221203220836648

显然,该广播帧将在各交换机之间反复转发,分别按顺时针和逆时针方向同时兜圈

这就是所谓的广播风暴




1.2.2、广重复广播帧




























广










\color{red}主机收到重复的广播帧


广


  • 大量消耗主机资源



1.2.3、帧交换表震荡





































(








)




\color{red}交换机的帧交换表震荡(漂移)


()

当交换机 B 收到主机 H1 发送的广播帧后,进行登记工作


  • 将帧的源 MAC 地址 H1 和帧进入交换机 B 的接口号




    1



    1


    1
    登记到交换表中
  • 这条记录时正确的

image-20221203221743133

当交换机 B 再次收到交换机 C 转发来的该广播帧后,进行登记工作


  • 将帧的源 MAC 地址 H1 和帧进入交换机 B 的接口号




    2



    2


    2
    (这条错误记录) 登记到交换表中

    并删除原先正确的记录

  • (源 MAC 地址还是主机 H1MAC 地址,




    B





    >


    A





    >


    C





    >


    B



    B - > A - > C - > B


    B>A>C>B
    )

image-20221203222119423

当交换机 B 再次收到交换机 A 转发来的该广播帧后,进行登记工作


  • 将帧的源 MAC 地址 H1 和帧进入交换机 B 的接口号




    3



    3


    3
    (这条错误记录) 登记到交换表中

    并删除原先错误的记录

  • (源 MAC 地址还是主机 H1MAC 地址,




    B





    >


    A





    >


    C





    >


    A





    >


    B



    B - > A - > C - > A -> B


    B>A>C>A>B
    )

image-20221203222448030



很显然,有关 MAC 地址 H1 的记录将在这两个错误记录之间反复震荡


2、生成树协议 STP
  • 以太网交换机使用




















    S


    T


    P




    \color{red}生成树协议STP


    STP
    (Spanning Tree Protocol),可以在增加冗余链路来提高网络可靠性的同时又














































    \color{red}避免网络环路带来的各种问题


  • 不论交换机之间采用怎样的物理连接,交换机都能够
































































    \color{red}自动计算并构建一个逻辑上没有环路的网络


    ,其逻辑拓扑结构必须是树型的(无逻辑环路);


例如:




5



5


5
台交换机之间进行了冗余连接,冗余链路不止一条,网络环路不止一个


  • 简单起见(各交换机上连接的主机没有画出)
  • 绿色(交换机的接口状态为正常状态)
  • 橙色(交换机的接口状态为阻塞状态)
  • 红色(交换机的接口状态为故障状态)

如果各交换机的各接口都处于正常状态,则会存在多个网络环路

实际上,各交换机之间按照生成树协议中规定的生成树算法,交互一些参数后,就可以判断出自己应该阻塞自己的哪些接口。

image-20221203223402325

这样就形成了在逻辑上没有环路的网络

最终生成的树型逻辑拓扑要































\color{red}确保连通整个网络


;



相关交换机检测到该故障后,重新计算生成树,决定将自己之前阻塞的接口恢复为正常状态

这样就会形成一个新的逻辑上没有环路的网络

image-20221203223749050

当首次连接交换机或网络































\color{red}物理拓扑发生变化


时(有可能是人为改变或故障),交换机都将进行































\color{red}生成树的重新计算





3、总结
  • 以太网交换机使用




















    S


    T


    P




    \color{red}生成树协议STP


    STP
    (Spanning Tree Protocol),可以在增加冗余链路来提高网络可靠性的同时又














































    \color{red}避免网络环路带来的各种问题


  • 不论交换机之间采用怎样的物理连接,交换机都能够
































































    \color{red}自动计算并构建一个逻辑上没有环路的网络


    ,其逻辑拓扑结构必须是树型的(无逻辑环路);

  • 最终生成的树型逻辑拓扑要































    \color{red}确保连通整个网络


    ;

  • 当首次连接交换机或网络































    \color{red}物理拓扑发生变化


    时(有可能是人为改变或故障),交换机都将进行































    \color{red}生成树的重新计算








推荐阅读
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • HashMap的扩容知识详解
    本文详细介绍了HashMap的扩容知识,包括扩容的概述、扩容条件以及1.7版本中的扩容方法。通过学习本文,读者可以全面了解HashMap的扩容机制,提升对HashMap的理解和应用能力。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了源码分析--ConcurrentHashMap与HashTable(JDK1.8)相关的知识,希望对你有一定的参考价值。  Concu ... [详细]
  • 查找给定字符串的所有不同回文子字符串原文:https://www ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Python15行代码实现免费发送手机短信,推送消息「建议收藏」
    Python15行代码实现免费发 ... [详细]
  • 1.为什么会有树?因为当有大量的输入数据时,链表的线性访问时间就显得略长了。而树结构,其大部分操作的运行时间平均为O(logN)。2.树 ... [详细]
author-avatar
哥哥很霸道_277
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有