热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

浅谈STP中的那些事儿

写在开头以下STP内容均是笔者自己的经验记录,难免会有疏漏与错误。仅供参考,当然,日后经验丰富后我也会过来修正不足。什么是STP&#x

写在开头

以下STP内容均是笔者自己的经验记录,难免会有疏漏与错误。仅供参考,当然,日后经验丰富后我也会过来修正不足。


什么是STP?

STP是一种由交换机运行的,用来解决交换机网络中环路问题的数据链路层协议。


为什么会有环路?

我的理解是,在二层网络中,某个交换机上面有多条路径可以到达根桥(暂且理解为需要转发的目的地址),这时候就会发生我们不希望看到的现象。

1:地址翻摆

我们都知道二层交换机里面的MAC地址表记录的是,进入某个端口的源MAC地址和端口的映射,按需来进行,泛洪、转发、丢弃的二层操作。

那么,当某个交换机有环路时,假如发送的是广播帧,那么源MAC至少有两条或者以上路径转发,(假设分别是port1和porT2)假设这台电脑是PC1,MAC是MAC1,

那么有一条路径的里面的MAC表里的记录是MAC1-port1,紧接着另一条从port2进入,那么MAC地址表又会被刷新为:MAC1-port2

多条路径,顺时针和逆时针不停的转发,MAC地址表不断翻摆震荡,地址翻摆会大量消耗交换机处理资源,导致交换机瘫痪。

2:广播风暴

PC1的帧由于顺时针逆时针高速旋转,局域网的每台交换机不停的收到PC1帧的拷贝,不停的泛洪,就产生了广播风暴。计算机收到广播帧后,都会送给网络层处理,大量广播帧袭来,导致计算机瘫痪

3:多帧复制

由于多转发路径的存在,且数据帧按MAC地址表,可能会出现多点转发,即源地址发出的数据帧可能会被多个交换机转发导致目的计算机收到了多个PC1帧,这样被称为多帧复制。


环路的优点和缺点

环路的存在,会导致上述三个问题,地址翻摆,广播风暴,多帧复制,这些问题对交换机或者网络资源来说都是致命的。但是,环路却能提高网络的连接可靠性。

因为又环路的存在,即使两台交换机之间的链路因为故障断掉了,整个网络会依然保持连通性,这是无环网络无法做到的。

 


生成树里面的一些专业术语

桥:早期交换机性能原因,可能只有两个转发端口,那时的交换机被称为“网桥”,现在这个术语一直沿用至今。

桥MAC:一个交换机(桥)有多个转发端口,通常吧编号最小的那个端口MAC作为整个交换机的MAC。

桥ID(BID):2字节优先级+6字节(交换机MAC地址),可以人为设定值,默认32768.

端口ID(PID):不同厂商定义不同,组成结构是:端口优先级+端口编号。


局域网可以不需要生成树吗?

当然需要,很多人说,我们公司的网络架构本身就是无环的网络架构,根本不用担心什么环路问题。

其实不然,任意简单的一个小交换机环路会导致你整个局域网震荡,这是企业中绝对不允许出现的,也许别人无心插环,但是会给网络管理者带来大量不便。所以,我们从合规和安全来说,很有必要进行生成树的配置。


生成树的工作过程

我们首先要知道的是,为什么要有生成树,最终结果是什么样?

粗略来进,交换机的二层接口,通过发送BPDU(网桥协议数据单元)报文,根据优先级等,最后计算出一颗无环的网络生成树

,并阻塞了一些端口进行备用。当有故障链路时,另一条链路可以快速进入转发状态,增强网络稳定性。


工作过程

1:选举根桥

2:选举根端口

3:选举指定端口

4:阻塞剩余端口

注:选举时,其实都是不同交换机的不同端口或者同一交换机的不同端口的竞选,会通过一些人为干预,或者自然选举,从而完美的产生空闲端口,即进选剩下的端口,生成树协议则会吧这些剩下的端口系统的阻塞,从而形成无环的网络。


常会用的一种保证网络稳定性的命令

 

 

 


推荐阅读
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • GAMETECH腾讯云游戏行业技术沙龙成都站圆满落幕
    11月13日,由腾讯云主办、游戏茶馆协办的2020年首场GAME-TECH腾讯云游戏行业技术沙龙在成都圆满落幕。本次沙龙邀请了腾讯云游戏行业解决方案总监宋永周、腾讯云游戏行业高级解决方案架构师曾梓恩、腾讯云游戏行业高级产品架构师郑晓曦、腾讯云游戏行业高级解决方案架构师温球良和天美L1(王者荣耀)服务器技术副总监杨光,为参会同行们带来了干货满满的技术建议。本文介绍了腾讯云游戏云的优势和为不同游戏研运场景提供的服务。腾讯云在中国游戏云服务市场领跑,成为众多游戏开发者的合作伙伴。 ... [详细]
author-avatar
岁月掌心_447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有