ARP 协议超详细讲解

news2026/4/1 21:40:34
前言网络设备有数据要发送给另一台网络设备时必须要知道对方的网络层地址即IP地址。IP地址由网络层来提供但是仅有IP地址是不够的IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP 协议Address Resolution Protocol 地址解析协议协议来实现的。ARP 协议Address Resolution Protocol 地址解析协议它是网络层和数据链路层之间的 “桥梁”也是我们理解局域网通信的关键。一、为什么需要 ARP 协议网络设备之间传输数据要经过分层封装网络层会给数据加上 IP 地址源 IP、目的 IP但数据最终要通过数据链路层的帧在物理网络中传输而数据帧必须包含目的 MAC 地址才能准确送达。简单说IP 地址相当于设备的 “网络身份证”告诉数据 “要去哪台设备”MAC 地址相当于设备的 “物理身份证”告诉数据 “在局域网里怎么找到这台设备”。ARP 协议的核心作用根据目的 IP 地址获取对应的目的 MAC 地址让数据能完成帧的封装顺利在数据链路层传输。二、ARP 协议的核心工作过程为了方便理解我们用一个经典场景举例主机 AIP10.0.0.1/24MAC00-01-02-03-04-AA主机 CIP10.0.0.3/24MAC00-01-02-03-04-CC主机 A 要给主机 C 发送数据此时知道目的 IP但不知道目的 MACARP 协议开始工作。整个过程分为ARP 请求和ARP 响应两步核心记住请求广播响应单播。1.第一步ARP 请求广播主机 A 在自己的ARP 缓存表中查询 10.0.0.3 对应的 MAC发现没有记录于是发送ARP 请求报文数据链路层封装源 MAC 主机 A 的 MAC目的 MACFF-FF-FF-FF-FF-FF广播地址这意味着局域网内所有设备都会收到这个报文ARP 报文内容源 IP10.0.0.1源 MAC00-01-02-03-04-AA目的 IP10.0.0.3目的 MAC00-00-00-00-00-00未知操作类型 Request请求。局域网内的主机 B、C 都会收到这个广播但只有主机 C 发现目的 IP 和自己的 IP 一致会处理这个请求其他设备直接丢弃。2.第二步ARP 响应单播主机 C 处理 ARP 请求后会做两件事再发送ARP 响应报文主机 C 先把主机 A 的 IP 和 MAC 对应关系写入自己的 ARP 缓存表动态方便后续给主机 A 发数据发送 ARP 响应报文数据链路层封装目的 MAC 主机 A 的 MAC单播ARP 报文内容为源 IP10.0.0.3源 MAC00-01-02-03-04-CC目的 IP10.0.0.1目的 MAC 主机 A 的 MAC操作类型 Reply响应。3.最终结果主机 A 收到 ARP 响应后将主机 C 的 IP 和 MAC 对应关系写入自己的 ARP 缓存表此时主机 A 已经获取到目的 MAC就能完成数据帧的封装给主机 C 发送数据了。三、ARP 缓存表是什么有什么用1. 核心定义ARP 缓存表是设备本地的一张临时映射表记录了局域网内其他设备的IP 地址 - MAC 地址对应关系分为动态条目和静态条目本文重点讲动态。2. 关键作用避免每次通信都发送 ARP 请求提高通信效率。比如主机 A 第一次和主机 C 通信后缓存表中有了对应记录后续短时间内再次通信直接查缓存表即可无需再广播请求。3. 查看方式Windows/Linux 通用在命令行中输入以下命令就能查看本地的 ARP 缓存表查询结果会显示Internet AddressIP 地址、Physical AddressMAC 地址、Type类型动态 Dynamic / 静态 Static。4. 重要特性动态 ARP 条目有过期时间一般几分钟过期后会被自动删除目的是为了适应局域网内设备的 IP/MAC 变更比如设备重启、更换网卡保证缓存表的准确性。四、ARP 协议的两个重要扩展ARP 代理 免费 ARP除了基础的请求和响应ARP 还有两个非常实用的扩展功能也是面试中常考的点新手小伙伴先理解核心作用即可。1. ARP 代理跨网段通信的 “中间人”核心场景位于不同网络的设备在未配置网关的情况下想要相互通信就需要 ARP 代理。工作原理ARP 代理一般由路由器实现路由器作为两个网段的 “中间人”代替目的设备回应 ARP 请求网段 1 的主机 A 想给网段 2 的主机 B 发数据发送 ARP 请求查询主机 B 的 MAC连接两个网段的路由器收到请求后发现目的 IP 属于另一个网段于是以自己的 MAC 地址作为响应发送 ARP Reply 给主机 A主机 A 将路由器的 MAC 写入缓存表后续给主机 B 的所有数据都会先发送到路由器再由路由器转发到网段 2 的主机 B。简单说ARP 代理让跨网段设备 “以为” 对方就在同一局域网实际由路由器完成数据转发。2. 免费 ARPIP 地址冲突检测核心作用探测当前局域网内自己的 IP 地址是否被其他设备占用是设备开机或配置 IP 后自动执行的操作。工作原理免费 ARP 是一种特殊的 ARP 请求报文有两个关键特征源 IP 目的 IP 本机的 IP 地址目的 MAC 广播地址FF-FF-FF-FF-FF-FF局域网内所有设备都能收到。结果判断如果局域网内没有其他设备使用该 IP则没有设备响应本机确定 IP 可用如果有设备使用该 IP则该设备会发送 ARP 响应本机就能检测到IP 地址冲突并给出提示。五、核心问题看完上面的内容我们回答两个核心问题也是理解 ARP 的关键1. 网络设备什么时候会发送 ARP Request当设备需要给其他设备发送数据知道目的 IP但在 ARP 缓存表中没有找到对应的目的 MAC 地址时就会发送 ARP 请求广播。2. 网络设备什么时候会产生免费 ARP设备开机初始化、手动配置 / 修改 IP 地址后会自动发送免费 ARP用于探测 IP 地址是否冲突。注意ARP 报文不能穿越路由器不能被转发到其他广播域这也是为什么局域网内的 ARP 请求是广播却不会影响其他网段的设备 —— 路由器会直接丢弃 ARP 广播报文保证了各广播域的独立性也避免了网络中出现大量 ARP 广播风暴。六、总结ARP 协议通过 “请求广播响应单播” 的方式实现 IP 地址到 MAC 地址的解析ARP 缓存表提高通信效率ARP 代理实现跨网段无网关通信免费 ARP 检测 IP 冲突且 ARP 报文无法跨广播域传输。对于新手来说先理解ARP 的核心工作过程和ARP 缓存表的作用就足够了后续学习 TCP/IP 协议栈、局域网故障排查时会对 ARP 有更深入的理解。如果这篇文章对你有帮助欢迎点赞 收藏后续会持续更新网络基础系列内容

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…