数据链路层:虚拟局域网(VLAN)

news2024/12/23 15:51:42

数据链路层:虚拟局域网(VLAN)

笔记来源:
湖科大教书匠:虚拟局域网(VLAN)概述
湖科大教书匠:虚拟局域网(VLAN)实现机制

声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考

1.1 虚拟局域网(VLAN)概述

使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域。
巨大广播域带来许多问题:广播风暴、难以维护、安全问题
下图为广播风暴的示例,广播风暴会浪费网络资源和各主机CPU资源

防止广播风暴,我们需要将巨大广播域分割为多个小广播域
分割广播域的方法有:路由器、VLAN
路由器默认情况下不对广播数据包进行转发,这个特定起到隔离广播域的作用,但路由器成本较高,局域网内全部使用路由器来隔离广播域不太现实
VLAN是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
同一个VLAN中才能收到该VLAN中某主机的广播,而其他VLAN中的主机无法收到该广播

1.2 虚拟局域网(VLAN)的实现机制

实现机制本质上就是给发送来的帧打标签,同一个标签属于同一个VLAN

实现流程:以太网V2的MAC帧 -> 交换机某端口 -> 插入VLAN标记后的802.1Q帧(简称为打标签) -> 根据VLAN标记找到交换机的目标端口 -> 交换机去除VLAN标记(简称为去标签) -> 目的主机

VLAN标识符VID唯一标志了以太网帧属于哪一个VLAN


交换机的端口类型有三种:Access、Trun、Hybrid
华为交换机端口缺省VLAN ID称为Port VLAN ID,简记PVID,交换机的每一个端口有且仅有一个PVID

Access端口一般用于连接用户计算机,Access端口只能属于一个VLAN

Access端口接收处理方法:
一般只接收未打标签的普通以太网帧,并给其打标签。

Access端口发送处理方法:
若慎中的VID等于端口PVD,则去掉标签并转发;否则丢弃。

下图中交换机端口1,2,3,4都为Access端口

Trunk端口一般用于交换机之间或交换机与路由器之间的互联,Trunk端口可以属于多个VLAN(可接收和发送多个VLAN的帧)

Trunk端口接收处理方法:
接收已打标签的懒:
接收未打标签的顿,根据端口的PVID值给帧打标签

Trunk端口发送处理方法:
帧中VID等于端口PVID,去掉标签再转发:
顿中VID不等于端口PVID,直接转发

下图中端口5为Trunk端口
Trunk端口发送处理方法:对VID=PVID的帧,进行去标签转发

下图中端口5为Trunk端口
Trunk端口发送处理方法:对VID ≠ \neq =PVID的帧,直接转发


Hybrids端口既可用于交换机之间或交换机与路由器之间的互连(同Trunk端口),也可用于交换机与用户计算机之间的互连(同Access端口)

Hybrid端口接收处理方法:
接收已打标签的慎:
接收未打标签的幀,根据端口的PV1D值给慎打标签

Hybrid端口发送处理方法:
查看数据慎中的VD是否在端口的“去标签”列表中:
如果存在,则去掉标签再转发:
如果不存在,则直接转发。

下图中端口1,2,3均为Hybrid类型端口
(A->C)帧从端口1进入,因该端口PVID=10,故对该帧打标签VID=10,端口3中的去标签列表中有VID=10,故对该帧进行去标签转发,最终到主机C

(A->C)帧从端口1进入,因该端口PVID=10,故对该帧打标签VID=10,端口2的去标签列表中没有VID=10,故对该帧直接转发,主机B无法识别带有VLAN标记的帧(802.1Q帧),直接丢弃该帧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/609619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mybatis源码学习之mybatis执行流程分析

Mybatis执行流程分析 mybatis全局配置文件 mybatis全局配置文件中涉及的标签如下图所示 配置文件解析 public static void main(String[] args) throws IOException {// 读取配置文件InputStream is Resources.getResourceAsStream("org/apache/ibatis/builder/Mappe…

K8S部署Hadoop集群(七)

Hadoop是Apache软件基金会下一个开源分布式计算平台,以HDFS(Hadoop Distributed File System)、MapReduce(Hadoop2.0加入了YARN,Yarn是资源调度框架,能够细粒度的管理和调度任务,还能够支持其他…

UnityVR--EventManager--事件中心3

前期准备 接上一篇,来实现事件中心的管理:使用定义好的事件中心管理器EventManager,实现鼠标拖拽、角色移动、发射子弹等几个功能。 1. InputSystem的准备:需要设置输入设备并关联事件,比如监听键盘输入"WASD&quo…

自制操作系统第三站

修改haribote.nas,界面显示 ; haribote.nas ; TAB4ORG 0xc200MOV AL, 0x13MOV AH, 0x00INT 0x10fin:HLTJMP fin编译运行

MySQL存储引擎概述

前言:MySQL语句执行流程为:SQL语句→查询缓存→解析器→优化器→执行器(执行器会调用执行引擎API);人们把“连接管理、查询缓存、语法解析、查询优化”这些并不涉及真实数据存储的功能划分为MySQL server的功能&#x…

TiDB亿级数据亚秒响应查询整体架构

目录 1 TiDB的优势2 TiDB的组件2.1 TiDB Server2.2 PD (Placement Driver) Server2.3 TiKV Server2.4 TiSpark2.5 TiFlash 3 TiKV整体架构3.1 Region分裂与合并3.2 Region调度3.3 分布式事务 4 高可用架构4.1 TiDB高可用4.2 PD高可用4.3 TiKV高可用 5 应用场景5.1 MySQL分片与合…

在地质区划图上绘制伪震中

import numpy as np import matplotlib.pyplot as plt #matplotlib inline from matplotlib import image from matplotlib import pyplot as plt import cv2 # 解析文件,按空格分割字段,得到一个浮点数字类型的矩阵 def loadDataSet(fileName): dataMa…

chatgpt赋能python:Python办公自动化:优化SEO工作效率的关键

Python办公自动化:优化SEO工作效率的关键 随着互联网的不断发展,SEO已经成为了许多企业在网络中展示自己的必备手段。然而,SEO工作需要大量重复性、繁琐的操作,如关键词排名、竞争对手分析、数据收集等,这些工作占据了…

一文说透ES6中的箭头函数表达式

一 总述 ​箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或new. target。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。 二 详细 1 1个或多个参数 (param1, par…

【数据结构每日一题】队列——用栈实现队列

[数据结构习题]队列——用栈实现队列 👉知识点导航💎:【数据结构】栈和队列 👉[王道数据结构]习题导航💎: p a g e 85.3 page85.3 page85.3 本节为栈和队列的综合练习题 题目描述: &#x1f…

【AI绘图】五、stable diffussion模型的介绍与使用

1. 下载模型 主流模型下载网站: 1)Hugging face 是一个专注于构建、训练和部署先进开源机器学习模型的网站: https://huggingface.co/ 2)Civitai 是一个专为 Stable Diffusion AI 艺术模型设计的网站: https://civi…

Python数据分析script必备知识(四)

Python数据分析script必备知识(四) 1.保留最近N天的日志 1.批量创建多个文件 首先,为演示方便,在指定文件夹目录下用下面代码批量新建多个log文件 """ 批量创建多个文件 """ import os file_path = os.path.join(os.getcwd(),LOG) # 如果不…

「详细教程」使用git将本地项目上传至Github仓库(MacOS为例)

前言:最近需要将自己的代码开源至自己的Github仓库,然而发现并没有一键上传文件夹的选项,于是参考现有教程进行了实践,成功✌️以下是详细步骤。 Tips:在文章录用之后,小伙伴们可以选择将自己的代码开源&am…

QMessageBox信息模态对话框详细使用教程,对象创建栈和指针类型,对话框的风格样式设置,不要浪费实时间自己封装了,图文并茂,看图说话。

QMessageBox 界面设计图展示效果【1】PC端使用QMessageBoxinformation (常规信息)warning (警告消息)critical (错误信息)about (关于信息,无按钮)question (问题信息?&a…

Android开发 LogDog (日志狗)V2.0.0

目录 一、简介 二、使用推荐 1、初始化LogDog 2、运行中如何更改初始化时的配置? 三、更改 四、新功能 1、Log过滤 2、自定义打印 3、提供占位符式打印 一、简介 LogDog V1.0 版本https://blog.csdn.net/Ym_quiet/article/details/130453232?spm1001.2014…

javascript基础二十六:JavaScript中如何实现函数缓存?有哪些应用场景?

一、是什么 函数缓存,就是将函数运算过的结果进行缓存 本质上就是用空间(缓存存储)换时间(计算过程) 常用于缓存数据计算结果和缓存对象 const add (a,b) > ab; const calc memoize(add); // 函数缓存 calc(1…

Linux邮件发送教程:深入了解mail命令

前言 大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第59篇文章。 专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象&am…

Java进行公众号开发的常见使用场景及解决方案

Java进行公众号开发的常见使用场景解决方案 文章简介 本文总结了本人在开发过程中遇到的有关于微信开发的诸多常见功能,这些问题在网上找都是零散的回答,所以再此总结一下,方便后续开发。如果有错误之处,还望批评指出&#xff0…

使用Kaggle GPU资源免费体验Stable Diffusion开源项目

使用Kaggle GPU资源免费体验Stable Diffusion开源项目 前言相关介绍Stable Diffusion Kaggle开源项目编辑并复制项目运行项目打开网址,即可体验 参考 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容,可点击进入Y…

javascript基础二十五:说说你对函数式编程的理解?优缺点?

一、是什么 函数式编程是一种"编程范式"(programming paradigm),一种编写程序的方法论 主要的编程范式有三种:命令式编程,声明式编程和函数式编程 相比命令式编程,函数式编程更加强调程序执行…