【网络设备】交换机的概念、工作原理、功能以及以太网帧格式

news2024/11/26 19:19:05

个人主页:insist--个人主页​​​​​​

本文专栏:网络基础——带你走进网络世界

本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。

目录

一、认识交换机

二、交换机的主要功能

1、数据的转发

2、端口隔离

3、负载均衡和带宽控制

三、以太网帧格式

四、交换机的工作原理

1、接收数据帧

2、学习MAC地址

3、广播未知数据帧

4、记录MAC地址表

5、交换机实现单播通信


前言

在计算机网络中,交换机是较为常用的设备,本文将谈谈交换机的概念、主要功能、工作原理以及以太网帧格式。

6de4ceebba364630b97ef12d794c7af4.jpg


一、认识交换机

交换机(Switch)全名叫做以太网交换机。是一种较为常见的网络设备,它的作用是在计算机网络中交换数据。目前最常用的交换机就是以太网交换机,除此之外,还有电话语音交换机、光纤交换机等等。如下图就是交换机:

735b92297f724ed5957c3d808692c4a6.jpg


二、交换机的主要功能

交换机的主要功能包括以下几个方面:

1、数据的转发

交换机在接收到数据包后,会根据目标地址判断并将其转发到对应的端口,从而实现不同设备之间的通信。这种可以保证数据传输的高效性和稳定性

2、端口隔离

交换机具有端口隔离的功能,能够将不同用户或者不同网络之间的数据进行隔离,防止出现数据泄露和信息安全问题。值得注意的是采用端口隔离会浪费有限的VLAN资源

小知识:交换机还支持VLAN技术,通过划分VLAN,能够进一步加强网络的安全性和管理性。

3、负载均衡和带宽控制

当多台设备使用同一个交换机时,交换机可以实现负载均衡和带宽控制的功能。通过智能路由和流量控制,可以为不同设备提供不同的网络带宽和速度,从而达到更加高效的数据传输。


三、以太网帧格式

337a5956e15c4f5eb76a1a839585a758.png

802.3/802.2是以太网的最常见帧格式,它包含以下字段:

  1. 前导码:用于与接收设备同步的7字节字段。
  2. 帧起始定界符:这是一个特殊的字节,用于指示帧的开始。
  3. 目的地址:这是一个6字节的字段,用于标识帧的目标设备。
  4. 源地址:这也是一个6字节的字段,用于标识发送该帧的设备。
  5. 类别:这个字段用于表示上层协议的类型。
  6. 数据:这是帧的主要部分,包含实际传输的数据。
  7. 帧校验序列(FCS):这是一个包含32位循环冗余校验(CRC)的字段,用于验证数据是否在传输过程中出现损坏。

四、交换机的工作原理

交换机的工作流程主要包括以下几个步骤:

1、接收数据帧

当交换机接收到一个数据帧时,会先检查帧的目的MAC地址,然后根据目的MAC地址和自己的MAC地址表来判断应该将数据帧发送到哪个端口。

2、学习MAC地址

如果交换机的MAC地址表中没有对应的表项,它会将接收到的数据帧的源MAC地址和接收端口的映射关系添加到MAC地址表中

小知识:如果在老化时间内再次收到该MAC地址的数据帧,交换机会刷新对应的MAC地址和端口的映射关系。

3、广播未知数据帧

如果数据帧的目的MAC地址不在MAC地址表中,或者目的MAC地址为广播地址,交换机会泛洪该帧,将该帧发送到除接收端口以外的所有端口

名词解释:泛洪(Flooding)是交换机使用的一种数据流传递技术。当交换机从某个接口收到数据帧后,它会从除该接口之外的所有其他接口发送该数据帧。

4、记录MAC地址表

当交换机的MAC地址表中已经存在目的MAC地址的表项时,交换机会将接收到的数据帧的目的MAC地址和接收端口的映射关系记录到MAC地址表中。

5、交换机实现单播通信

当交换机需要发送数据给一个已知的目的MAC地址时,它会直接将数据帧发送到对应的端口。

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

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

相关文章

Android——基本控件(下)(十九)

1. 菜单:Menu 1.1 知识点 (1)掌握Android中菜单的使用; (2)掌握选项菜单(OptionsMenu)的使用; (3)掌握上下文菜单(ContextMenu&am…

STM32F4_SD卡

目录 前言 1. SDIO协议简介 2. SDIO命令及响应 3. SD卡的操作模式及切换 4. STM32的SDIO接口 5. SDIO结构体 6. SDIO相关寄存器 7. 实验程序 7.1 main.c 7.2 SDIO_Card.c 7.3 SDIO_Card.h 前言 在之前的单片机学习过程中,我们已经了解到了单片机系统都需…

SQL server开启变更数据捕获(CDC)

一、CDC简介 变更数据捕获(Change Data Capture ,简称 CDC):记录 SQL Server 表的插入、更新和删除操作。开启cdc的源表在插入、更新和删除操作时会插入数据到日志表中。cdc通过捕获进程将变更数据捕获到变更表中,通过…

java子类继承父类方法、或者接口中方法的javadoc注释

说明 详情可以阅读: https://docs.oracle.com/en/java/javase/19/docs/specs/javadoc/doc-comment-spec.html#method-comment-inheritance 子类继承父类、或者子类实现接口,在子类中为了避免重复写注释,可以在子类方法注释的主要描述部分、或…

基于GitHooks实现项目自动实时部署

目录 基于GitHooks实现项目自动部署 基于SVNJenkins发布项目 基于GitHooks实现项目自动部署 以上创建的所有任务,构建工作是基于在开发人员提交完代码到远程仓库完成,通知运维后,需要手动执行构建任务,这样就有些不太方便。我们…

智能优化算法一元函数优化

目录 一、问题描述 二、解决方法 1.模拟退火 1.1 算法思路 1.2 求解代码 1.3 计算结果 2.粒子群算法 2.1 算法思路 2.2 求解代码 2.3 计算结果 3.遗传算法 3.1 算法思路 3.2 求解代码 3.3 计算结果 一、问题描述 本篇文章所做的是分别用模拟退火、粒子群算法…

MySQL 8.1安装

1. 下载地址 https://dev.mysql.com/downloads/mysql/8.0.html 我这里没有采用installer安装,因为installer安装依赖visual studio,所以,我下载的是zip文件。 最终下载的版本如下: 2. 添加环境变量 解压,添加环境…

图的存储:邻接表法

1.邻接表的定义 不同于邻接矩阵(二维数组存储),邻接表采用的顺序链式存储实现的。 1.存储方式 顶点:使用结构体存储顶点,一个顶点包括顶点信息和指向第一条边或者弧的指针。用邻接表存储图:使用结构体存…

Spring Boot存在路径遍历漏洞CVE-2021-22118

文章目录 0.前言1.参考文档2.基础介绍1. 影响的版本2. **漏洞利用原理:** 3.解决方案3.1. 方案13.2. 方案23. 方案3 0.前言 背景:Spring Boot存在路径遍历漏洞。CVE-2021-22118: 官方 issue也有对此的记录,感兴趣可以看下 https://github.com…

Spring Boot集成MyBatis Plus

文章目录 一、前言二、步骤2.1、步骤 1:创建 Spring Boot 项目2.2、添加依赖2.2.1、基本的Spring和Spring MVC功能2.2.2、MySQL驱动依赖2.2.3、 MyBatis Plus 的依赖 2.3、配置数据库连接2.4、创建实体类2.5、创建 Mapper 接口2.6、编写 Service 层2.7、编写 Contro…

自动化运维工具——ansible安装及模块介绍

目录 一、ansible——自动化运维工具 1.1 Ansible 自动运维工具特点 1.2 Ansible 运维工具原理 二、安装ansible 三、ansible命令模块 3.1 command模块 3.2 shell模块 3.3 cron模块 3.4 user模块 3.5 group 模块 3.6 copy模块 3.7 file模块 3.8 ping模…

Mat类数据的读取

目录 1.Mat类矩阵的常用属性 2.Mat元素的读取 1.at方法读取Mat矩阵元素 at (int row,int col) 2.矩阵元素地址定位方式访问元素 3.Android jni demo 1.Mat类矩阵的常用属性 下面是一些Mat类的常用属性: rows: 返回Mat对象的行数。 cols: 返回Mat对象的列数。 …

linux top命令的参数解释

参考: https://blog.csdn.net/weixin_45465395/article/details/115728520?ydrefereraHR0cHM6Ly9jbi5iaW5nLmNvbS8%3D 上面的一列是总的CPU使用情况,id是指的总的空闲的 内容 含义 0.0%us 用户空间占用CPU百分比 0.0%sy 内核空间占用CPU百分比 0.0%ni…

gpt-3.5-turbo微调图形界面;Hugging Face完成2.35亿美元融资

🦉 AI新闻 🚀 人工智能初创公司Hugging Face完成2.35亿美元融资,估值达到45亿美元 摘要:总部位于纽约的人工智能初创公司Hugging Face完成了一轮2.35亿美元的融资,估值达到45亿美元。本轮融资的投资者包括谷歌、亚马…

网络编程 day 2

1、TCP的服务器 客户端的代码 #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr, "__%d__:", __LINE__); \perror(msg);\ }while(0)#define PORT 8888 //端口号&#xff0c;范围1024~49151 #define IP "192.168.114.64"…

匿名对象和一般对象的区别

1.格式的不同 一般对象的格式&#xff1a; ​ Object obj new Object(); ​ 匿名对象的格式&#xff1a; ​ new Object(); 2.作为参数传递机制的不同 2.1先看看一般对象的使用机制 执行步骤&#xff1a; 1.首先程序进入main()函数&#xff0c;执行Object obj&#xff0c;…

vscode打开项目太大,文件太多,无法找到自己的目录

我的技巧是直接在vscode的terminal里面 用find ./ -name *file_name*寻找我想要找的文件。 这样子出来的文件还带有路径&#xff0c;可以直接点过去。

Java 静态变量 NullPointerException !空指针异常

Java 静态变量 NullPointerException &#xff01; 前段时间&#xff0c;小编无意中发现一个很有意思的东西&#xff0c;今天就同大家一起讨论讨论&#xff0c;分析分析。 话不多说&#xff0c;直接上代码&#xff1a; // 定义一个 People 类, 就一个静态变量 name public…

lua的函数

1.一个示例实现列表的元素的求和 [root]# more funcAdd.lua function add(a)local sum 0for i 1,#a dosum sum a[i]endreturn sum enda {1,2,3,4,5,6}local sum add(a)print(sum)

Git结合Gitee的企业开发模拟

1.多人协作一&#xff08;共享分支&#xff09; 目标&#xff1a;master分支下file.txt文件新增text_1、text_2文本。 实现&#xff1a;由开发者1增加text_1&#xff0c;由开发者2增加text_2。这里我们可以使用两台电脑&#xff0c;或者使用云服务器来真实模拟两名开发者。 条…