7 交换机与VLAN
1、拓扑结构是怎么形成的?
举例:办公楼里的每一个楼层可能会有几百台机器,显然需要N个交换机。
交换机之间连接起来,就形成一个稍微复杂的拓扑结构
2、两台交换机的情形
1.两台交换机连接着三个局域网,每个局域网上都有多台机器。
2.如果机器1 只知道机器 4 的 IP 地址,当它想要访问机器 4,把包发出去的时候,它必须要知道机器 4 的 MAC 地址。
3.于是机器 1 发起广播,机器 2 收到这个广播,但是这不是找它的,所以没它什么事。
4.交换机 A 一开始是不知道任何拓扑信息的,在它收到这个广播后,采取的策略是,除了广播包来的方向外,它还要转发给其他所有的网口。于是机器 3 也收到广播信息了,但是这和它也没什么关系。
5.当然,交换机 B 也是能够收到广播信息的,但是这时候它也是不知道任何拓扑信息的,因而也是进行广播的策略,将包转发到局域网三。
6.这个时候,机器 4 和机器 5 都收到了广播信息。机器 4 主动响应说,这是找我的,这是我的 MAC 地址。于是一个 ARP 请求就成功完成了。
在上面的过程中,交换机 A 和交换机 B 都是能够学习到这样的信息:
1.机器 1 是在左边这个网口的。当了解到这些拓扑信息之后,情况就好转起来。
2.当机器 2 要访问机器 1 的时候,机器 2 并不知道机器 1 的MAC 地址,所以机器 2 会发起一个 ARP 请求。
3.这个广播消息会到达机器 1,也同时会到达交换机 A。这个时候交换机 A 已经知道机器 1 是不可能在右边的网口的,所以这个广播信息就不会广播到局域网二和局域网三.
4.当机器 3 要访问机器 1 的时候,也需要发起一个广播的 ARP 请求。这个时候交换机 A 和交换机 B 都能够收到这个广播请求。
5.交换机 A 当然知道主机 A 是在左边这个网口的,所以会把广播消息转发到局域网一。
6.同时,交换机 B 收到这个广播消息之后,由于它知道机器 1 是不在右边这个网口的,所以不会将消息广播到局域网三。
3、如何解决常见的环路问题?
交换机数目越来越多,拓扑结构越来越复杂,网线越来越多,就会出现环路问题。
出现了环路会有什么结果呢?
1.我们来想象一下机器 1 访问机器 2 的过程。一开始,机器 1 并不知道机器 2 的 MAC 地址,所以它需要发起一个 ARP 的广播。广播到达机器 2,机器 2 会把 MAC 地址返回来,看起来没有这两个交换机什么事情。
2.但是问题来了,这两个交换机还是都能够收到广播包的。交换机 A 一开始是不知道机器 2 在哪个局域网的,所以它会把广播消息放到局域网二,在局域网二广播的时候,交换机 B 右边这个网口也是能够收到广播消息的。
交换机 B 会将这个广播息信息发送到局域网一。局域网一的这个广播消息,又会到达交换机 A 左边的这个接口。交换机 A 这个时候还是不知道机器 2 在哪个局域网,于是将广播包又转发到局域网二。左转左转左转,好像是个圈哦。
3.可能有人会说,当两台交换机都能够逐渐学习到拓扑结构之后,是不是就可以了?
4.别想了,压根儿学不会的。机器 1 的广播包到达交换机 A 和交换机 B 的时候,本来两个交换机都学会了机器 1 是在局域网一的,但是当交换机 A 将包广播到局域网二之后,交换机 B 右边的网口收到了来自交换机 A 的广播包。根据学习机制,这彻底损坏了交换机 B 的三观,刚才机器 1 还在左边的网口呢,怎么
又出现在右边的网口呢?哦,那肯定是机器 1 换位置了,于是就误会了,交换机 B 就学会了,机器 1 是从右边这个网口来的,把刚才学习的那一条清理掉。同理,交换机 A 右边的网口,也能收到交换机 B 转发过来的广播包,同样也误会了,于是也学会了,机器 1 从右边的网口来,不是从左边的网口来。
5.然而当广播包从左边的局域网一广播的时候,两个交换机再次刷新三观,原来机器 1 是在左边的,过一
会儿,又发现不对,是在右边的,过一会,又发现不对,是在左边的。
6.这还是一个包转来转去,每台机器都会发广播包,交换机转发也会复制广播包,当广播包越来越多的时
候,按照上一节讲过一个共享道路的算法,也就是路会越来越堵,最后谁也别想走。
STP 协议
1.在数据结构中,有一个方法叫作最小生成树。有环的我们常称为图。将图中的环破了,就生成了树。在计算机网络中,生成树的算法叫作STP,全称Spanning Tree Protocol。
STP 协议比较复杂,一开始很难看懂,但是其实这是一场血雨腥风的武林比武或者华山论剑,最终决出五岳盟主的方式。
STP 协议里面有很多概念:
1.Root Bridge,也就是根交换机。这个比较容易理解,可以比喻为“掌门”交换机,是某棵树的老大,是掌门,最大的大哥。
2.Designated Bridges,有的翻译为指定交换机。这个比较难理解,可以想像成一个“小弟”,对于树
来说,就是一棵树的树枝。所谓“指定”的意思是,我拜谁做大哥,其他交换机通过这个交换机到达
根交换机,也就相当于拜他做了大哥。这里注意是树枝,不是叶子,因为叶子往往是主机。
3.Bridge Protocol Data Units (BPDU) ,网桥协议数据单元。可以比喻为“相互比较实力”的协
议。行走江湖,比的就是武功,拼的就是实力。当两个交换机碰见的时候,也就是相连的时候,就需
要互相比一比内力了。BPDU 只有掌门能发,已经隶属于某个掌门的交换机只能传达掌门的指示。
4.Priority Vector,优先级向量。可以比喻为实力 (值越小越牛)。实力是啥?就是一组 ID 数目,
[Root Bridge ID, Root Path Cost, Bridge ID, and Port ID]。为什么这样设计呢?这是因为要看怎么
来比实力。先看 Root Bridge ID。拿出老大的 ID 看看,发现掌门一样,那就是师兄弟;再比 RootPath Cost,也即我距离我的老大的距离,也就是拿和掌门关系比,看同一个门派内谁和老大关系铁;最后比 Bridge ID,比我自己的 ID,拿自己的本事比。
其实到这里,大概的工作流程心中也有数了
4、如何解决广播问题和安全问题?
交换机多了,就算交换机比 Hub 智能一些,但是还是难免有广播的问题。
如何解决?
一个是物理隔离:个部门有单独的交换机,配置单独的子网,这样部门之间的沟通就需要路由器了。
另外一种方式是虚拟隔离,就是用我们常说的VLAN,或者叫虚拟局域网。
相关文章:
7 交换机与VLAN
1、拓扑结构是怎么形成的? 举例:办公楼里的每一个楼层可能会有几百台机器,显然需要N个交换机。 交换机之间连接起来,就形成一个稍微复杂的拓扑结构2、两台交换机的情形 1.两台交换机连接着三个局域网,每个局域网上都…...

C++指针笔记
一.定义 是什么? 指针就是地址,相当于门牌号。通过 0x0000也可以拿到该地址里的数据, 可是如果每创建一个变量都要去记住地址编号不太方便我们使用数据,所以才有变量。作用? 通过指针(地址)间接访问内存。内存的编号…...
vue中app.use()做了什么
为什么要app.use(参数) 注册组件,且注册的组件全局可用,或在vue原型上添加内容。 use参数需要什么类型的?vue规定:参数要么是对象形式,且必须有install这个方法属性,或者参数为函数。 另外:注…...

【网安AIGC专题11.1】论文12:理解和解释代码,GPT-3大型语言模型学生创建的代码解释比较+错误代码的解释(是否可以发现并改正)
Comparing Code Explanations Created by Students and Large Language Models 写在最前面总结思考 背景介绍编程教育—代码理解和解释技能培养编程教育—解决方案研究问题研究结果 相关工作Code ComprehensionPedagogical Benifis of code explanationLarge Language Models i…...

【GEE】4、 Google 地球引擎中的数据导入和导出
1简介 在本模块中,我们将讨论以下概念: 如何将您自己的数据集引入 GEE。如何将来自遥感数据的值与您自己的数据相关联。如何从 GEE 导出特征。 2背景 了解动物对环境的反应对于了解如何管理这些物种至关重要。虽然动物被迫做出选择以满足其基本需求&am…...

【C++】特殊类设计+类型转换+IO流
🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风…...
JAVA整理学习实例(一)面向对象
JAVA整理学习实例(一)面向对象 注:整理一下之前写的东西,然后在修修补补,水平有限,有错误的请指正。 前言 基础部分的面试大部份是理论和一些语法细节,如果平时没有关注,在面试或者做…...

QT 实现解密m3u8文件
文章目录 概要如何解密M3U8文件呢实现思路和代码序列图网络请求解密 结论 概要 视频文件很多已M3U8文件格式来提供,先复习下什么是M3U8文件!用QT的 mutimedia框架来播放视频时,有的视频加载慢,有的视频加载快,为啥&am…...

论文阅读—— BiFormer(cvpr2023)
论文:https://arxiv.org/abs/2303.08810 github:GitHub - rayleizhu/BiFormer: [CVPR 2023] Official code release of our paper "BiFormer: Vision Transformer with Bi-Level Routing Attention" 一、介绍 1、要解决的问题:t…...

理解 fopen的 rwa r+w+a+ 参数含义
tags: C categories: C 理解 一图胜千言 我愿称之为最强 c - Difference between r and w in fopen() - Stack Overflow; 需要注意里面的a和 a, 区别在于 a 不可以读而 a可以读. c - Difference between r and w in fopen() - Stack Overflow; ModeReadWriteCreate New Fil…...

【强化学习】17 ——DDPG(Deep Deterministic Policy Gradient)
文章目录 前言DDPG特点 随机策略与确定性策略DDPG:深度确定性策略梯度伪代码代码实践 前言 之前的章节介绍了基于策略梯度的算法 REINFORCE、Actor-Critic 以及两个改进算法——TRPO 和 PPO。这类算法有一个共同的特点:它们都是在线策略算法,…...

驱动开发11-2 编写SPI驱动程序-点亮数码管
驱动程序 #include <linux/init.h> #include <linux/module.h> #include <linux/spi/spi.h>int m74hc595_probe(struct spi_device *spi) {printk("%s:%d\n",__FILE__,__LINE__);char buf[]{0XF,0X6D};spi_write(spi,buf,sizeof(buf));return 0; …...

Java使用pdfbox进行pdf和图片之间的转换
简介 pdfbox是Apache开源的一个项目,支持pdf文档操作功能。 官网地址: Apache PDFBox | A Java PDF Library 支持的功能如下图.引入依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox-app</artifactId><version>…...

机器学习中的关键组件
机器学习中的关键组件 数据 每个数据集由一个个样本组成,大多时候,它们遵循独立同分布。样本有时也叫作数据点或数据实例,通常每个样本由一组称为特征或协变量的属性组成。机器学习会根据这些属性进行预测,预测得到的称为标签或…...

【JVM】JDBC案例打破双亲委派机制
🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 JVM 打破双亲委派机制(JDBC案例…...

每天五分钟计算机视觉:池化层的反向传播
本文重点 卷积神经网络(Convolutional Neural Network,CNN)作为一种强大的深度学习模型,在计算机视觉任务中取得了巨大成功。其中,池化层(Pooling Layer)在卷积层之后起到了信息压缩和特征提取的作用。然而,池化层的反向传播一直以来都是一个相对复杂和深奥的问题。本…...

Docker的安装、基础命令与项目部署
文章目录 前言一、docker安装与MySQL部署1.Linux环境下docker的安装(1)基于CentOS7(2)基于Ubuntu 二、docker基础1.常见命令(1)快速创建一个mysql容器(MySQL得一键安装)。࿰…...

Nodejs和npm的使用方法和教程
Nodejs简介 Node.js 是一个开源和跨平台的 JavaScript 运行时环境。 它几乎是任何类型项目的流行工具! ( 运行环境,是不是很熟悉,对。就是 java JRE,Java 运行时环境) Node.js 在浏览器之外运行 V8 Java…...

机器学习---支持向量机的初步理解
1. SVM的经典解释 改编自支持向量机解释得很好 |字节大小生物学 (bytesizebio.net) 话说,在遥远的从前,有一只贪玩爱搞破坏的妖怪阿布劫持了善良美丽的女主小美,智勇双全 的男主大壮挺身而出,大壮跟随阿布来到了妖怪的住处&…...

【unity实战】Unity实现2D人物双击疾跑
最终效果 前言 我们要实现的功能是双击疾跑,当玩家快速地按下同一个移动键两次时能进入跑步状态 我假设快速按下的定义为0.2秒内,按下同一按键两次 简单的分析一下需求,实现它的关键在于获得按键按下的时间,我们需要知道第一次…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...
土建施工员考试:建筑施工技术重点知识有哪些?
《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...