计算机网络:网络层 —— IPv4 地址与 MAC 地址 | ARP 协议
文章目录
- IPv4地址与MAC地址的封装位置
- IPv4地址与MAC地址的关系
- 地址解析协议ARP
- 工作原理
- ARP高速缓存表
IPv4地址与MAC地址的封装位置
在数据传输过程中,每一层都会添加自己的头部信息,最终形成完整的数据包。具体来说:
- 应用层生成的应用程序数据被称为应用层报文。
- 当数据传递到运输层时,会被加上运输层首部,形成运输层段。
- 接下来,网际层会在前面的基础上再添加IP首部,形成IP数据报。
- 最后,在网络接口层,数据会被封装成带有MAC地址的数据帧,并通过物理链路进行传输。
在整个过程中,数据从高层向下层层封装,直至最底层的物理信号流。反向传输时,则是逐层解封,恢复成最初的应用层数据。
![![[IPv4地址与MAC地址的封装位置.png]]](https://i-blog.csdnimg.cn/direct/b46d4484944d438cbd98ac4a6cd92cd7.png)
-
在数据包的传送过程中,数据包的源IP地址和目的IP地址保持不变,因为IP地址是用来识别网络中的逻辑位置,而不是物理位置。
-
在数据包的传送过程中,数据包的源MAC地址和目的MAC地址逐链路(或逐网络)变化
![![[IPv4地址与MAC地址的变化.png]]](https://i-blog.csdnimg.cn/direct/6bf0d00e406f492abe3fb3bc6be5f51c.png)
当数据包从一个局域网(LAN)移动到另一个局域网时,其源 MAC 地址和目的 MAC 地址会发生改变。例如,从 H1 发出的数据包最初的源 MAC 地址是 MAC1,到达 R1 时,源 MAC 变成了 MAC3;然后从 R1 转发到 R2 时,源 MAC 变成 MAC4,以此类推,直到达到目的地 H2,此时源 MAC 是 MAC6。
网络通信的本质:IP 地址用于跨网络的寻址和路由,而 MAC 地址用于同一局域网内的直接通信。每次数据包跨越不同的局域网边界时,都需要重新确定 MAC 地址,以适应新环境下的通信需求。
IPv4地址与MAC地址的关系
如果仅使用 MAC 地址进行通信,则会出现以主要问题:
-
因特网中的每台路由器的路由表中就必须记录因特网上所有主机和路由器各接口的MAC地址
-
手工给各路由器配置路由表几乎是不可能完成的任务,即使使用路由协议让路由器通过相互交换路由信息来自动构建路由表,也会因为路由信息需要包含海量的MAC地址信息而严重占用通信资源。
-
包含海量 MAC 地址的路由信息需要路由器具备极大的存储空间,并且会给分组的查表转发带来非常大的时延。
因特网的网际层使用IP地址进行寻址,就可使因特网中各路由器的路由表中的路由记录的数量大大减少,因为只需记录部分网络的网络地址,而不是记录每个网络中各通信设备的各接口的 MAC 地址。
路由器收到 IP 数据报后,根据其首部中的目的IP地址的网络号部分,基于自己的路由表进行查表转发。
查表转发的结果可以指明 IP 数据报的下一跳路由器的 IP 地址,但无法指明该 IP 地址所对应的 MAC 地址。因此,在数据链路层封装该 IP 数据报成为帧时,帧首部中的目的 MAC 地址字段就无法填写,该问题需要使用网际层中的地址解析协议ARP来解决
地址解析协议ARP
地址解析协议(ARP,Address Resolution Protocol)是一种用于将网络层(IP层)的32位IP地址解析为数据链路层(物理层)的48位MAC地址的协议。用于解决同一局域网内,主机之间或路由器的 IP 地址和 MAC 地址的映射问题,不能跨网络使用。
![![[地址解析协议ARP范围.png]]](https://i-blog.csdnimg.cn/direct/4db009aa97c348a399e3d94126c8340b.png)
-
由于
ARP协议的主要用途是从网际层使用的IP地址解析出在数据链路层使用的MAC地址。因此,有的教材将ARP协议划归在网际层,而有的教材将ARP协议划归在数据链路层。这两种做法都是可以的。 -
ARP协议还有其他类型的报文,例如用于检查 IP 地址冲突的“无故ARP”(Gratuitous ARP) -
由于
ARP协议很早就制定出来了(1982年11月)当时并没有考虑网络安全问题。因此,ARP协议没有安全验证机制,存在ARP欺骗和攻击等问题 -
ARP高速缓存表用来记录 IP 地址与 MAC 地址的对应关系
工作原理
-
请求广播:
-
当一个设备(发送方)需要发送数据包给另一个设备(目标方)时,它首先检查本地ARP缓存中是否有目标方的MAC地址。
-
如果没有,发送方会广播一个ARP请求,ARP请求报文包含发送方的IP地址和MAC地址,以及目标方的IP地址。
-
主机A 发送广播 ARP 请求:
![![[ARP广播请求.png]]](https://i-blog.csdnimg.cn/direct/c5d761faf7f34467bae07f1c9d36ce15.png)
-
主机A 想要与 主机B 通信,但它只知道 主机B 的 IP 地址(
192.168.0.2),不知道其 MAC 地址。 -
主机A 构造一个 ARP 请求报文,其中包含它自己的 IP 地址(
192.168.0.1)和 MAC 地址(00-0C-85-72-AB-72),以及它想知道的目标 IP 地址(192.168.0.2)。 -
这个 ARP 请求报文是一个广播报文(目的 MAC 地址设置为
FF-FF-FF-FF-FF-FF),它会被发送到同一个局域网(LAN)中的所有设备。
-
ARP响应:
-
网络上的所有设备都会收到广播ARP请求,网卡将广播帧交付上层处理,但只有目标方(即 IP 地址与 广播请求中的目的 IP 地址相同)会响应。
-
目标方检查请求中的 IP 地址是否与其自身的 IP 地址匹配,如果匹配,则发送一个ARP响应(单播,需要封装在以太网帧中发送),ARP响应报文包含目标方的MAC地址。
-
主机 B 单播 ARP 响应:
![![[单播ARP响应.png]]](https://i-blog.csdnimg.cn/direct/58890ea2d1f84d07a8d4580c5a91afd6.png)
-
主机B 看到 ARP 请求中的目标 IP 地址是自己,于是构建一个 ARP 响应报文,其中包括它自己的 IP 地址(
192.168.0.2)和 MAC 地址(00-E0-F9-A3-43-77)。 -
主机B 将这个 ARP 响应报文单播发送回 主机A,而不像
ARP请求那样是广播。
-
更新ARP缓存:
- 发送方收到ARP响应后,将目标方的IP地址和MAC地址的对应关系存储在本地ARP缓存中。
更新 ARP 缓存:
![![[更新ARP缓存.png]]](https://i-blog.csdnimg.cn/direct/becf4a7992304e13b57f73d119622a13.png)
- 主机A 接收到 主机B 的 ARP 响应后,就会将 主机B 的 IP 地址和 MAC 地址记录在其 ARP 高速缓存表中,这样以后就可以直接用 MAC 地址与 主机B 通信,而不需要再次广播 ARP 请求。
通过这个过程,主机A 成功获得了 主机B 的 MAC 地址,从而能够在局域网中实现两台设备间的通信。
ARP高速缓存表
ARP高速缓存表(ARP Cache)是一个临时表,用于存储最近IP地址到硬件地址(即MAC地址)之间的映射记录。这个缓存表对于提高网络通信效率非常重要,因为它允许设备在发送数据前快速查找目标设备的MAC地址,而无需每次都进行ARP请求。
ARP 高速缓存表中的记录分为动态记录和静态记录:
-
动态记录:由主机通过 ARP 协议自动获取到的,随时间推移自动添加和删除。因为ARP高速缓存表中的IP地址与MAC地址的对应关系并不是永久不变的。例如,主机更换了一块新网卡。
-
当设备需要解析一个 IP 地址到 MAC 地址的映射时,如果 ARP 缓存表中不存在这个映射,设备会发送 ARP 请求并等待响应。一旦收到响应,这个映射就会被添加到 ARP 缓存表中。
-
每个动态 ARP 缓存项都有一个生存时间(
TTL,Time to Live)(默认为两分钟),当 TTL 为 0 时,这个缓存项就会被删除。在 Windows 系统中,TTL通常不超过 10 分钟。
-
-
静态记录:静态 ARP 缓存条目是永久性的,不会随时间自动删除。这些条目可以通过 TCP/IP 工具手动添加和删除。静态 ARP 缓存条目通常用于禁止节点发送对常用本地 IPv4 地址(如路由器和服务器的 IPv4 地址)的 ARP 请求。不同操作系统下的生命周期不同,例如系统重启后不存在或系统重启后依然有效。
相关文章:
计算机网络:网络层 —— IPv4 地址与 MAC 地址 | ARP 协议
文章目录 IPv4地址与MAC地址的封装位置IPv4地址与MAC地址的关系地址解析协议ARP工作原理ARP高速缓存表 IPv4地址与MAC地址的封装位置 在数据传输过程中,每一层都会添加自己的头部信息,最终形成完整的数据包。具体来说: 应用层生成的应用程序…...
PMP--一、二、三模、冲刺、必刷--分类--10.沟通管理--技巧--文化意识
文章目录 技巧一模10.沟通管理--1.规划沟通管理--文化意识--军事背景和非军事背景人员有文化差异文化意识:题干关键词 “两拨人的背景不同、文化差异、风格差异”。5、 [单选] 项目团队由前军事和非军事小组成员组成。没有军事背景的团队成员认为前军事团队成员在他…...
FileReader和FileWriter
FileReader 使用read()方法读取单个字符,下面是如何修改使程序性能更好的过程。 第一种:处理异常方式为throws Testpublic void test() throws IOException {//读取hello.txt,并显示内容// 创建文件对象File file new File("hello.txt…...
【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第六篇-阶段总结篇】
因为马上就要进入下一个阶段,制作动态编辑体积纹理的模块。 但在这之前,要在这一章做最后一些整理。 首先,我们完成没完成的部分。其次,最后整理一下图表。最后,本文附上正在用的贴图 完善Shader 还记得我们之前注…...
地球村上一些可能有助于赚钱的20个思维方式
地球村上一些可能有助于赚钱的20个思维方式: 1. 目标导向思维:明确自己的财务目标,并制定详细、可执行的计划来逐步实现。 2. 创新思维:不断寻求新的商业机会和独特的解决方案,以在竞争激烈的市场中脱颖而出。 3. 价值…...
0基础入门matlab
目录 一、命令 二、变量命名 三、数据类型 数字 字符和字符串 矩阵 rand、randi和randn的区别? 元胞数组和结构体 MAGIC 结构体 四、矩阵构造、四则运算、矩阵下标 五、MATLAB逻辑与流程控制 六、MATLAB绘图 二维平面绘图 三维平面绘图 导出图片 内…...
【前端】实操tips集合
1. 关闭vue中组件名字的多词校验 (1) package.json文件中修改eslint配置 "eslintConfig": {"rules": {"vue/multi-word-component-names":"off" }}, (2).eslintrc.js或者.eslintrc配置文件中进行配置 modu…...
基于Springboot+Vue 传统文化管理系统(源码+LW+部署讲解+数据库+ppt)
!!!!!!!!! 会持续一直更新下去 有问必答 一键收藏关注不迷路 源码获取:https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwdjf1d 提取码: jf1d &#…...
质量漫谈一
我知道很多同学看到这类问题,第一反应想要去寻找的就是作为测试角色,应该要如何如何去做?但是今天这里作为质量第一篇,不打算按照这样单角度去写,这类同学可以就此打住,如果在意的话,可关注后续…...
个体化神经调控 Neurolnavigation介绍
神经调控技术包括DBS, TMS, rTMS, tDCS等等。今天主要说一下TMS。 TMS全程经颅磁刺激,通过对头皮放置磁场线圈,可以定向的往局部头皮发送脉冲信号,抑制局部神经元活动。 TMS的优点是精准刺激,tDCS的优点是刺激范围比较宽泛。近期有…...
02-RT1060 双ADC采样+eDMA传输
RT1060-双ADC+eDMA外设的配合使用 该项目是基于MIMXRT1060-EVKB官方开发板编写的驱动。 一、头文件包含介绍 #include "pin_mux.h" #include "clock_config.h" #include "board.h" #include "fsl_adc.h" #include "fsl_adc_et…...
单值集合总复习
1:Object类的核心方法复习 Object 是所有类【引用数据类型】的 直接 / 间接 父类 toString(): 将一个 引用数据类型的对象 转换成 String 类型 class Object{//Sun //toString()不需要参数:将一个对象转换成字符串 将调用者转换成字符串 public String …...
Pyside6 布局管理器(4)--- QGridLayout的使用
一、QGridLayout的介绍(官翻) QGridLayout 获得可用的空间(由其父布局或 parentWidget() 提供),将其划分为行和列,并将其管理的每个小部件放入正确的单元格中。 列和行的行为是相同的;我们将…...
从GPT定制到Turbo升级再到Assistants API,未来AI世界,你准备好了吗?
引言 在OpenAI DevDay发布会上,OpenAI再次震撼整个人工智能行业,为AI领域带来了重大的更新。CEO Sam Altman宣布推出了定制版本的ChatGPT,这意味着用户现在可以根据自己的需求打造个性化的GPT,并分享至GPT Store。这一消息对于受…...
「漏洞复现」BladeX企业级开发平台 tenant/list SQL 注入漏洞复现(CVE-2024-33332)
0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…...
基于SSM的消防物资存储系统【附源码】
基于SSM的消防物资存储系统 效果如下: 用户功能界面 仓库管理界面 物资入库管理界面 物资出库管理界面 物资详情管理界面 报警通知管理界面 安全检查提醒管理界面 管理员功能界面 研究背景 21世纪,我国早在上世纪就已普及互联网信息,互联网…...
Pseudo Multi-Camera Editing 数据集:通过常规视频生成的伪标记多摄像机推荐数据集,显著提升模型在未知领域的准确性。
2024-10-19,由伊利诺伊大学厄巴纳-香槟分校和香港城市大学的研究团队提出了一种创新方法,通过将常规视频转换成伪标记的多摄像机视角推荐数据集,有效解决了在未知领域中模型泛化能力差的问题。数据集的创建,为电影、电视和其他媒体…...
认识一下 Mochi-1--最新的免费开源人工智能视频模型
Genmo 是一家专注于视频生成的人工智能公司,该公司宣布发布 Mochi 1 的研究预览版。Mochi 1 是一种新的开源模型,可根据文本提示生成高质量视频,其性能可与 Runway 的 Gen-3 Alpha、Luma AI 的 Dream Machine、Kuaishou 的 Kling、Minimax 的…...
Spring 的事务传播机制
Spring 的事务传播机制定义了一个事务方法在遇到已经存在的事务时如何处理。事务传播属性(Propagation)提供了七种机制,以适应不同的业务需求和事务边界管理。 1. Spring 的事务传播机制的类型 (1)REQUIREDÿ…...
线性代数(1)——线性方程组的几何意义
线性代数的基本问题是求解个未知数的个线性方程; 例如:(方程1)。 在线性代数的第一讲中,我们从Row Picture、Column Picture、Matrix Picture三个角度来看这个问题。 上面的系统是二维的。通过添加第三个变量&#…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
rm视觉学习1-自瞄部分
首先先感谢中南大学的开源,提供了很全面的思路,减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接:https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架: 代码框架结构:readme有…...
基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)
注:文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件:STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...
