以太网链路详情

文章目录

  • 1、交换机
    • 1、常见的概念
      • 1、冲突域
      • 2、广播域
      • 3、以太网卡
        • 1、以太网卡帧
      • 4、mac地址
        • 1、mac地址表示
        • 2、mac地址分类
        • 3、mac地址转换为二进制
    • 2、交换机的工作原理
      • 1、mac地址表
      • 2、交换机三种数据帧处理行为
      • 3、为什么会泛洪
      • 4、转发
      • 5、丢弃
    • 3、mac表怎么获得
    • 4、同网段数据通信全过程
      • 1、数据封装过程
      • 2、泛洪数据帧
      • 3、学习mac地址和主机回复
      • 4、总结
    • 5、不同网段数据通信过程

1、交换机

1、常见的概念

1、冲突域

  • 冲突域就是连接同一个共享介质的所有节点的集合,冲突域内所有节点竞争同一个带宽,一个节点发出的报文(无论是单播,组播,广播),其他节点都可以收到

  • 交换机上面的接口都是互相连接的,因此每一个接口相当于一个冲突域,不同的接口发送和数据独立,各个接口属于不同的冲突域,互联的主机不需要担心流量对数据发送冲突的影响了

  • 就是以前是一个主机发送数据,其他的主机不能发送数据,只能接收,但是交换机的话,每个接口都是互相连接的,因此可以不同主机可以同时发送数据,和接收数据

img

  • 一个节点发送的是广播的话,就会泛洪,如果接收的是单播的话,就只会发送给一个节点,因此交换机组成的局域网是广播域,但是隔离了冲突域

2、广播域

  • 就是广播报文会访问所有的主机,同一个广播域内的主机都能收到广播报文

  • 有一个主机发送了广播的话,交换机会发送给所有的接口都会转发,但是路由器的话,不会进行泛洪,不会转换广播,起到了一个隔离广播的作用

3、以太网卡

  • 路由器和PC的连接在一起的话,可以配置ip地址的,路由器接口上配置一个ip,然后pc上面也配置了一个ip地址,如果在同一个网段的话,就可以实现互访,所以的话,PC网卡和路由器网卡本质上没有区别,基于数据包来进行处理

  • 交换机上面的接口如果配置不了ip的话,就是一个二层设备,只具备二层的功能,以帧为单位进行数据转发,没有对包进行分析的能力,是一个传统的二层设备

1、以太网卡帧

img

  • 在以太网中,数据通信是基本单位是以太帧,有2个标准

  • 一个是Ethernet_ll格式和另外一个是IEEE802.3格式

  • 客户端发送的是Ethernet_ll数据的帧格式,维护网络正常工作协议的是IEE 802.3帧格式

  • Ethernet_ll类型,是0800上层就是ipv4的协议,是0806的话,上层就是arp协议的

  • IEEE802.3类型LLC

4、mac地址

  • 网络中唯一标识一个网卡,唯一的名字

  • mac地址6个字节,48bit,16进制

  • 为什么有了mac地址,在接入设备的时候还是需要配置ip地址,因为路由器是通过ip地址来进行寻址的,交换机是根据在mac地址在链路上面进行通信

  • 不要ip地址,在链路上面通过mac地址进行实现通信,在链路上面只有mac地址可以通信

  • 因此的话,ip地址和mac地址结合使用,非常的强大,在链路上面根据mac地址,在不同的网段上面,路由表根据ip地址进行转发

  • ip地址是唯一标识网络中一个节点,可以通过ip地址进行不同网段的数据访问,可以改变的,在同一个网段上面是唯一的

  • ip地址和mac地址,mac地址在同一个链路上面通信,ip地址可以跨链路访问

1、mac地址表示
  • mac地址采用十六进制表示

  • ox表示这个数据是16进制的

  • 00 1E 10 DD DD 02 6个字节

  • 转换成二进制的话, 0000 0000 0001 1110 一个数字转换成4bite来进行表示

2、mac地址分类
  • 单播地址,第8个bite等于0的就是单播,前面是24位,就是oui就是厂商代码

  • 组播地址,第8个bite等于1的话就是组播,发送给一堆接口

  • 广播地址,bite全是1的位广播

  • 6C就是单播地址,A是10,B是11,C是12,所以的话,这个就是一个单播

  • 交换机根据目标MAC地址的第8个比特位查找

3、mac地址转换为二进制

# 一个十六进制的数等于4个二进制的数
步骤 1:把 6 转成二进制
十六进制 6 对应十进制 6。
将十进制 6 转换为二进制:
6 ÷ 2 = 3,余数 0
3 ÷ 2 = 1,余数 1
1 ÷ 2 = 0,余数 1
从下到上排列余数:110
补齐 4 位:0110
步骤 2:把 C 转成二进制
十六进制 C 对应十进制 12(A=10, B=11, C=12)。
将十进制 12 转换为二进制:
12 ÷ 2 = 6,余数 0
6 ÷ 2 = 3,余数 0
3 ÷ 2 = 1,余数 1
1 ÷ 2 = 0,余数 1
从下到上排列余数:1100

2、交换机的工作原理

img

  • 主机1发送数据到PC2上面,交换机学习帧的地址MAC地址,然后在MAC地址表中查询该帧的目的mac地址,并将这个帧从对应的端口转发出去,arp协议

  • 二层转发只用看mac地址即可,不需要看IP地址

1、mac地址表

  • 每个交换机都会有一个mac地址表,存放了mac地址与交换机端口编号之间的映射关系

  • 通过这个接口就能达到主机上面

2、交换机三种数据帧处理行为

  • 泛洪,就是一个接口收到数据帧后,就泛洪到所有的主机

  • 转发,就是从一个特定的接口转发到某个接口

  • 丢弃,一个接口接收的数据,直接丢弃,不进行转发

3、为什么会泛洪

  • 交换机如果接收的是单播帧,交换机查询mac地址表,查询不到,就被称为未知单播帧,交换机对该单播帧执行泛洪的操作

  • 如果接收的是广播帧,不需要查询mac地址,直接进行泛洪

  • 组播,也是泛洪

4、转发

  • 查找到了这个目标mac地址和对应的接口,然后从这个接口进行转发即可

5、丢弃

  • 交换机收到了一个帧的话,如果这个出接口和目标接口都是自己的,交换机就会丢弃

3、mac表怎么获得

img

  • 初始情况下,交换机的mac地址表是空的

  • PC发送一个数据帧,然后交换机查询源mac地址学习,找到了这个对应端口

  • 根据目标mac地址是个单播,查询不到,然后就会泛洪操作,然后主机二会回复一个单播帧,然后交换机继续学习,这个源mac地址和对应的端口,这样交换机就学习到了,并且记录到了mac地址表中

  • 然后PC发送数据后,就会实现转发的操作

4、同网段数据通信全过程

img

1、数据封装过程

img

  • 但是以太网帧的结构里面有源mac,和目标mac地址,但是刚开始不知道目标mac地址,所以的话,需要先发送一个arp请求,获取到目标mac地址

2、泛洪数据帧

img

  • 先发送一个arp广播,交换机直接进行泛洪

3、学习mac地址和主机回复

img

  • 主机二就收到了arp请求,回一个arp应答,里面包含了主机2的mac地址,和主机1的目标mac地址,然后交换机就学习到了这个mac地址和对应的接口

  • 然后主机1就获得了目标的mac地址,然后进行帧的封装,不断的进行数据的转发,然后交换机通过查询mac地址表,然后进行转发即可

4、总结

  • 这个就是同网段通信的过程

img

# 发送一个ping 包,会发送一个arp请求,然后交换机就学习
# 查询交换机
<Huawei>display mac-address
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  VSI/SI                                              MAC-Tunnel  
-------------------------------------------------------------------------------
5489-9850-0d09 1           -      -      GE0/0/1         dynamic   0/-         
5489-9880-0d83 1           -      -      GE0/0/2         dynamic   0/-         
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2 # 主机上面也会有mac地址记录
PC>arp -a Internet Address    Physical Address    Type
1.1.1.2             54-89-98-80-0D-83   dynamic
  • 交换机的接口,每个接口的目标mac地址都是相同的,接口不是用来通信的,用来交换机之间的通信

  • arp是一个广播的报文,发送到交换机上面,会泛洪,所有主机都会接收

  • 刚开始都是初始的状态,然后PC1发送一个数据到PC2上面,因为只知道PC2的目标ip,不知道目的mac地址,因此的话,先发送一个arp请求,然后发送过去,交换机就学习PC1的mac地址,并且记录端口信息,PC2收到后,发送一个ARP回答,里面记录的2个mac地址和Ip,然后交换机学习PC2的mac地址,记录端口的关系,这样的话,交换机就学习到了

  • 下次发数据的时候,直接进行转发

  • mac地址表,有个老化时间,默认是300秒,因此的话,每次发送的数据,交换机都要学习mac地址

  • mac地址表为什么会老化

    • mac地址使用的内存空间,如果错误表项,空闲的表项,不老化,导致mac表会占用空间

    • 交换机的mac表有一定的容量限制,不清空无效的表项,导致了MAC地址表容量满了,无法学习最新的MAC地址信息

5、不同网段数据通信过程

img

# pc1和pc2是同一个网段的,与pc3是不同的网段
  • 不同网段的话,就需要去寻找网关,所以的话,就会寻找网关的mac地址,然后网关就会回一个自己的mac地址,需要路由器,网关配置在了路由器,

  • 就是网关路由器从交换机接收到后数据后,进行解封装然后查询到里面的目标ip地址不是自己的然后继续封装,转发

  • 知道转发到了PC3主机上面即可,然后有mac地址,进行arp回答即可

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA 2024 版本配置热部署

在实际开发过程中&#xff0c;每次修改代码就得将项目重启&#xff0c;重新部署&#xff0c;对于一些大型应用来说&#xff0c;重启时间需要花费大量的时间成本。对于一个后端开发者来说&#xff0c;重启过程确实很难受啊 采用下面三步骤可以完成 1.在IDEA中settings中搜索Debb…

阿里云 云产品流转(实现设备与小程序交互)

一、准备工作 1、设备接入平台 创建两个设备接入到对应产品中&#xff0c;具体可以参考这里&#xff08;点击跳转&#xff09;。 二、云产品流转设置 在物联网平台下-->消息转发-->云产品流转->数据源 1、数据源 数据源-->创建数据源-->填写信息-->确定&…

单目深度估计模型 lite-mono 测试

lite-mono 使用工业数据集kitti 进行训练&#xff0c;目的使用单目摄像头实现物体深度预测&#xff0c;关于kitti数据集的介绍和下载参考 &#xff08;二&#xff09;一文带你了解KITTI数据集-CSDN博客文章浏览阅读2.7w次&#xff0c;点赞64次&#xff0c;收藏294次。文章介绍…

.Net 多线程、异步、性能优化应用与心得

文章目录 概要多线程Thread方式创建线程:Task方式创建线程[C#5.0引入]&#xff08;推荐使用&#xff09;:线程池方式创建线程&#xff1a; 异步异步方法异步IO操作异步数据库操作异步Web请求取消异步ValueTask[C# 7.0引入]ValueTask<TResult> 和 Task 性能优化懒加载对象…

qt-C++语法笔记之mapToGlobal将组件(控件)中的本地坐标系(局部坐标)映射到全局坐标系

qt-C语法笔记之mapToGlobal将组件&#xff08;控件&#xff09;中的本地坐标系&#xff08;局部坐标&#xff09;映射到全局坐标系 code review! 文章目录 qt-C语法笔记之mapToGlobal将组件&#xff08;控件&#xff09;中的本地坐标系&#xff08;局部坐标&#xff09;映射到…

python爬虫--小白篇【爬取B站视频】

目录 一、任务分析 二、网页分析 三、任务实现 一、任务分析 将B站视频爬取并保存到本地&#xff0c;经过分析可知可以分为四个步骤&#xff0c;分别是&#xff1a; 爬取视频页的网页源代码&#xff1b;提取视频和音频的播放地址&#xff1b;下载并保存视频和音频&#x…

UniScene:Video、LiDAR 和Occupancy全面SOTA

论文: https://arxiv.org/pdf/2412.05435 项目页面&#xff1a;https://arlo0o.github.io/uniscene/ 0. 摘要 生成高保真度、可控制且带有标注的训练数据对于自动驾驶至关重要。现有方法通常直接从粗糙的场景布局生成单一形式的数据&#xff0c;这不仅无法输出多样化下游任务…

Ubuntu22.04搭建FTP服务器保姆级教程

在网络环境中&#xff0c;文件传输是一项至关重要的任务。FTP&#xff08;文件传输协议&#xff09;是一种基于客户端/服务器模式的协议&#xff0c;广泛用于在互联网上传输文件。Ubuntu作为一款流行的Linux发行版&#xff0c;因其稳定性和易用性而广受开发者和系统管理员的喜爱…

【银河麒麟高级服务器操作系统】修改容器中journal服务日志存储位置无效—分析及解决方案

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 服务器环境以及配置 【机型】 整机类型/架构&am…

React 第十六节 useCallback 使用详解注意事项

useCallback 概述 1、useCallback 是在React 中多次渲染缓存函数的 Hook&#xff0c;返回一个函数的 memoized的值&#xff1b; 2、如果多次传入的依赖项不变&#xff0c;那么多次定义的时候&#xff0c;返回的值是相同的,防止频繁触发更新&#xff1b; 3、多应用在 父组件为函…

二十七、Tomcat专题总结与拓展

文章目录 一、Tomcat设计思路总结1、Tomcat整体架构2、Tomcat设计思路 二、Tomcat源码设计精髓三、拓展&#xff1a;SpringBoot整合Tomcat源码分析四、拓展&#xff1a;SpringBoot整合Undertow实战1、Undertow概述2、SpringBoot集成Undertow2.1、引入依赖2.2、application.prop…

[游戏开发] Unity中使用FlatBuffer

什么是FlatBuffer 官网&#xff1a; GitHub - google/flatbuffers: FlatBuffers: Memory Efficient Serialization LibraryFlatBuffers: Memory Efficient Serialization Library - google/flatbuffershttps://github.com/google/flatbuffers 为什么用FloatBuffer&#xff0c…

【JAVA】旅游行业中大数据的使用

一、应用场景 数据采集与整合&#xff1a;全面收集旅游数据&#xff0c;如客流量、游客满意度等&#xff0c;整合形成统一数据集&#xff0c;为后续分析提供便利。 舆情监测与分析&#xff1a;实时监测旅游目的地的舆情信息&#xff0c;运用NLP算法进行智能处理&#xff0c;及…

android studio创建虚拟机注意事项

emulator 启动模拟器的时候&#xff0c;可以用 AVD 界面&#xff0c;也可以用命令行启动&#xff0c;但命令行启 动的时候要注意&#xff0c;系统有两个 emulator.exe &#xff0c;建议使用 emulator 目录下的那个&#xff01;&#xff01; 创建类型为google APIs的虚拟机可从…

全面解析租赁小程序的功能与优势

内容概要 租赁小程序正在逐渐改变人与物之间的互动方式。通过这些小程序&#xff0c;用户不仅可以轻松找到所需的租赁商品&#xff0c;还能够享受无缝的操作体验。为了给大家一个清晰的了解&#xff0c;下面我们将重点介绍几个核心功能。 建议&#xff1a;在选择租赁小程序时&…

JCR一区牛顿-拉夫逊优化算法+分解对比!VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测

JCR一区牛顿-拉夫逊优化算法分解对比&#xff01;VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测 目录 JCR一区牛顿-拉夫逊优化算法分解对比&#xff01;VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.中科院…

用二维图像渲染3D场景视频

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

每日一练:链表-重排链表

LCR 026. 重排链表 - 力扣&#xff08;LeetCode&#xff09; 题目要求&#xff1a; 给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0 → L1 → … → Ln-1 → Ln 请将其重新排列后变为&#xff1a; L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → ……

国产物联网平台(IotSharp+IoTGateway+Influxdb)快速上手

环境说明&#xff1a; Visual Studio 2022 CommunityIotSharp代码&#xff1a;https://github.com/IoTSharp/IoTSharp.gitIoTGateway版本&#xff1a;v2.1.1Node版本&#xff1a;v20.18.1Influxdb版本&#xff1a;v2.7.11 安装Node Node.js官网 官网下载并安装&#xff0c;…

每日一刷——二叉树的构建——12.12

第一题&#xff1a;最大二叉树 题目描述&#xff1a;654. 最大二叉树 - 力扣&#xff08;LeetCode&#xff09; 我的想法&#xff1a; 我感觉这个题目最开始大家都能想到的暴力做法就是遍历找到数组中的最大值&#xff0c;然后再遍历一遍&#xff0c;把在它左边的依次找到最大…