
🎬 个人主页 :艾莉丝努力练剑
❄专栏传送门 :《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》
《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》
⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平
🎬 艾莉丝的简介:

文章目录
- 前言
- [1 ~> ARP 协议](#1 ~> ARP 协议)
-
- [1.1 ~> ARP 协议分层定位](#1.1 ~> ARP 协议分层定位)
-
- [1.1.1 ~> 层级归属细节](#1.1.1 ~> 层级归属细节)
- [1.1.2 ~> 协议适用范围](#1.1.2 ~> 协议适用范围)
- [1.2 ~> ARP 协议核心作用](#1.2 ~> ARP 协议核心作用)
- [1.3 ~> ARP 基础工作原理](#1.3 ~> ARP 基础工作原理)
-
- [1.3.1 ~> 生活化类比拆解原理](#1.3.1 ~> 生活化类比拆解原理)
- [1.3.2 ~> 原理关键结论](#1.3.2 ~> 原理关键结论)
- [1.4 ~> ARP + 以太网整体帧结构](#1.4 ~> ARP + 以太网整体帧结构)
-
- [1.4.1 ~> 14 字节以太网首部(外层信封,数据链路层硬件解析)](#1.4.1 ~> 14 字节以太网首部(外层信封,数据链路层硬件解析))
- [1.4.2 ~> 28 字节 ARP 载荷(内层信纸,操作系统 ARP 程序解析)](#1.4.2 ~> 28 字节 ARP 载荷(内层信纸,操作系统 ARP 程序解析))
- [1.4.3 ~> 双层 MAC 地址重复的设计原因](#1.4.3 ~> 双层 MAC 地址重复的设计原因)
- [1.5 ~> ARP 请求、应答全交互流程](#1.5 ~> ARP 请求、应答全交互流程)
-
- [1.5.1 ~> ARP 请求报文封装与全网广播](#1.5.1 ~> ARP 请求报文封装与全网广播)
- [1.5.2 ~> 局域网主机处理请求报文](#1.5.2 ~> 局域网主机处理请求报文)
- [1.5.3 ~> ARP 应答报文封装与单播发送](#1.5.3 ~> ARP 应答报文封装与单播发送)
- [1.5.4 ~> 应答报文局域网转发与源主机收尾](#1.5.4 ~> 应答报文局域网转发与源主机收尾)
- [1.5.5 ~> 两种丢包层级核心区分](#1.5.5 ~> 两种丢包层级核心区分)
- [1.6 ~> ARP 本地缓存机制](#1.6 ~> ARP 本地缓存机制)
-
- [1.6.1 ~> 缓存设计目的](#1.6.1 ~> 缓存设计目的)
- [1.6.2 ~> 全平台 ARP 缓存默认老化时间](#1.6.2 ~> 全平台 ARP 缓存默认老化时间)
- [1.6.3 ~> ARP 缓存无法永久保存的原因](#1.6.3 ~> ARP 缓存无法永久保存的原因)
- [1.6.4 ~> 缓存查看系统命令](#1.6.4 ~> 缓存查看系统命令)
- [1.7 ~> 实操:批量获取局域网全部在线主机 MAC 地址](#1.7 ~> 实操:批量获取局域网全部在线主机 MAC 地址)
-
- [1.7.1 ~> 实操原理](#1.7.1 ~> 实操原理)
- [1.7.2 ~> 网段落地实操](#1.7.2 ~> 网段落地实操)
- [1.7.3 ~> 云服务器网段差异化说明](#1.7.3 ~> 云服务器网段差异化说明)
- [1.7.4 ~> ARP 跨网段触发拓展](#1.7.4 ~> ARP 跨网段触发拓展)
- [1.8 ~> RARP 逆地址解析协议](#1.8 ~> RARP 逆地址解析协议)
-
- [1.8.1 ~> 协议功能](#1.8.1 ~> 协议功能)
- [1.8.2 ~> 应用场景与现状](#1.8.2 ~> 应用场景与现状)
- [1.9 ~> ARP 欺骗(中间人网络攻击)](#1.9 ~> ARP 欺骗(中间人网络攻击))
-
- [1.9.1 ~> 攻击底层漏洞根源](#1.9.1 ~> 攻击底层漏洞根源)
- [1.9.2 ~> 单向欺骗:定向断网攻击](#1.9.2 ~> 单向欺骗:定向断网攻击)
- [1.9.3 ~> 双向中间人流量劫持攻击](#1.9.3 ~> 双向中间人流量劫持攻击)
- [1.10 ~> ARP协议知识图谱](#1.10 ~> ARP协议知识图谱)
- [2 ~> 拓展](#2 ~> 拓展)
-
- [2.1 浏览器输入www.baidu.com(https://www.baidu.com)访问百度首页全链路 ARP 协同逻辑](#2.1 浏览器输入www.baidu.com访问百度首页全链路 ARP 协同逻辑)
- [3 ~> 总结](#3 ~> 总结)
- 结尾

前言
导入语
本文围绕计算机网络数据链路层核心协议 ARP 展开系统性梳理,作为衔接网络层与数据链路层的过渡协议,摒弃生硬的协议条文罗列,依托教室点名寻址、日常邮寄信件、家庭宽带组网、ping 探测局域网终端等生活化实例,循序渐进拆解 ARP 分层定位、地址映射功能、以太网 + ARP 双层报文结构、请求应答完整交互流程、系统 ARP 缓存生命周期、主机命令实操查询局域网 MAC、RARP 逆地址解析补充知识、ARP 中间人欺骗攻击原理。日常在浏览器输入www.baidu.com打开百度首页,数据包从本机向外转发的首个环节就依赖 ARP 协议获取网关 MAC 地址,是全网跨主机数据互通不可或缺的底层支撑。全文完整收录以太网帧字节长度、协议固定字段参数、全平台 ARP 缓存老化时长、Windows/Linux 实操命令、攻击原理等全部复习要点,可作为面试备考、课程期末复习的权威参考资料。
思维导图

1 ~> ARP 协议
1.1 ~> ARP 协议分层定位
1.1.1 ~> 层级归属细节
ARP 无法被单一划分至网络层或数据链路层,从宏观协议归类角度属于数据链路层协议,在协议封装结构上处在 MAC 帧上层,和 MAC 帧构成同模块上下层级关系;协议运行全程不会和用户应用进程直接交互,IP 与 MAC 的地址映射管理工作由操作系统内核自主完成。
1.1.2 ~> 协议适用范围
ARP 是基于局域网广播机制设计的二层协议,原生依托以太网物理广播特性完成报文交互;跨广域网的数据传输过程中,每一台中转路由设备获取下一跳 IP 后,依旧会在对应接口所在局域网触发 ARP 解析,并非只在目标主机所处子网才发起 ARP。
1.2 ~> ARP 协议核心作用
网络通信场景中,上层应用程序仅能解析目标主机 IP 地址与应用端口号,无法识别网卡硬件 MAC 地址;网卡接收数据帧时会优先校验帧头部目的 MAC,MAC 和本机硬件地址不匹配的数据包会被网卡直接丢弃,ARP 的核心作用就是在正式数据传输前,建立IP 逻辑地址与 MAC 物理地址的映射对照表,补齐二层寻址必需的硬件地址信息。
1.3 ~> ARP 基础工作原理
1.3.1 ~> 生活化类比拆解原理
采用教室场景类比完整还原 ARP 逻辑:发起通信的主机类比讲课讲师,目标主机类比学生张三,IP 对应人名、MAC 对应学号。讲师只知道姓名(IP)不知道学号(MAC),在教室全范围广播喊话寻找张三,全班所有学生(局域网所有主机)全部收到广播报文;非张三的学生核对身份后忽略报文,仅张三以一对一私聊的形式回复自身学号;讲师拿到学号后即可点对点传输数据,完整流程对应 ARP:广播发送 ARP 请求→单播回复 ARP 应答→正常业务数据传输。
1.3.2 ~> 原理关键结论
所有 ARP 报文不能裸包在局域网传输,必须整体封装进 MAC 帧载荷字段,依托数据链路层帧结构完成物理传输。
1.4 ~> ARP + 以太网整体帧结构
完整数据帧由三段组成:14 字节以太网首部、28 字节 ARP 请求 / 应答载荷、尾部 4 字节 CRC 帧校验序列,CRC 由网卡硬件自动生成与校验,用于检测传输过程中比特位损坏、数据失真问题。
1.4.1 ~> 14 字节以太网首部(外层信封,数据链路层硬件解析)
字段固定拆分:目的 MAC 地址 6 字节 + 源 MAC 地址 6 字节 + 帧类型 2 字节
- 目的 MAC:ARP 请求报文填写全 F 广播地址
FF:FF:FF:FF:FF:FF;ARP 应答填写请求主机的真实单播 MAC; - 源 MAC:固定填充当前发送主机自身网卡 MAC 地址;
- 帧类型:标识上层载荷协议,ARP 固定
0x0806,普通 IP 报文固定0x0800。
1.4.2 ~> 28 字节 ARP 载荷(内层信纸,操作系统 ARP 程序解析)
该部分是 ARP 协议本体,以太网 + IPv4 环境下所有字段长度、默认参数固定:
- 硬件类型 (2B):链路层硬件类型,以太网固定数值 1,更换令牌环、无线 LAN 后字段数值变更;
- 协议类型 (2B):待映射上层地址类型,IPv4 固定
0x0800; - 硬件地址长度 (1B):MAC 地址字节数,以太网固定 6;
- 协议地址长度 (1B):IPv4 地址字节数,固定 4;
- op 操作码 (2B):报文类型标识,op=1 代表 ARP 请求报文,op=2 代表 ARP 应答报文,所有主机解析 ARP 报文优先读取 op 字段;
- 发送端 MAC (6B)+ 发送端 IP (4B):始终填充发送主机本机的硬件地址与逻辑 IP;
- 目的 MAC (6B)+ 目的 IP (4B):请求报文目的 MAC 全填充 0,目的 IP 填写待查询目标 IP;应答报文目的 MAC 填写请求方真实 MAC,目的 IP 同步填充请求方 IP。
1.4.3 ~> 双层 MAC 地址重复的设计原因
以太网环境下以太网首部 MAC 和 ARP 载荷内部 MAC 数据重复看似冗余,本质是协议为兼容令牌环等非以太网异构网络,异构链路中两处 MAC 字段作用不一致无法省略;同时遵循计算机网络分层思想做拆分:
- 交换机、网卡等链路层硬件仅解析外层以太网首部,无法解析内部 ARP 载荷数据;
- 操作系统收到数据包后剥离以太网头部,仅提取内层 28 字节 ARP 数据用于更新本机 ARP 缓存。
1.5 ~> ARP 请求、应答全交互流程
以主机 R 访问同网段主机 E 为例,R 已知 E 的 IP、无 E 的 MAC 缓存条目,完整触发一次标准 ARP 交互。
1.5.1 ~> ARP 请求报文封装与全网广播
- 组装 ARP 载荷:硬件类型 1、协议
0x0800、地址长度 6/4、op=1,发送端写入 MACR、IPR,目的 IP 填 IPE、目的 MAC 全 0 填充; - 封装以太网帧:首部目的 MAC 为全 F 广播,源 MAC=MACR,帧类型
0x0806,尾部附加硬件 CRC 校验; - 整帧在局域网广播,网段内所有主机网卡接收该数据帧。
1.5.2 ~> 局域网主机处理请求报文
所有主机网卡匹配广播 MAC 收下帧,剥离以太网头部后把 ARP 数据交给本机 ARP 模块,优先读取 op 字段确认是请求报文:
- 同网段 B/C 等无关主机:对比 ARP 载荷内目的 IP 和本机 IP 不一致,在ARP 协议应用层丢弃报文;
- 目标主机 E:目的 IP 与本机 IP 匹配,保留报文并构造应答数据包。
1.5.3 ~> ARP 应答报文封装与单播发送
- 组装 ARP 载荷:op 修改为 2 应答码,发送端填充 MACE、IPE,目的字段填写请求方 MACR、IPR;
- 外层以太网首部修改:目的 MAC 改为 MACR(单播地址),源 MAC=MACE,帧类型保持
0x0806,追加 CRC 校验; - 封装完成后以单播形式向局域网发送。
1.5.4 ~> 应答报文局域网转发与源主机收尾
- B/C 无关主机:网卡校验外层目的 MAC 和本机不匹配,在数据链路 MAC 层直接丢弃整帧;
- 源主机 R 网卡匹配 MAC 收下数据,剥离帧头读取 ARP 载荷,提取 MACE 与 IPE 的映射关系写入本地 ARP 缓存。
1.5.5 ~> 两种丢包层级核心区分
ARP 请求阶段无关终端:在内层 ARP 应用层丢弃报文(依据载荷目的 IP 判断) ; ARP 应答阶段无关终端:在外层数据链路 MAC 层丢弃报文(依据帧头目的 MAC 判断)。
1.6 ~> ARP 本地缓存机制
1.6.1 ~> 缓存设计目的
ARP 成功解析 IP-MAC 映射后存入系统 ARP 缓存表,后续同一 IP 发起通信时直接查表获取 MAC,不用反复发送 ARP 广播,减少局域网广播风暴、节约带宽资源。
1.6.2 ~> 全平台 ARP 缓存默认老化时间
- Windows (Vista 及以上版本):基准 30 秒,随机 0.5\1.5 倍浮动,实际生效区间 15\45s,过期条目标记 Stale,再次访问时重新触发 ARP 解析;
- Windows XP/Server2003:缓存时效由注册表
ArpCachelife参数自定义配置; - Linux 系统:基准 30 秒,随机扰动后时效 15~45 秒,过期 Stale 条目不会立刻从缓存删除;
- Cisco 交换机、路由器:默认老化 4 小时,附加 0~30 分钟随机抖动,大幅降低 ARP 广播频次;
- 锐捷等国产网络设备:默认缓存超时 1 小时 (3600s);
- RFC 官方标准文档:推荐缓存 20 分钟,目前商用操作系统基本不再遵循该标准。
1.6.3 ~> ARP 缓存无法永久保存的原因
- 局域网终端 IP 大多由 DHCP 动态分配,IP 地址会随租期到期、设备重连发生变更;
- 主机更换物理网卡、设备关机下线,原有 MAC 地址失效作废;
- 云主机、服务器场景域名固定,但公网出口 IP 存在动态切换场景,旧 IP-MAC 映射失效。
1.6.4 ~> 缓存查看系统命令
- Windows CMD 终端:
arp -a查看本机全量 ARP 缓存列表; - Linux 终端:
arp -a查看缓存,ifconfig查看本机网卡 IP、子网掩码、硬件 MAC。
1.7 ~> 实操:批量获取局域网全部在线主机 MAC 地址
1.7.1 ~> 实操原理
ping指令发送 ICMP 探测包前,操作系统自动检索 ARP 缓存,无对应 MAC 条目则主动发送 ARP 请求,目标主机回复 ARP 应答后,IP-MAC 映射自动写入本地缓存,后续通过 arp 命令批量导出 MAC 数据。
1.7.2 ~> 网段落地实操
示例网段192.168.100.0/24,子网掩码255.255.255.0,可用主机 IP 范围 <192.168.100.1>~<192.168.100.254>;实操步骤:
- Linux 使用
ping -c1 目标IP(-c1 代表仅发送 1 个探测包)、Windows 直接执行ping IP地址循环遍历网段 IP; - ping 连通后执行
arp -a,缓存自动写入在线主机 IP 与对应 MAC; - 原笔记实操案例:ping
192.168.100.239连通后,arp 缓存出现 MAC00-15-5d-62-be-09,即为目标教学服务器硬件地址。
1.7.3 ~> 云服务器网段差异化说明
云服务器普遍使用 / 16 大网段(子网掩码 <255.255.0.0>),可用 IP 数量远大于 / 24 网段,批量遍历探测需要覆盖更大 IP 区间。
1.7.4 ~> ARP 跨网段触发拓展
ARP 不只在目标主机子网触发,跨网段访问外网时,本机查询路由表得到网关 IP,会对网关 IP 发起 ARP;运营商骨干网路由转发数据包时,依据路由表下一跳 IP,在对应接口网段随时发起 ARP 解析。
1.8 ~> RARP 逆地址解析协议
1.8.1 ~> 协议功能
RARP 全称反向地址解析协议,功能和 ARP 完全反向:ARP = 已知 IP 查 MAC,RARP = 已知 MAC 查询对应 IP 地址。
1.8.2 ~> 应用场景与现状
RARP 诞生于早期无盘工作站时代,无盘主机无本地硬盘无法存储 IP 配置,开机携带本机 MAC 向局域网 RARP 服务器申请分配 IP;现代 DHCP 动态地址分配协议全面替代 RARP,现网环境基本淘汰,仅作为理论知识点记忆。
1.9 ~> ARP 欺骗(中间人网络攻击)
1.9.1 ~> 攻击底层漏洞根源
操作系统 ARP 缓存只会保留最新收到的 IP-MAC 映射记录,系统不会校验 ARP 报文来源合法性,收到伪造的非法 ARP 应答报文会无条件覆盖原有缓存条目,该缺陷是 ARP 欺骗能够实现的核心前提。
1.9.2 ~> 单向欺骗:定向断网攻击
攻击者主机 M 持续向终端 A 发送伪造 ARP 报文:声明网关 IP (IPR) 对应的 MAC 是攻击者 MAC (MACM),终端 A 收到报文后刷新 ARP 缓存,网关 IP 错误绑定攻击者 MAC;终端 A 访问外网的所有数据包全部转发至 M,攻击者直接丢弃数据包即可造成目标主机断网。
1.9.3 ~> 双向中间人流量劫持攻击
攻击者 M 同时向通信两端伪造两份虚假 ARP 报文:
- 向内网主机 A 发送:网关 IP (IPR)→攻击者 MAC (MACM);
- 向出口网关 R 发送:主机 A 的 IP (IPA)→攻击者 MAC (MACM); 主机 A、网关 R 双方 ARP 缓存全部被篡改,A 和网关之间上下行全部流量经过 M 中转,攻击者可静默抓取全部明文传输数据,实现中间人窃听。
1.10 ~> ARP协议知识图谱

2 ~> 拓展
2.1 浏览器输入www.baidu.com访问百度首页全链路 ARP 协同逻辑
- 浏览器提交域名请求,DNS 服务器完成域名解析,将域名
www.baidu.com转换为百度服务器公网 IP 地址; - 本机匹配本地路由表,确定外网数据需要转发至局域网网关 IP,检索 ARP 缓存,无网关 MAC 则发起 ARP 广播获取网关硬件地址;
- IP 数据包封装 MAC 帧转发至家用路由器,路由器剥离二层帧头、解封装 IP 报文,查询公网路由条目后从 WAN 口转发数据;
- 运营商骨干网跨省市路由转发,每一台中转路由设备查询路由表获取下一跳 IP,在对应接口网段按需触发 ARP 解析下一跳 MAC,逐跳转发至百度机房服务器;
- 百度服务器回包原路逐层路由转发,回程各路由节点同样按需执行 ARP 寻址,最终数据返回本机,浏览器接收数据渲染百度首页页面。
3 ~> 总结
本章节完整梳理数据链路层 ARP 全维度知识点,覆盖概念、帧结构、交互流程、缓存、实操、衍生 RARP、安全攻击七大核心板块,全部复习重难点汇总:
- 协议分层考点:ARP 宏观归属数据链路层,微观封装在 MAC 帧上层,处在二层与三层中间位置,任何 ARP 报文必须依托 MAC 帧完成局域网传输;
- 帧结构核心参数 :以太网首部固定 14 字节,ARP 帧类型标识
0x0806,ARP 载荷 28 字节,以太网硬件类型 = 1、IPv4 协议字段0x0800,op=1 请求、op=2 应答;请求报文外层目的 MAC 全 F 广播、内层目的 MAC 全 0 占位,应答报文内外目的 MAC 统一填写请求方 MAC;双层 MAC 重复是为兼容令牌环等异构网络,分层架构区分硬件解析、系统解析两个使用主体; - 收发流程易混点:ARP 请求全网广播,无关主机在内层 ARP 层丢弃报文;ARP 应答单播传输,无关主机在外层 MAC 链路层丢弃帧,丢包层级是考试高频易错考点;
- ARP 缓存考点 :分平台记忆各系统缓存老化时间,缓存不能永久保存三点诱因(DHCP 动态 IP、更换网卡、设备下线);实操牢记
arp -a、ifconfig、ping三条命令,ping 触发 ARP 是局域网批量扫 MAC 的实现原理;ARP 跨网段随时触发,路由下一跳 IP 同样需要 ARP 解析; - RARP 概念区分:反向 MAC 查 IP,仅用于早期无盘工作站,现网被 DHCP 淘汰;
- ARP 欺骗安全重点:漏洞根源是 ARP 缓存无合法性校验、自动刷新最新映射,单向伪造实现终端断网,双向伪造完成中间人流量劫持窃密,是网络安全经典攻击模型;
- 工程落地串联:访问百度全链路串联 DNS 域名解析、路由寻址、ARP 二层寻址三类协议,直观体现 ARP 在互联网数据传输里的底层支撑地位。
结尾
uu们,本文的内容到这里就全部结束了,艾莉丝在这里再次感谢您的阅读!
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ### 艾莉丝努力练剑 C/C++ & Linux 底层探索者 | 一个正在努力练剑的技术博主 *** ** * ** *** 👀 【关注】 跟随我一起深耕技术领域,见证每一次成长。 ❤️ 【点赞】 让优质内容被更多人看见,让知识传递更有力量。 ⭐ 【收藏】 把核心知识点存好,在需要时随时查、随时用。 💬 【评论】 分享你的经验或疑问,评论区一起交流避坑! 不要忘记给博主"一键四连"哦! "今日练剑达成!"
"技术之路难免有困惑,但同行的人会让前进更有方向。" |
结语:希望对学习Linux相关内容的uu有所帮助,不要忘记给博主"一键四连"哦!
往期回顾:
【Linux网络】数据链路层协议(一):MAC 帧 + ARP
🗡博主在这里放了一只小狗,大家看完了摸摸小狗放松一下吧!🗡 ૮₍ ˶ ˊ ᴥ ˋ˶₎ა
