11.以太网交换机工作原理
目录
- 一、以太网协议
- 二、以太网交换机原理
- 三、交换机常见问题思考
- 四、同网段数据通信全过程
- 五、跨网段数据通信全过程
- 六、关键知识
- 七、调试命令
前言:在网络中传输数据时需要遵循一些标准,以太网协议定义了数据帧在以太网上的传输标准,了解以太网协议是充分理解数据链路层通信的基础。以太网交换机是实现数据链路层通信的主要设备,了解以太网交换机的工作原理也是十分必要的。
一、以太网协议
-
以太网是当今现有局域网(Local Area Network, LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。
-
以太网是建立在CSMA/CD (Carrier Sense Multiple Access/Collision Detection,载波监听多路访问/冲突检测)机制上的广播型网络。
早期使用集线器(HUB)组网现在使用交换机组网。

-
冲突域
冲突域是指连接在同一共享介质上的所有节点的集合,冲突域内所有节点竞争同一带宽,一个节点发出的报文(无论是单播、组播、广播),其余节点都可以收到。早期以太网(HUB组网):① 在传统的以太网中,同一介质上的多个节点共享链路带宽,争用链路的使用权,这样就会发生冲突。② 同一介质上的节点越多,冲突发生的概率越大。③ 解决机制:CSMA/CD(带有冲突检测的载波侦听多路存取):所有节点都共享网络传输信道,节点在发送数据之前,首先检测信道是否空闲,如果信道空闲则发送,否则就等待;在发送出信息后,再对冲突进行检测,当发现冲突时,则取消发送。交换机以太网(现在用的):① 隔离冲突域,每个接口相当于1个独立的冲突域。② 交换机不同的接口发送和接收数据独立,各接口属于不同的冲突域,因此有效地隔离了网络中物理层冲突域,使得通过它互连的主机(或网络)之间不必再担心流量大小对于数据发送冲突的影响。

-
广播域
广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文。

-
以太网帧格式
以太网技术所使用的帧称为以太网帧 (Ethernet Frame),或简称以太帧。以太帧的格式有两个标准:Ethernet_II格式和IEEE 802.3格式。※ Ethernet_Ⅱ最常用※ thernet_II和IEEE 802.3帧前面两个字段都是D.MAC与S.MAC,交换机只会拆到这,所以交换机不知道接收到的帧具体是哪个格式的。

二、以太网交换机原理
-
典型的园区网架构
出口层(通常为路由器):连接公网核心层(通常是三层交换机):负责用户的数据交换汇聚层(通常是三层交换机):把用户的数据汇聚起来转发给核心层接入层(通常是二层交换机):用于把用户接进来(扩展接口的)

-
以太网二层交换机
以太网二层交换机转发数据的端口都是以太网口,并且只能够针对数据的二层头部 (以太网数据帧头) 中的MAC地址进行寻址并转发数据。 -
交换机的工作原理
交换机在接收到任意类型的数据帧时,首先是学习并生成MAC表项(数据帧源MAC地址与入端口对应关系),如果该项已经存在,会更新其老化时间(华为大部分设备默认是300秒),然后将该数据帧从对应的端口转发出去;如果没有该项,则会将其泛洪(转发给所有端口);

-
MAC地址表
每台交换机中都有一个MAC地址表,存放了MAC地址与交换机端口编号之间的映射关系。华为大部分设备默认地址表项老化时间是300秒。

-
交换机的3种数据帧处理行为
交换机对于从传输介质进入某一端口的帧的处理行为一共有3种:泛洪、转发与丢弃。

-
泛洪
如图所示

-
转发
如图所示

-
丢弃
交换机接收到数据帧,发现其目的MAC地址对应的接口,是其来方向的入接口时,会将其丢弃(找错交换机了)。

-
交换机MAC地址学习
交换机只有在报文经过时才能学习并构建相应的mac表项。交换机接收到报文的第一步是学习mac地址,然后才是其他操作。
第一步:

第二步:

第三步:

第四步:

第五步:

三、交换机常见问题思考
-
交换机接口down后,相应MAC地址表项如何变化?
对应接口的MAC地址表项会消失。 -
同一个Vlan中,PC 从交换机A端口迁移到B端口,交换机MAC地址表项如何变化 ?
会进行变迁到新的接口下。 -
MAC地址表的老化时间是多少?为什么需要老化时间?
华为大部分设备默认是300秒,新报文经过会刷新老化时间重新计算;为了高效的利用设备的资源,不要太多的mac地址条目。 -
如何设置“黑洞”MAC?
交换机系统模式下:mac-address blackhole 5489-98EA-0A02 vlan 1 黑洞mac -
交换机的一个接口可以学习多个MAC地址吗?
可以的(因为一个接口下可能连接了其他交换机,其他交换机下也有很多设备) -
交换机的MAC地址表项可以无限增加吗?
不可以,大交换机的较多,中小型交换机的较少。 -
交换机和集线器有和区别?
集线器所有的接口都在一个冲突域下,交换机的每一个接口都是一个独立的冲突域;集线器对于任何报文都是群发,共享链路带宽。集线器:老设备、只会翻红、共享链路带宽。 -
交换机有NAT功能吗?
大部分交换机都没有nat功能(三层交换机和路由器的功能不是完全一样) -
所有交换机的端口都可以切换成路由口吗?
不是,部分交换机的端口可以(高端交换机,比如华为-H系列)
四、同网段数据通信全过程

过程如下:① 主机1不知道主机2的mac地址,arp广播② 交换机收到arp广播,学习主机1的mac地址,泛洪arp③ 主机2接收到arp广播,将主机1的mac与ip写入自己的arp缓存表④ 主机2发送单播给主机1,包含自己的mac与ip⑤ 主机1收到主机2的mac与ip,将其写入arp缓存表,随后封装icmp报文发送给主机2,开始正式访问⑥ 交换机收到icmp,不知道目的(主机2),将其泛洪⑦ 主机2收到icmp后,回包给主机1⑧ 交换机收到主机2的icmp回包时,将主机2的mac地址与其入端口一起写道mac地址表中,随后查找表,发现自己有主机1的mac地址后,将其从GE0/0/1转发。⑨ 主机1接收到主机2的回包,访问结束。
五、跨网段数据通信全过程

过程如下:① 主机1访问主机2的ip地址,发现和自己不是一个网段,将其送给R1(网关路由器)② 但是主机1不知道R1的mac地址,arp③ 交换机收到主机1的arp广播,学习主机1mac地址,泛洪arp④ r1收到arp包,将主机1的mac与ip写入arp表,回给主机1单薄(携带r1的ip与mac)⑤ 交换机收到r1发送的单播,学习r1的mac,查找mac将其转发给主机1⑥ 主机1收到后r1回的单播报文,将r1的ip与mac写入arp表,随后封装icmp报文(目的主机2,mac是R1)⑦ 交换机收到icmp,查找mac地址表,发给R1⑧ R1收到icmp报文后,查看目的IP地址(是主机2),查找路由表,发出去⑨ 到达对端⑩ r1不知道主机2的mac地址,arp,⑪ 交换机收到arp,学习R1的mac地址生成表项,随后泛洪⑫ 主机2收到arp,将R1的ip与mac写到自己的arp表,随后发送单播(携带主机2的ip与mac)给R1交换机收到主机2的单播,学习主机2的mac,发给R1⑭ R1收到单薄,把主机2的ip与mac写入arp表。随后发送icmp包。交换机收到icmp,查找mac地址表,转发给主机2⑯ 主机2收到icmp,回报给主机1,因为跨网段,所以发给网关R1※ 注意:主机1和主机2的网关是R1路由器的两个不同的接口。⑰ 交换机收到icmp,查找mac表,发给R1⑱ R1收到icmp,查找路由表,发给主机1,⑲ 交换机收到icmp,查找mac表,发给主机1⑳ 主机1收到回包,访问结束。
六、关键知识
-
交换机基于目标mac 转发数据。
-
交换机的MAC地址表项需要报文触发才可以构建。
-
交换机的MAC地址表是交换机转发数据“地图”。
-
交换机MAC地址表中存放:mac地址和端口映射
-
泛洪:① 未知单播泛洪 ② 广播泛洪
-
交换机根据接收报文的源mac地址来构建自己的MAC地址表项。
七、调试命令
- dis mac-address 查看mac地址表
- dis mac-address summary 查看mac地址表概述
- dis mac-address aging-time 查看mac地址表老化时间
- mac-address aging-time 305 修改mac地址表的老化时间
- mac-address blackhole 5489-98EA-0A02 vlan 1 黑洞mac
- undo mac-address all 清空mac地址表
- dis arp 查看arp
- reset arp all 清空arp
相关文章:
11.以太网交换机工作原理
目录 一、以太网协议二、以太网交换机原理三、交换机常见问题思考四、同网段数据通信全过程五、跨网段数据通信全过程六、关键知识七、调试命令 前言:在网络中传输数据时需要遵循一些标准,以太网协议定义了数据帧在以太网上的传输标准,了解以…...
【通信基础知识】完整通信系统的流程图及各模块功能详解
2024.2.29 抱歉最近在写毕设大论文,因此没有太多时间更新。然而,在写论文的过程中,发现自己对通信系统的了解还不够全明白,因此差了一些硕博论文总结了一个完整的通信系统流程图。若有不对的地方请多多指正//部分内容有参考ChatGP…...
k8s-项目测试环境部署
部署规划 概述 项目开发好后,我们需要部署,我们接下来就基于 阿里云云效 阿里云容器镜像服务 k8s 搭建部署环境 阿里云云效 : 放代码,可以做cicd(https://www.aliyun.com/product/yunxiao) 阿里云容器镜像服务 :…...
【Elasticsearch管理】缓存机制
文章目录 缓存Field data cache(字段数据缓存)Node query cache(节点查询缓存)Indexing buffer(索引缓冲区)Shard request cache(分片请求缓存)缓存失败启用/禁用缓存根据请求启用/禁…...
JS api基础初学
轮播图随机版 需求:当我们刷新页面,页面中的轮播图会显示不同图片以及样式 分析:①:准备一个数组对象,里面包含详细信息(素材包含) ②:随机选择一个数字,选出数组对应…...
uniapp实战:父子组件传参之子组件数量动态变化
需求说明 现有的设置单元列表,每个带有虚线加号的可以看做是一组设置单元,点击加号可以添加一组设置单元.点击设置单元右上角可以删除对应的设置单元. 实现思路说明 利用数组元素添加或是删除的方式实现页面数量动态变化.由于每个设置单元内容都相同所以单独封装了一个子组件.…...
Ubuntu绑定USB接口到固定端口
绑定端口 打开终端,输入以下命令查看USB端口信息: udevadm info -a -n /dev/ttyUSB0执行后,可以看到部分输出如下: 找到第一个,a-b:c格式的KERNELS,记住这个值,后面会用到。 linlin-B660M-D2H-DDR4:~$ u…...
解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题
解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题 前几天出了教程本地部署gogs,在后期运行时发现两个问题: 第一:邮件明明配置了,后台显示未配置,…...
数字后端——DEF文件格式
文章目录 MACRO的不同orientationDEF中在macro orientation定义前需要留空格 MACRO的不同orientation DEF中在macro orientation定义前需要留空格 像下图中这种方向和分号之间没有空格的情况,就是有问题的格式。...
【可做课设、附完整技术文档】流式、异步、实时的Django聊天室!(需进一步定制可联系本人)
介绍 完整源码以及完整项目文档请看源码链接。 此Django项目实现了一个精致易扩展的实时聊天室,可直接作为网页开发的课程设计提交,也可二次开发,比如添加更好看的样式,或者更多更酷炫的功能。 实现了如下功能: 流…...
网络编程:基于TCP和UDP的服务器、客户端
1.基于TCP通信服务器 程序代码: 1 #include<myhead.h>2 #define SER_IP "192.168.126.121"//服务器IP3 #define SER_PORT 8888//服务器端口号4 int main(int argc, const char *argv[])5 {6 //1.创建用于监听的套接字7 int sfd-1;8 sf…...
kubectl 命令行管理K8S(上)
目录 陈述式资源管理方式 介绍 命令 项目的生命周期 创建 kubectl create命令 发布 kubectl expose命令 更新 kubectl set 回滚 kubectl rollout 删除 kubectl delete 应用发布策略 金丝雀发布 陈述式资源管理方式 介绍 1.kubernetes 集群管理集群资源…...
Redis 之四:Redis 事务和乐观锁
事务特点 Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证: 批量操作在发送 EXEC 命令前被放入队列缓存。 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。不具备原子性。 在事务执…...
C# WPF编程-创建项目
1.创建新项目 选择“WPF应用程序”》“下一步” 设置项目 设置项目名称,保存位置等参数>下一步 3.选择框架 4.项目创建成功 5.运行项目...
密码学及其应用(应用篇15)——0/1背包问题
1 问题背景 背包问题是一个经典的优化问题,在计算机科学和运筹学中有着广泛的应用。具体到你提到的这个问题,它是背包问题中的一个特例,通常被称为0/1背包问题。这里,我们有一系列的正整数 ,以及一个正整数,…...
基于springboot+vue的实验室管理系统(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...
华为OD技术面试案例5-2024年
背景 985本计算机专业,目标院校。 1.15 投递 在某BOSS上投递的简历,HR人很nice,非常负责任。 1.19 收到机试通知 第一题是一个哈夫曼编码,第三题是一个动态规划,机试整体难度不算高,刷leetcode hot100…...
【QT+QGIS跨平台编译】之五十五:【QGIS_CORE跨平台编译】—【qgsmeshcalcparser.cpp生成】
文章目录 一、Bison二、生成来源三、构建过程一、Bison GNU Bison 是一个通用的解析器生成器,它可以将注释的无上下文语法转换为使用 LALR (1) 解析表的确定性 LR 或广义 LR (GLR) 解析器。Bison 还可以生成 IELR (1) 或规范 LR (1) 解析表。一旦您熟练使用 Bison,您可以使用…...
Unity(第二十部)效果 粒子、线条和拖尾
1、粒子系统 粒子系统介绍 Unity 粒子系统是 Unity 引擎中用于创建和控制粒子效果的工具。它可以模拟各种自然现象,如火焰、烟雾、雨滴等,也可以用于创建特效,如魔法光芒、爆炸效果等。 粒子系统组成 在 Unity 中,粒子系统由发射…...
全量知识系统问题及SmartChat给出的答复 之6 三套工具之1
Q15. 提出想法和问题 前面说过,DDD在我要设计的全量知识系统中位于中间层,是专门用来解决“知识汤”问题的。 解决的思路就是以将为在特定领域中的公司经营提供一个责任-权限平面为目的,帮助他们调整商业模式以及组建恰当的组织,…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
