以太网交换机工作原理学习笔记
在网络中传输数据时需要遵循一些标准,以太网协议定义了数据帧在以太网上的传输标准,了解以太网协议是充分理解数据链路层通信的基础。以太网交换机是实现数据链路层通信的主要设备,了解以太网交换机的工作原理也是十分必要的。
1、以太网协议介绍
1.1以太网协议
以太网是当今现有局域网(Local Area Network, LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。
以太网是建立在CSMA/CD (Carrier Sense Multiple Access/Collision Detection,载波监听多路访问/冲突检测)机制上的广播型网络。
1.2冲突域
冲突域是指连接在同一共享介质上的所有节点的集合,冲突域内所有节点竞争同一带宽,一个节点发出的报文(无论是单播、组播、广播),其余节点都可以收到。
在传统的以太网中,同一介质上的多个节点共享链路带宽,争用链路的使用权,这样就会发生冲突。
同一介质上的节点越多,冲突发生的概率越大。
交换机不同的接口发送和接收数据独立,各接口属于不同的冲突域,因此有效地隔离了网络中物理层冲突域,使得通过它互连的主机(或网络)之间不必再担心流量大小对于数据发送冲突的影响。
1.3广播域
广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文。
在传统的以太网中,同一介质上的多个节点共享链路,一台设备发出的广播报文,所有设备均会收到。
交换机对广播报文会向所有的接口都转发,所以交换机的所有接口连接的节点属于一个广播域。
1.4以太网帧格式
以太网技术所使用的帧称为以太网帧 (Ethernet Frame),或简称以太帧。
以太帧的格式有两个标准:Ethernet_II格式和IEEE 802.3格式。
2、以太网交换机原理简介
2.1园区网典型架构
2.2以太网二层交换机
以太网二层交换机转发数据的端口都是以太网口,并且只能够针对数据的二层头部 (以太网数据帧头) 中的MAC地址进行寻址并转发数据。
2.3交换机的工作原理
2.4MAC地址表
每台交换机中都有一个MAC地址表,存放了MAC地址与交换机端口编号之间的映射关系。
2.5交换机的3种数据帧处理行为
交换机对于从传输介质进入某一端口的帧的处理行为一共有3种:
2.5.1泛洪
2.5.2转发
2.5.3丢弃
2.6交换机的MAC地址学习
(1)初始情况,交换机的MAC 地址表是空的。
(2)主机1发送数据帧给主机2。交换机GE0/0/1口接收到数据帧后,在MAC地址表中查询该帧的目的MAC地址,发现没有对应表项,则收到的数据帧是“未知单播帧”。
(3)交换机在MAC地址表中没有查到对应表项,则交换机对该单播帧执行泛洪操作。同时,交换机学习该数据帧的源MAC地址,并创建对应的MAC地址表项,与接收口GE0/0/1关联。
(4)交换机其他端口连接的主机,也会收到该数据帧,但是会丢弃。 主机2收到并处理该数据帧,向主机 1回复,将数据帧发往交换机。
(5)交换机在MAC地址表中查到了对应表项,则交换机对该单播帧执行转发操作,将数据帧从GE0/0/1口转发出去。同时,交换机学习该数据帧的源MAC地址,并创建对应的MAC地址表项,与接收口GE0/0/2关联。
2.7交换机常见问题思考与关键知识
2.7.1常见问题
(1)交换机接口down后,相应MAC地址表项如何变化?
对应接口学习到的MAC地址会在MAC地址表现中消失;
如在SW2上对G0/0/1口进行shutdown;
Shutdown之前:
Shutdown之后:
(2)同一个Vlan中,PC 从交换机A端口迁移到B端口,交换机MAC地址表项如何变化?
在SW2的角度来看,原本是从G0/0/3接口学习到PC2的MAC,当PC接到SW2的G0/0/4号接口时,不会立刻发生改变,除非MAC地址表学习到PC2的MAC地址时间老化,PC2对外进行通信,那么SW2学习到PC2的MAC接口就会发生改变,变为G0/0/4。
(3)MAC地址表的老化时间是多少?为什么需要老化时间?
对于华为的设备默认是300秒。(查看命令display mac-address aging-time)
修改MAC地址老化时间命令:mac-address aging-time XXX
一般不建议进行修改。
为什么需要老化时间?
原因是使设备能够高效的进行工作运行。如果不老化,内存空间越来越小,设备性能就会降低。
(4)如何设置“黑洞”MAC?
通过命令mac-address blackhole 5489-98EA-0A02 vlan X进行设置。
PC1就无法进入到SW2去访问PC3
(5)交换机的一个接口可以学习多个MAC地址吗?
可以的,例如SW2的G0/0/3口,既可以学习到PC1的MAC,又可以学习到PC2的MAC。
(6)交换机的MAC地址表项可以无限增加吗?
不可以,设备的内存空间有限。
display mac-address summary 当前设备可以存放32768条。
(7)交换机和集线器有什么区别?
交换机:采用存储转发原理工作,具有自动过滤和学习功能。当交换机接收到数据包时,会先将其存储在内部缓存中,然后检查数据包的MAC地址,并根据地址表将数据包转发到正确的端口。这种机制可以有效减少网络冲突,提高数据传输效率。
集线器:则采用广播原理工作。当集线器接收到数据包时,会将其广播到所有连接的端口上,无论目标设备是否在该端口上。这种机制容易导致网络冲突和性能下降,特别是在设备数量较多的情况下。
(8)交换机有NAT功能吗?
大部分是没有的,传统的交换机不具备NAT功能,但多层交换机或集成服务路由器等复合型网络设备可以支持NAT功能。不能说完全没有。
(9)所有交换机的端口都可以切换成路由口吗?
不是所有交换机的端口都可以切换成路由口。不排除一些高级交换机可以切换成路由口。
2.7.2关键知识
(1)交换机基于目标mac 转发数据。
(2)交换机的MAC地址表项需要报文触发才可以构建。
(3)交换机的MAC地址表是交换机转发数据“地图”。
(4)交换机MAC地址表中存放:mac地址和端口映射
(5)泛洪:① 未知单播泛洪 ② 广播泛洪
(6)交换机根据接收报文的源mac地址来构建自己的MAC地址表项
3、同网段数据通信全过程
场景描述:
▫ 任务:主机1想要访问主机2
▫ 主机:初始化状态
▫ 交换机:刚上电,初始化状态
当主机1去访问主机2,在建立ICMP通信之前,首先从主机1发送ARP请求,去广播请求学习,192.168.1.2的MAC在哪,当它找到192.168.1.2的位置后,通过IP地址学习MAC,接着单播返回给192.168.1.1,解析192.168.1.2的MAC是0050-5600-0002,报文信息完善之后,ICMP就建立了。
在主机1的E0/0/1接口进行抓包:
同网段数据通信的全过程相对简单,主要发生在同一局域网(LAN)内,不涉及路由器的路由决策。以下是该过程的简要描述:
(1)源主机阶段
封装数据包:源主机(如PC1)将要发送的数据封装成IP数据包,数据包中包含源IP地址、目标IP地址以及具体的数据内容。由于是同网段通信,源主机和目标主机的IP地址将位于相同的子网内。
ARP请求:源主机检查其ARP缓存,以查看是否已知目标主机(如PC2)的MAC地址。如果不知道,源主机会向本地网络发送一个ARP(地址解析协议)请求广播,询问目标IP地址对应的MAC地址。
接收ARP响应:网络中的设备(包括目标主机)会监听ARP请求。如果目标主机接收到请求,并且IP地址匹配,它会向源主机发送一个ARP响应,其中包含其MAC地址。
封装数据帧:一旦源主机获得目标主机的MAC地址,它就将IP数据包封装成以太网数据帧。数据帧的源MAC地址是源主机的MAC地址,目标MAC地址是目标主机的MAC地址。
(2)交换机转发阶段
接收数据帧:交换机接收到源主机发送的数据帧后,会读取数据帧的目标MAC地址。
查找MAC地址表:交换机在其MAC地址表中查找与目标MAC地址相匹配的条目。由于这是同网段通信,交换机通常会在其MAC地址表中找到对应的条目,该条目指定了数据帧应该被转发到的端口。
转发数据帧:交换机将数据帧转发到与目标MAC地址相关联的端口。由于目标主机和源主机位于同一网段,因此数据帧通常会直接到达目标主机,而无需经过其他网络设备。
(3)目标主机接收阶段
接收数据帧:目标主机通过其网络接口接收到数据帧。
解封装:目标主机解封装数据帧,以提取IP数据包。
处理数据:目标主机根据IP数据包中的目标IP地址确认数据包是发给自己的,然后进一步处理数据包中的数据。
整个过程主要涉及到ARP协议用于解析MAC地址,以及交换机根据MAC地址表进行数据帧的转发。由于源主机和目标主机位于同一网段,因此不需要路由器的参与,数据帧可以直接在局域网内传输。
4、跨网段数据通信全过程
场景描述:
▫ 任务:主机1想要访问主机2
▫ 主机:初始化状态
▫ 交换机:刚上电,初始化状态
(1)源主机阶段
封装数据包:源主机(如PC1)将要发送的数据封装成数据包,数据包中包含源IP地址、目标IP地址以及具体的数据内容。
判断网段:源主机通过比较本地IP地址、子网掩码和目标IP地址,判断目标主机(如PC2)是否在同一网段内。如果不在同一网段,则需要进行跨网段通信。
发送数据:源主机将数据包封装成数据帧,其中目的MAC地址设置为网关(通常是路由器的一个接口)的MAC地址,然后通过物理介质(如以太网)发送给交换机。
(2)交换机转发阶段
接收与转发:交换机接收到数据帧后,根据目的MAC地址查找MAC地址表,确定数据帧的转发端口。由于目的MAC地址是网关的MAC地址,交换机将数据帧转发给网关(路由器)。
(3)路由器转发阶段
解封装与解析:路由器接收到数据帧后,首先解封装得到IP数据包。然后,路由器解析IP数据包中的目标IP地址,查找路由表以确定下一跳地址。
重新封装与转发:路由器根据路由表中的下一跳地址,通过ARP协议获取下一跳设备的MAC地址。然后,路由器将IP数据包重新封装成新的数据帧,其中源MAC地址是路由器自身的MAC地址,目标MAC地址是下一跳设备的MAC地址。之后,路由器将新封装的数据帧发送给下一跳设备。
(4)多次转发(可能)
如果目标主机与源主机之间相隔多个网段,数据包可能需要经过多个路由器的转发。在每个路由器上,都会重复上述的解封装、解析、重新封装和转发的过程,直到数据包到达目标网段的网关。
(5)目标网段网关转发阶段
解封装与识别:目标网段的网关(可能也是路由器)接收到数据包后,解封装得到IP数据包,并识别出目标IP地址属于本网段内的某台主机(如PC2)。
ARP请求(可选):如果网关没有目标主机(PC2)的MAC地址,可能会发送ARP请求到本网段内,以获取目标主机的MAC地址。
封装与发送:网关获取到目标主机的MAC地址后,将IP数据包封装成数据帧,其中目的MAC地址为目标主机的MAC地址,然后通过物理介质发送给目标主机。
(6)目标主机接收阶段
接收与处理:目标主机接收到数据帧后,解封装得到IP数据包。然后,目标主机根据IP数据包中的目标IP地址判断是否是自己的数据包。如果是,则进一步处理数据包中的数据;如果不是,则可能将数据包丢弃或转发给同一网段内的其他主机。
通过以上步骤,跨网段数据通信得以实现,使得不同网段内的设备能够相互通信。
相关文章:

以太网交换机工作原理学习笔记
在网络中传输数据时需要遵循一些标准,以太网协议定义了数据帧在以太网上的传输标准,了解以太网协议是充分理解数据链路层通信的基础。以太网交换机是实现数据链路层通信的主要设备,了解以太网交换机的工作原理也是十分必要的。 1、以太网协议…...

ECCV`24 | 蚂蚁集团开源风格控制新SOTA!StyleTokenizer:零样本精确控制图像生成
文章链接:https://arxiv.org/pdf/2409.02543 代码&数据集链接: https://github.com/alipay/style-tokenizer 亮点直击 介绍了一种名为StyleTokenizer的新方法,用于在扩散模型中进行风格控制。这种方法允许通过一个任意参考图像实现对生成…...

Flutter的升级和降级步骤
升级 1.版本升级 // 升级到指定版本 flutter upgrade 版本号 // 升级到最新版本 flutter upgrade 2. 更新开发配置 启动 Android Studio。 打开 Settings 对话框,查看 SDK Manager。 如果你已经打开了一个项目,请打开 Tools > SDK Manager。 如果…...

计算机网络与Internet应用
一、计算机网络 1.计算机网络的定义 网络定义:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享…...
[建模已更新]2024数学建模国赛高教社杯A题:“板凳龙” 闹元宵 思路代码文章助攻手把手保姆级
本系列专栏将包括两大块内容 第一块赛前真题和模型教学,包括至少8次真题实战教学,每期教学专栏的最底部会提供完整的资料百度网盘包括:真题、数据、可复现代码以及文章. 第二块包括赛中详细思路建模、代码的参考助攻, 会提供2024年高教社国赛A的全套参考内容(一般36h内更新完毕…...

Spring Boot-自定义banner
在 Spring Boot 应用中,你可以自定义启动时显示的 banner。这些 banner 可以包括图形、文字或者其他形式的标识。如图所示: 1. 使用 banner.txt 文件 默认情况下,Spring Boot 使用项目的 banner.txt 文件中的内容作为启动时的 banner。你可以…...

2158. 直播获奖(live)
代码 #include<bits/stdc.h> using namespace std; int main() {int n,w,a[100000],cnt[601]{0},i,j,s;cin>>n>>w;for(i0;i<n;i){scanf("%d",&a[i]);cnt[a[i]];int x(i1)*w/100;if(!x) x1;for(j600,s0;j>0;j--){scnt[j];if(s>x){cou…...
python---爬取QQ音乐
如Cookie为非vip,仅能获取非vip歌曲 1.下载包 pip install jsonpath 2.代码 import os import time import requests from jsonpath import jsonpathdef search_and_download_qq_music(query_text):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; …...

tomato靶场攻略
1.使用nmap扫描同网段的端口,发现靶机地址 2.访问到主页面,只能看到一个大西红柿 3.再来使用dirb扫面以下有那些目录,发现有一个antibot_image 4.访问我们扫到的地址 ,点金目录里看看有些什么文件 5.看到info.php很熟悉࿰…...

Django+Vue3前后端分离学习(一)(项目开始时settings.py里的设置)
一、创建django项目 二、修改settings.py里的配置: 1、修改语言和时区: # 语言编码 LANGUAGE_CODE zh-hansTIME_ZONE UTCUSE_I18N True# 不用时区 USE_TZ False 2、配置数据库: DATABASES {default: {ENGINE: django.db.backends.m…...
一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)
1.没有分段的情况 原函数为一元二次凹函数(开口向下),如下: 因为要使得其存在正解,必须满足,那么。 上述函数的最优结果为:,。 对应的mathematica代码如下: Clear[&q…...

C++ | Leetcode C++题解之第394题字符串解码
题目: 题解: class Solution { public:string src; size_t ptr;int getDigits() {int ret 0;while (ptr < src.size() && isdigit(src[ptr])) {ret ret * 10 src[ptr] - 0;}return ret;}string getString() {if (ptr src.size() || src[…...

getLocation:fail, the permission value is offline verifying
getLocation:fail, the permission value is offline verifying 后端会根据appid和secret生成 签名,前端wx配置时一定用appid来验证签名的正确 本次错误为配置初始化失败:前端与后端的appId不一致,我的失误也...

【数据分享】《中国城市统计年鉴》(1985-2023)全PDF版本 第一次补档
数据介绍 中国城市,如同一本生动的历史书,承载着经济、社会的快速变迁。《中国城市统计年鉴》记录了城市的发展轨迹,是我们理解城市化进程、洞察城市挑战的重要指南。 这份年鉴的数据庞大而详实,囊括了中国城市发展的多个方面。…...

什么是LED智能会议一体机?COB超微小间距LED会议一体机大势所趋
LED智能会议一体机,作为现代会议室革新的核心装备,正逐步颠覆传统会议模式的界限。它不仅仅是一台集成了高清显示、触控互动、音视频处理及远程协作等功能于一体的智能设备,更是推动会议效率与体验双重飞跃的关键力量。随着技术的不断进步&am…...
两种在wordpress网站首页调用woocommerce产品的方法
要在WordPress网站首页调用WooCommerce产品,您可以使用以下方法: 方法1:使用WooCommerce Shortcode WooCommerce提供了一个内置的shortcode,可以直接在WordPress页面或帖子中插入产品。要在首页显示指定数量的产品,请…...

新一代交互模式:LUICUIVUI
随着技术的发展,特别是人工智能和机器学习的进步,交互方式也在不断演变。以下是一些新概念,它们描述了当下和未来可能的交互方式: Conversational UI (CUI): 以对话为基础的用户界面,用户通过自然语言与系统…...
chapter06 面向对象基础 知识点Note
文章目录 前言类的设计 属性和行为对象的内存解析 (堆 栈 方法区)类的成员之一 变量(属性) field类的成员之二 方法 method对象数组方法重载 overload可变个数的形参 语法糖方法的值传递机制递归关键字package importMVC设计模式import导入面向对象特征之…...

【Nginx系列】Nginx中rewrite模块
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

codesys进行控制虚拟轴运动时出现的一些奇怪bug的解释
codesys进行控制虚拟轴运动时出现的一些奇怪bug的解释 问题描述第一个奇怪的bug:新建的工程没有SoftMotion General Axis Pool选项第二个奇怪的bug:在新建工程SoftMotion General Axis Pool选项时,无法手动添加第三个奇怪的bug:虚…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...