【数通网络交换基础梳理1】二层交换机、以太网帧、MAC地址数据帧转发原理详解

news2024/10/1 3:27:30

一、网络模型

万年不变,先从模型结构分析,现在大家熟知的网络模型有两种。第一种是,OSI七层模型,第二种是TCP/IP模型。在实际运用中,参考更多的是TCP/IP模型。

OSI七层模型
在这里插入图片描述

TCP/IP模型在这里插入图片描述

不需要全部理解,只需要明白两点:1、数据包发送数据的过程是从上到下打包,接收数据是从下至上拆包。2、在二层数据链路层我们的数据已经被层层封装为以太网帧结构。现在有了下一个问题,以太网帧结构是什么?

二、以太网帧结构

在这里插入图片描述
在这里插入图片描述
以太网帧结构里有:DMAC、SMAC、Type、用户数据、FSC帧校验序列,我们挨个解释一下:

DMAC:目的MAC地址,被访问的MAC地址;
SMAC:源MAC地址,发起方的MAC地址;
Type:在数据中有一个type字段,是为了让交换机收到一个帧,拆开帧头,不用再进一步拆包就知道packet中类型,比如:
1、type=0X0800 代表的就是包内容是ipv4;
2、type=0X86DD 代表的就是IPv6;
3、type=0X0806 代表的就是ARP包;
4、type=0X8847 代表的就是MPLS unicast;
5、type=0X8848 代表的就是MPLS multicast;
用户数据:数据内容;
FSC帧校验序列:让接收帧的网卡或者网口判断是否有错误;

这里主要了解一下以太网帧头中有源MAC地址和目的MAC地址。

三、MAC地址

MAC地址(Media Access Control Address)也称为硬件地址或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。在OSI模型中,第二层数据链路层则负责MAC位址 。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。

四、数据链路层>二层交换机

二层交换机能够基于数据链路层的 MAC 地址,进行数据帧或 VLAN 的传输功能。二层交换机内置MAC地址表,为二层设备提供了唯一的地址,用于标识数据下发的终端设备和节点。

优点:数据交换是靠硬件来实现的,其非常快速且有效地将数据从源端传输到目标端。

简单的说,MAC地址表是交换机等网络设备记录MAC地址和设备端口的映射关系,代表了交换机从哪个端口学习到了某个MAC地址,后续交换机需要转发数据的时候就可以根据报文中目的MAC地址去 对照设备中的MAC地址表进行数据转发。如果MAC地址表中已经存在该MAC地址表项,设备将通过重置该表项的老化时间,对该表项进行更新。
在这里插入图片描述

五、二层交换机MAC地址学习

实例解析:

在这里插入图片描述

主机 PC1向主机 PC2 发送数据,PC1不知道PC2的MAC地址,PC1就像所有端口发说ARP广播请求包说:谁告诉我IP地址为192.168.1.4的MAC地址是多少?

PC1发送时,交换机把PC1的端口0/0/1、 MAC地址更新记录到MAC地址表中。但是此时交换机不知道目的 PC2MAC地址在哪个端口,于是将数据帧进行ARP广播包请求泛洪,即转发到除端口 1 之外的所有端口。

PC3收到数据帧发现目的IP地址不是自己,将丢弃数据帧。PC2收到数据帧发现是源IP是自己请求自己的MAC地址,于是发送应答数据帧,交换机端口 0/0/2 收到数据帧,记录PC2 对应的端口、 MAC
地址表项。

于是交换机知道了主机PC1 和主机 PC2 的 端口、MAC 地址信息,之后会根据 MAC 地址表进行转发。

上面的描述看不懂的话这里我们可以抓包看一下:
设置PC1访问PC2,抓包抓取交换机G0/0/1端口流量,抓包设置显示1.4的IP流量信息:
在这里插入图片描述
PC1开始ping 192.168.1.4,抓包内容显示如下:
在这里插入图片描述

打开一个广播包,内容为:
交换机ARP广播包问谁是192.168.1.4,告诉192.168.1.2,数据包里有发送的MAC地址和IP、目标的IP地址、MAC地址为广播因为不知道是交换机向所有端口问。
在这里插入图片描述
ARP回包:
包含源为192.168.1.4和MAC地址、以及回应给请求的目标192.168.1.2和MAC地址信息。

在这里插入图片描述

1、同一个MAC可以在同一台交换机的不同接口上出现吗 ?
不能。因为这样的交换机就不知道如何转发了

2、同一个MAC地址可以在不同交换机上的接口出现吗?
可以。

3、不同MAC地址可以在同一台交换机的相同接口出现吗?
可以。

4、既然通过ARP广播包发送请求是不是二层交换机也有ARP表?
没有,二层交换机有且只有一个关系表:MAC地址表
在这里插入图片描述

大白话翻译:

二层交换机只工作在二层数据链路层,所以咱们ping 192.168.1.4的时候二层交换机理解不了这个是什么意思,因为IP地址是三层网络层协议。而二层交换机通讯主要依靠ARP广播包识别各自交换机端口所接设备的MAC地址更新维护MAC地址表,又因数据最终转换成比特流通过物理介质发送出去,所以他要做一个转换就是从上往下打包发送(应用-传输-网络-数据链路),每上一层的信息逐步打包好了添加到下一层中,此时再来理解这一张图可能会稍微清晰一点。
在这里插入图片描述

六、ARP广播

ARP 协议的全称是 Address Resolution Protocol(地址解析协议),它是一个通过用于实现从 IP 地址到 MAC 地址的映射,即询问目标 IP 对应的 MAC 地址 的一种协议。ARP 协议在 IPv4 中极其重要。

以五中实验为例:

在PC1给PC1的发送数据的时候,是以数据帧的形式发送的,数据帧被网卡解析成电信号或者光信号传递到对端。数据帧里太网帧头由源MAC地址和目的MAC地址组成的,如果发送者只知道目的主机的IP地址,不知道目的主机的MAC地址,就不能把这个数据包转化成数据帧发走。而ARP 协议就是负责地址解析的,使用目的主机IP地址来解析对方的MAC地址。

七、不通网段如何通讯?

同网段可以依靠二层交换机通讯,当网络中存在多个网段192.168.1.1/24 172.16.1.1/24 173.73.1.1/24情况下交换机该如何互相通讯?请关注下一章
在这里插入图片描述

知识扩展:

冲突与冲突域

1、交换机每一个端口都是一个独立的冲突域,因此在其独立的冲突域中是不会发生任何通讯冲突的。
2、交换机通过分割冲突域来避免冲突的发生,同时提高传输效率。

冲突域与广播域

1、交换机每一个端口都是一个独立的冲突域,但交换机默认情况下,所有端口都工作在同一个广播域中。
2、所有端口都处于同一个广播域将会造成较大的安全隐患,因此交换机可通过额外的配置来分割广播域,该配置称之为VLAN【Virtual Local Area Network | 虚拟局域网】。

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

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

相关文章

电子技术——输出阶类型

电子技术——输出阶类型 输出阶作为放大器的最后一阶,其必须有较低的阻抗来保证较小的增益损失。作为放大器的最后一阶,输出阶需要处理大信号类型,因此小信号估计模型不适用于输出阶。尽管如此,输出阶的线性也非常重要。实际上&a…

绝对让你明明白白,脚把脚带你盯着 I2C 时序图将 I2C 程序给扣出来(基于STM32的模拟I2C)

目录前言一、关于STM32 I/O端口位的基本结构讲解二、模拟I2C编写前的需知道的知识1、I2C简介2、根据时序编写模拟I2C程序重要的两点Ⅰ、主机发送数据给从机时的时序控制Ⅱ、主机接收来自从机的数据时的时序控制Ⅲ、完整的I2C时序图(按写程序的思想分割时序&#xff…

【华为OD机试模拟题】用 C++ 实现 - 不含 101 的数(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

跟着《代码随想录》刷题(三)——哈希表

3.1 哈希表理论基础 哈希表理论基础 3.2 有效的字母异位词 242.有效的字母异位词 C bool isAnagram(char * s, char * t){int array[26] {0};int i 0;while (s[i]) {// 并不需要记住字符的ASCII码,只需要求出一个相对数值就可以了array[s[i] - a];i;}i 0;whi…

阿里是如何做Code Review的?

作为卓越工程文化的一部分,Code Review其实一直在进行中,只是各团队根据自身情况张驰有度,松紧可能也不一,这里简单梳理一下CR的方法和团队实践。 一、为什么要CR 提前发现缺陷 在CodeReview阶段发现的逻辑错误、业务理解偏差、性…

JavaScript DOM操作

目录 获取元素: 修改元素属性: 添加、删除、替换元素: 修改样式: DOM(文档对象模型)是一种用于操作 HTML 和 XML 文档的 API。JavaScript 通过 DOM API 可以访问和操作页面中的元素、属性和样式等。 获…

File类及IO流说明

目录 1.File类说明 (1)构造方法创建文件 (2)创建功能 (3)File类的判断和获取功能 (4)文件删除功能 2.I/O流说明 (1).分类 3.字节流写数据 (1)说明 (2)字节流写数据的三种方式 (3)写入时实现换行和追加写入 (4)异常处理中加入finally实现资源的释放 4.字节流读数据 …

2020蓝桥杯真题成绩分析 C语言/C++

题目描述 小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。 请计算这次考试的最高分、最低分和平均分。 输入描述 输入的第一行包含一个整数 (1≤n≤10^4 ),表示考试人数。 接下来 n 行&#xff0…

adb命令导出手机已安装的android应用apk文件

adb命令导出手机已安装的android应用apk文件,保存到PC电脑 前提条件是手机已经和PC电脑可以通过adb建立连接。 (1)通过adb shell命令获取当前手机所有已经安装的应用包名: adb shell pm list package (2&#xff09…

什么是Apple Search Ads

Apple Search Ads 是一个很重要的广告渠道,对于时间紧迫或资源有限的人来说,就不用担心定义关键词或管理受众群体的定位,它会以简单有效的方式提升我们应用的排名,从而实现高转化率的目标。 那我们该怎么设置Apple Search Ads B…

【CSS】CSS 层叠样式表 ① ( 简介 | CSS 引入方式 - 内联样式 | 内联样式语法 | 内联样式缺点 )

文章目录一、CSS 层叠样式表二、CSS 引入方式 - 内联样式1、内联样式语法2、内联样式缺点3、内联样式代码示例① 核心代码示例② 完整代码示例③ 执行结果一、CSS 层叠样式表 CSS 全称 Cascading Style Sheets , 层叠样式表 ; 作用如下 : 设置 HTML 页面 文本内容 的 字体 , 颜…

使用自己的数据集Fine-tune PaddleHub预训练模型

使用自己的数据Fine-tune PaddleHub预训练模型 果农需要根据水果的不同大小和质量进行产品的定价,所以每年收获的季节有大量的人工对水果分类的需求。基于人工智能模型的方案,收获的大堆水果会被机械放到传送带上,模型会根据摄像头拍到的图片…

Jina 3.14 版本发布!支持独立部署Executor

Jina 是一个 MLOps 框架,赋能开发者在云上构建多模态、跨模态的应用程序。Jina 能够将 PoC 提升为生产就绪服务。基础设施的复杂性交给 Jina,开发者能够直接轻松使用高级解决方案和云原生技术。🌟 GitHubhttps://github.com/jina-ai/jina/rel…

【华为OD机试模拟题】用 C++ 实现 - 敏感字段加密(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

Dubbo 源码解读:负载均衡策略

概览 org.apache.dubbo包下META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.LoadBalance中内部spi实现类有以下几种: randomorg.apache.dubbo.rpc.cluster.loadbalance.RandomLoadBalance roundrobinorg.apache.dubbo.rpc.cluster.loadbalance.RoundRobinL…

这次说说腾讯的一场 35K—55K 的 Android 高工面试

一、面试的由来 事情是这样的,因为跟公司发展一些想法的不同,早在十月份的时候就有了跳槽的想法,但是碍于老大的面子就一直就没有跟人事说出口,打算着等到年后金三银四在试试跳槽。 但是发生一件事终于让我忍不住了,…

阿里限量出产Elasticsearch学习手册,确定不心动?

前言只有光头才能变强。不知道大家的公司用Elasticsearch多不多,反正我公司的是有在用的。平时听同事们聊天肯定避免不了不认识的技术栈,例如说:把数据放在引擎,从引擎取出数据等等。如果对引擎不了解的同学,就压根听不…

一,下载iPerf3最新源代码

本文目录普通下载方式:git下载方式:普通下载方式: 如果你只是要阅读源代码,不涉及到编译安装修改源代码,那么可以简单的通过此方式下载代码。如果你希望编译安装修改源代码,那么建议通过git来进行源代码的…

软件测试之测试模型

软件测试的发展 1960年代是调试时期(测试即调试) 1960年 - 1978年 论证时期(软件测试是验证软件是正确的)和 1979年 - 1982年 破坏性测试时期(为了发现错误而执行程序的过程) 1983年起,软件测…

计算机网络笔记、面试八股(三)—— HTTPS协议

本章目录3. HTTPS协议3.1 HTTPS协议简介3.2 SSL/TLS协议3.2.1 SSL/TLS功能的实现3.3 HTTP和HTTPS的区别3.4 HTTPS协议的优点3.5 HTTPS协议的缺点3.6 HTTPS协议的工作流程3.7 HTTPS是如何解决HTTP的缺点的3.7.1 解决内容可能被窃听的问题——加密3.7.1.1 方法1.对称加密3.7.1.2 …