
🔥承渊政道: 个人主页
❄️个人专栏: 《C语言基础语法知识》 《数据结构与算法》 《C++知识内容》 《Linux系统与网络知识》 《算法刷题指南》 《测评文章活动推广》 《大模型语言路线学习》 《MySQL数据库学习》 《Python知识内容》 《cpolar知识学习》
✨逆境不吐心中苦,顺境不忘来时路!✨ 🎬 博主简介:

在Linux网络学习中,理解IP地址与路由,只是理解数据通信的一部分.数据要真正从一台主机传递到下一跳,还需要封装成帧,在本地链路上完成交付.知道目标 IP 地址后,主机如何确定接收方的 MAC 地址?访问其他网段时,为什么需要先获取网关的 MAC 地址? 这些问题,正是连接网络层与数据链路层的关键.在IPv4以太网环境中,ARP承担着地址解析的任务:主机查询本地缓存,在缺少可用映射时发送广播请求,通过应答获取地址映射,再用于后续通信.然而,如果这些映射被恶意伪造,原本发往目标主机或网关的数据,就可能被引向错误的设备.因此,理解ARP如何正常工作,也是理解ARP欺骗及其防护的前提 ,不能只停留在"广播请求、单播应答"的流程记忆上.本文将以 "链路通信 → 地址解析 → 缓存机制 → 欺骗原理与安全防护" 为主线,从数据链路层的职责、以太网帧结构与交换机转发入手,逐步分析 ARP 请求、应答及缓存更新过程,区分同网段通信与跨网段通信中的解析对象.随后结合抓包观察,讨论伪造映射如何影响通信,以及异常检测、关键映射绑定与交换机防护等应对思路,将协议原理与局域网故障排查、安全防护联系起来.

目录
一、数据链路层
数据链路层是OSI七层网络模型中的第2层,主要负责在同一条链路或局域网中,以"帧(Frame)"为单位传输数据.
简单理解:
- 物理层:负责把0和1变成电信号、光信号或无线信号.
- 数据链路层:负责把比特组织成帧,并将帧发送到对应的设备.
- 网络层:负责通过 IP 地址实现不同网络之间的数据传输.
1.数据链路层的位置

2.数据链路层的主要功能
| 功能 | 作用 |
|---|---|
| 封装成帧 | 将网络层的数据包封装为帧 |
| MAC 地址寻址 | 标识链路上的源设备和目标设备 |
| 差错检测 | 使用 CRC 等方法检测传输错误 |
| 介质访问控制 | 决定设备如何使用共享传输介质 |
| 流量控制 | 某些链路层协议支持控制发送速度 |
3.数据链路层如何工作?
假设电脑 A 要通过交换机给同一局域网的电脑 B 发送数据:

通信过程:
- 电脑 A 将 IP 数据包封装成以太网帧.
- 帧中包含源 MAC 地址和目的 MAC 地址.
- 交换机根据目的 MAC 地址和自己的 MAC 地址表转发帧.
- 电脑 B 接收帧,检查帧是否存在传输错误.
- 检查通过后,将其中的 IP 数据包交给网络层处理.
4.以太网帧的基本结构

5.数据链路层和网络层的区别
| 对比 | 数据链路层 | 网络层 |
|---|---|---|
| 所在层 | 第 2 层 | 第 3 层 |
| 数据单位 | 帧 Frame | 包 Packet |
| 寻址 | MAC 地址 | IP 地址 |
| 主要设备 | 交换机 | 路由器 |
| 核心任务 | 单条链路上的数据传输 | 跨网络寻址与路由 |
记忆口诀:
- 物理层:传比特.
- 数据链路层:传帧,认MAC.
- 网络层:传包,认IP.
- 传输层:传数据,认端口.
二、认识以太⽹
1.什么是以太网?
以太网(Ethernet)是一种应用广泛的有线局域网技术,主要用于实现计算机、交换机、路由器等设备之间的数据通信.
以太网遵循 IEEE 802.3 标准,主要涉及 OSI 模型中的数据链路层和物理层.
简单理解:以太网就是一套规定,告诉设备如何连接、如何封装数据,以及如何通过链路传输数据.
2.以太网的基本结构

在这个网络中:
- 电脑 A 和电脑 B 通过网线连接交换机.
- 交换机负责在局域网内转发以太网帧.
- 路由器负责连接不同网络,例如访问互联网.
3.以太网的核心知识
1.MAC 地址
以太网使用 MAC 地址标识网络接口.
例如:
00:1A:2B:3C:4D:5E
常见MAC地址长度为48位,即6字节.
当电脑A向电脑B发送以太网帧时,帧头中通常包含:
- 源 MAC 地址:电脑A的MAC地址.
- 目的 MAC 地址:电脑B的MAC地址.
2.以太网帧(Ethernet Frame)
以太网以帧作为数据传输单位.

其中:
- 目的 MAC:确定接收者.
- 源 MAC:标识发送者.
- 类型:表示承载的数据协议,例如IPv4.
- 数据:实际传输的内容.
- FCS:通过 CRC 检测帧是否发生传输错误.
3.以太网交换机
交换机是现代以太网中的重要设备.
它通过学习设备的源 MAC 地址,建立 MAC 地址表,并根据目的 MAC 地址决定从哪个端口转发数据.
例如:
| MAC 地址 | 交换机端口 |
|---|---|
| 电脑 A 的 MAC | 端口 1 |
| 电脑 B 的 MAC | 端口 2 |
| 电脑 C 的 MAC | 端口 3 |
当电脑 A 给电脑 B 发送数据时,交换机如果已经知道电脑 B 所在端口,就会将帧从端口 2 转发出去.
4.以太网的传输速率
| 以太网类型 | 典型速率 |
|---|---|
| 传统以太网 | 10 Mbps |
| 快速以太网 | 100 Mbps |
| 千兆以太网 | 1000 Mbps(1 Gbps) |
| 万兆以太网 | 10 Gbps |
| 更高速以太网 | 40、100、200、400 Gbps 等 |
注意:这些是链路标称速率,实际应用层传输速度通常会更低.
5.CSMA/CD 是什么?
CSMA/CD(载波监听多路访问/冲突检测)是一种传统以太网的介质访问控制机制.
它的工作思路是:
- 先监听信道是否空闲.
- 空闲时发送数据.
- 如果发生冲突,就停止发送.
- 等待随机时间后重新发送.
重点:CSMA/CD 主要用于早期共享介质、半双工以太网.现代交换式全双工以太网通常不会发生这种链路碰撞,因此不再需要使用 CSMA/CD.
6.以太网、Wi-Fi、互联网的区别
| 名称 | 主要作用 |
|---|---|
| 以太网 | 常见的有线局域网通信技术 |
| Wi-Fi | 基于 IEEE 802.11 的无线局域网技术 |
| 互联网 | 通过 IP 等协议连接起来的全球网络 |
以太网和 Wi-Fi 都可以作为接入互联网的方式,但它们本身不等于互联网.
2.1以太⽹帧格式

以太网帧(Ethernet Frame)是以太网进行数据传输的基本单位.可以把它理解为一个快递包裹:不仅包含需要传输的数据,还包含发送方、接收方以及用于检查数据是否出错的信息.
如图所示,一个标准的 Ethernet II 帧主要由五个部分组成:
- 目的地址(6 字节):记录接收设备的 MAC 地址,相当于快递的"收件人地址",用于确定数据发给谁.
- 源地址(6 字节):记录发送设备的 MAC 地址,相当于"寄件人地址",用于标识数据的发送方.
- 类型(2 字节):说明数据字段中封装的是什么协议.例如,
0x0800表示 IPv4,0x0806表示 ARP,0x8035表示 RARP. - 数据(46~1500 字节):存放真正需要传输的内容,例如 IP 数据报或 ARP 报文.如果数据不足46字节,需要添加填充字节(PAD).
- CRC/FCS(4 字节):用于差错检测,帮助接收设备判断帧在传输过程中是否发生错误.
为什么 ARP 报文需要填充 PAD?
以太网规定,普通 Ethernet II 帧的最小长度为 64 字节,最大长度通常为 1518 字节(不包含前导码和帧开始定界符,也不考虑VLAN标签).
以图中的 ARP 报文为例:
- ARP 报文本身占 28 字节.
- 以太网数据字段最少需要 46 字节.
- 因此需要填充
46 - 28 = 18字节.
这样,整个以太网帧的长度就是:
6 + 6 + 2 + 28 + 18 + 4 = 64 字节 6+6+2+28+18+4=\boxed{64\text{ 字节}} 6+6+2+28+18+4=64 字节
以太网帧的核心作用,就是将上层数据封装起来,并通过 MAC 地址实现链路层的数据传输.其中,目的地址和源地址用于标识通信双方,类型字段用于识别数据协议,数据字段负责承载内容,CRC/FCS 则负责差错检测.
理解以太网帧的结构,有助于进一步学习交换机转发原理、MAC 地址、ARP 协议等计算机网络知识.
2.2认识MAC地址
1.什么是 MAC 地址?
MAC 地址(媒体访问控制地址)是数据链路层用于标识网络接口的地址.
简单理解:MAC 地址就像网络设备的"身份标识",帮助局域网中的设备识别数据应该发送给谁.
例如,电脑、手机和交换机的网络接口都可能拥有 MAC 地址.
2.MAC 地址的格式
一个常见的 MAC 地址如下:

注意:图中是传统的全球管理单播 MAC 地址划分方式.现代设备也可能使用本地管理或随机生成的 MAC 地址,因此不能仅靠前三个字节判断厂商.
3.MAC 地址有什么作用?
假设电脑 A 要给同一个局域网中的电脑 B 发送数据:

具体过程:
- 电脑 A 将数据封装成以太网帧.
- 在帧头中填写源 MAC 地址(A)和目的 MAC 地址(B).
- 交换机根据目的 MAC 地址查找 MAC 地址表.
- 交换机将帧转发到电脑 B 对应的端口.
重点:交换机主要通过 MAC 地址来决定以太网帧从哪个端口转发.
4.MAC 地址的三种类型
| 类型 | 说明 | 示例 |
|---|---|---|
| 单播 MAC 地址 | 发送给一个指定网络接口 | 00:1A:2B:3C:4D:5E |
| 广播 MAC 地址 | 发送给局域网广播域中的所有设备 | FF:FF:FF:FF:FF:FF |
| 组播 MAC 地址 | 发送给指定的一组设备 | 01:00:5E:00:00:01 |
5.MAC 地址与 IP 地址的区别
| 对比 | MAC 地址 | IP 地址 |
|---|---|---|
| 所在层次 | 数据链路层 | 网络层 |
| 主要作用 | 链路层设备寻址 | 网络间寻址与路由 |
| 地址示例 | 00:1A:2B:3C:4D:5E |
192.168.1.10 |
| 地址长度 | 常见为 48 位 | IPv4 为 32 位,IPv6 为 128 位 |
| 是否可以变化 | 可以修改或随机化 | 可以手动配置或动态分配 |
| 典型设备 | 交换机 | 路由器 |
可以这样理解:
- IP 地址:告诉网络数据最终要到哪里.
- MAC 地址:告诉当前链路数据帧应该交给哪个网络接口.
如果目标设备不在本地网络,电脑一般会将以太网帧发送到默认网关的 MAC 地址,由路由器继续转发 IP 数据包.
6.如何查看自己电脑的 MAC 地址?
在 Windows 系统中:
- 按下
Win + R. - 输入
cmd,打开命令提示符. - 输入:
bash
ipconfig /all
找到网络适配器对应的"物理地址",例如:
00-1A-2B-3C-4D-5E
这就是该网络接口的 MAC 地址.
2.3对⽐理解MAC地址和IP地址
MAC 地址和 IP 地址都是网络通信中用于寻址的地址,但它们解决的问题不同.
- IP 地址:确定数据最终要发送到哪个网络设备.
- MAC 地址:确定数据帧在当前链路上应该交给哪个网络接口.
可以把网络通信想象成寄快递:IP地址相当于收件人的最终地址,MAC 地址相当于快递在当前运输环节的交接目标.
1.MAC 地址与 IP 地址的区别
| 对比项目 | MAC 地址 | IP 地址 |
|---|---|---|
| 所在层次 | 数据链路层(第 2 层) | 网络层(第 3 层) |
| 主要作用 | 当前链路上的帧寻址 | 跨网络寻址与路由 |
| 地址示例 | 00:1A:2B:3C:4D:5E |
192.168.1.10 |
| 地址长度 | 通常为 48 位 | IPv4 为 32 位,IPv6 为 128 位 |
| 地址分配 | 通常由厂商分配,也可修改或随机生成 | 手动配置或自动分配 |
| 主要使用设备 | 交换机 | 路由器 |
| 传输过程中 | 通常逐跳变化 | 通常保持不变(NAT 等情况除外) |
2.通过实际通信理解
假设电脑 A 要向另一个网络中的服务器 B 发送数据,中间需要经过路由器.

第一段:电脑 A → 路由器 R
电脑 A 发现服务器 B 不在自己的本地网络,因此先把数据帧交给默认网关(路由器R).
- 源 IP:电脑 A 的 IP
- 目的 IP:服务器 B 的 IP
- 源 MAC:电脑 A 的 MAC
- 目的 MAC:路由器 R 的 MAC
第二段:路由器 R → 服务器 B
路由器将 IP 数据包重新封装成适合下一条链路的数据帧.
- 源 IP:仍然是电脑 A 的 IP
- 目的 IP:仍然是服务器 B 的 IP
- 源 MAC:路由器发送接口的 MAC
- 目的 MAC:服务器 B 的 MAC
这里假设路由器与服务器 B 直接通过以太网连接,并且没有NAT.如果中间还有其他路由器,也会发生类似的逐跳封装过程.
观察发现:IP 地址通常不变,而 MAC 地址会随着经过的链路发生变化.
3.IP 地址和 MAC 地址如何配合?
在 IPv4 以太网中,常见的配合方式是:
- IP 地址确定最终目的设备以及下一跳.
- ARP 协议查询本地链路上下一跳对应的 MAC 地址.
- 将 IP 数据包封装成以太网帧.
- 交换机根据目的 MAC 地址转发帧.
- 路由器根据目的 IP 地址决定下一步转发方向.
2.4认识MTU
1.什么是 MTU?
MTU(Maximum Transmission Unit),中文叫最大传输单元,表示网络接口在一次传输中能够承载的最大网络层数据包大小.
在普通以太网中,MTU通常为1500字节(Byte).
可以把 MTU 理解为快递箱的容量限制:
- 快递箱:以太网帧
- 箱子里的货物:IP 数据包
- MTU:箱子最多能装多少字节的 IP 数据包
如果IP数据包超过MTU,就不能直接放入一个普通的以太网帧中传输.
2.MTU 与以太网帧的关系
还记得之前学习的以太网帧格式吗?

注意:MTU 1500 字节不等于整个以太网帧长 1500 字节.
3.如果数据包超过 MTU 会怎样?
假设网络 MTU 为 1500 字节,现在要发送一个 2000 字节的 IPv4 数据包.

这就是IP分片(Fragmentation).
需要注意:并非所有超过MTU的IP数据包都能被路由器分片.
- IPv4:允许分片,但设置DF(禁止分片)时,超出MTU的数据包会被丢弃.
- IPv6:中间路由器不进行分片,需要由源设备调整发送大小,必要时由源设备分片.
实际使用TCP时,通常会提前控制报文段大小,尽量避免IP分片.
4.MTU 和 MSS 有什么区别?
这是计算机网络中容易混淆的知识点.
| 对比 | MTU | MSS |
|---|---|---|
| 中文 | 最大传输单元 | 最大报文段长度 |
| 主要涉及 | 网络接口与链路 | TCP |
| 限制对象 | IP 数据包的大小 | TCP 数据部分的大小 |
| 典型值 | 1500 B | 1460 B |

因此:MTU 限制整个IP数据包大小,而MSS限制TCP真正能够携带的数据大小.
5.常见网络的MTU
| 网络类型 | 常见 MTU |
|---|---|
| 普通以太网 | 1500 B |
| PPPoE 拨号 | 1492 B |
| 支持巨型帧的以太网 | 约 9000 B |
| VPN、隧道网络 | 取决于封装方式和配置 |
在实际通信中,还需要考虑路径 MTU(Path MTU),即数据从发送端到接收端经过的路径上,能够支持的最大 IP 包大小.路径中的某条链路如果MTU更小,就可能限制整条路径可传输的包大小.
6.重点总结
记住三个关键数字:

一句话记忆:MTU 决定一个网络接口一次最多能承载多大的 IP 数据包;MSS 决定一个 TCP 报文段最多携带多少应用数据.
把 MTU、以太网帧格式、IP 分片和 TCP MSS 联系起来,就能理解网络为什么需要限制每次传输的数据大小.
2.5MTU对IP协议的影响



MTU对IP协议的主要影响:
- 限制 IP 数据包大小:IP 数据包不能超过链路 MTU,否则无法直接传输.
- 影响 IP 分片:IPv4 数据包超过 MTU 时,如果允许分片,可以拆成多个较小的数据包传输.
- 可能导致丢包:IPv4 禁止分片或 IPv6 路由器遇到超大数据包时,会丢弃数据包.
- 影响传输效率:MTU 过小会增加协议开销;分片也会增加开销和丢包风险.
- 影响路径 MTU:数据传输需要适应整条通信路径中 MTU 最小的链路.
总结:MTU 决定IP数据包能传多大、是否需要分片,以及是否可能因超出限制而丢包.
2.6MTU对UDP协议的影响
MTU对UDP协议的主要影响:
- 限制 UDP 数据报大小:UDP 数据报加上 IP 首部不能超过 MTU,否则可能需要IP分片.
- 可能引发 IP 分片:IPv4 允许分片时,超出MTU的UDP数据报可以被拆分传输.
- 增加丢包风险:只要一个 IP 分片丢失,整个UDP数据报就无法成功重组.
- UDP 不负责重传:UDP 本身没有重传机制,丢失的数据需要应用层自行处理.
- 影响传输效率:分片会增加额外开销,降低传输效率.
以 MTU = 1500 字节为例:
- IPv4 首部:20 字节
- UDP 首部:8 字节
- UDP 最大数据载荷(不分片):1500 - 20 - 8 = 1472 字节
总结:MTU 限制 UDP 数据报的传输大小,超过 MTU 可能导致IP分片或丢包,因此应尽量避免 UDP 数据报超过路径 MTU.
2.7MTU对于TCP协议的影响
MTU 对 TCP 协议的主要影响:
- 限制 TCP 报文段大小:MTU 决定 TCP 最大报文段长度(MSS),通常 MSS = MTU - IP 首部 - TCP 首部.
- 影响 TCP 分段:当数据超过MSS时,TCP会将数据拆分成多个报文段发送.
- 影响传输效率:MTU 过小会产生更多报文段,增加协议首部开销,降低传输效率.
- 可能导致丢包:如果 IP 数据包超过路径 MTU 且禁止分片,数据包可能被丢弃.
- 触发 TCP 重传:TCP 具有可靠传输机制,数据丢失后可以通过重传恢复,但会增加传输延迟.
以 MTU = 1500 字节为例:
- IPv4 首部:20 字节
- TCP 首部:20 字节
- TCP 最大数据载荷(MSS):1500 - 20 - 20 = 1460 字节
总结:MTU 通过影响 MSS,决定TCP每个报文段能携带多少数据,并影响TCP的分段、传输效率和丢包重传情况.

2.8查看硬件地址和MTU

使⽤ifconfig命令,即可查看ip地址,mac地址,和MTU.
三、ARP协议
1.什么是 ARP 协议?
ARP(Address Resolution Protocol,地址解析协议)用于在局域网中,根据 IPv4 地址获取对应的 MAC 地址.
简单理解:
- IP 地址:确定要找哪台设备.
- MAC 地址:确定数据帧交给哪个网络接口.
- ARP 协议:通过已知的 IP 地址查询对应的MAC地址.
2.ARP 协议的工作原理
假设电脑 A 要给同一局域网中的电脑 B 发送数据:

工作过程:
- 电脑 A 首先检查本地 ARP 缓存.
- 如果没有对应记录,就广播 ARP 请求.
- 电脑 B 收到请求后,返回自己的 MAC 地址.
- 电脑 A 将 IP 与 MAC 的对应关系保存到 ARP 缓存.
- 电脑 A 使用该 MAC 地址封装以太网帧并发送数据.
3.ARP 请求和 ARP 应答的区别
| 对比 | ARP 请求 | ARP 应答 |
|---|---|---|
| 作用 | 查询 MAC 地址 | 返回 MAC 地址 |
| 发送方式 | 广播 | 通常单播 |
| 目的 MAC | FF:FF:FF:FF:FF:FF | 请求方的 MAC |
| 操作码 | 1 | 2 |
4.ARP 缓存表
设备会把已经解析出的 IP 地址和 MAC 地址对应关系保存起来,避免每次通信都发送 ARP 请求.
例如:
| IP 地址 | MAC 地址 |
|---|---|
| 192.168.1.1 | AA-AA-AA-AA-AA-AA |
| 192.168.1.20 | BB-BB-BB-BB-BB-BB |
在 Windows 中,可以通过命令查看:
arp -a
Linux 中可以使用:
ip neigh show
5.ARP 协议的注意事项
- ARP 主要用于 IPv4 网络,IPv6使用邻居发现协议(NDP).
- ARP 请求通常只在本地广播域内传播,不会被普通路由器转发.
- 如果目标设备不在本地网络,主机通常通过ARP查询的是默认网关的MAC地址,而不是远程目标的MAC地址.
- ARP 缺乏内置身份认证,因此可能遭受ARP欺骗攻击.
6.重点总结
ARP 协议的核心作用:通过 IPv4 地址解析MAC地址.
记住三个关键点:
- ARP 请求:广播查询 MAC 地址.
- ARP 应答:通常单播返回MAC地址.
- ARP 缓存:保存IP和MAC的映射关系.
一句话记忆:IP 地址找目标,ARP 协议找MAC,交换机根据MAC地址转发以太网帧.
3.1ARP协议的作⽤
ARP(地址解析协议)的主要作用是:根据已知的IPv4地址,获取对应的MAC地址,从而实现局域网内的数据通信.
主要作用:
- 地址解析:将IPv4地址解析为对应的MAC地址.
- 实现数据传输:帮助发送方确定以太网帧的目的MAC地址.
- 减少重复查询:通过ARP缓存保存IP与MAC地址的映射关系,提高通信效率.
工作过程:
- ARP 请求:广播询问"谁拥有这个 IP 地址?"
- ARP 应答:目标设备通常单播返回自己的 MAC 地址.
- ARP 缓存:发送方记录IP与MAC地址的对应关系.
总结:ARP 协议的核心作用是实现 IPv4 地址到 MAC 地址的解析,为以太网通信提供链路层寻址信息.
3.2ARP协议的⼯作流程

ARP(地址解析协议)的主要作用是根据已知的IPv4地址,获取对应的MAC地址,从而实现局域网内的数据通信.
如图所示,假设主机 A(172.20.1.1)要与主机 B(172.20.1.2)通信,具体过程如下:
- 发起通信:主机 A 想向主机 B 发送数据,但不知道主机 B 的 MAC 地址.
- 发送 ARP 请求(广播):主机 A 向局域网内所有设备广播询问:"谁的 IP 地址是 172.20.1.2?请告诉我你的 MAC 地址。"
- 接收 ARP 请求:局域网中的设备都会收到请求,主机 B 发现目标 IP 地址与自己相同.
- 发送 ARP 应答(单播):主机 B 向主机 A 返回自己的 MAC 地址:
08:00:20:74:CE:EC. - 更新 ARP 缓存:主机 A 将主机 B 的 IP 地址与 MAC 地址的对应关系保存到 ARP 缓存表中,随后便可以向主机 B 发送以太网帧.
总结:ARP 协议通过"广播请求、单播应答"的方式,实现IP地址到MAC地址的解析.
3.3ARP数据报的格式

ARP(地址解析协议)主要用于根据已知的IPv4地址获取对应的MAC地址.如图所示,ARP报文封装在以太网帧中,典型的ARP报文长度为28字节.
ARP 数据报主要由以下部分组成:
- 以太网首部(14 字节):包含目的 MAC 地址、源 MAC 地址和帧类型,其中
0x0806表示 ARP 协议. - 硬件类型(2 字节):表示使用的网络类型,以太网对应
0x0001. - 协议类型(2 字节):表示要解析的协议,IPv4对应
0x0800. - 地址长度(各 1 字节):硬件地址长度为6字节,IPv4 地址长度为4字节.
- 操作码(2 字节):
1表示 ARP 请求,2表示ARP应答. - 地址信息(20 字节):包含发送端 MAC、发送端 IP、目标 MAC 和目标 IP 地址.
ARP 请求与应答
- ARP 请求(广播):发送方不知道目标 MAC 地址时,向局域网广播请求,目的MAC为
FF:FF:FF:FF:FF:FF,ARP报文中的目标硬件地址通常填0. - ARP 应答(单播):目标主机收到请求后,将自己的MAC地址返回给发送方.
总结:ARP 数据报通过操作码区分请求和应答,并利用发送端与目标端的 IP、MAC 地址信息,完成 IPv4 地址到 MAC 地址的解析.
四、ARP结合协议的具体过程

ARP(地址解析协议)的主要作用是根据已知的IPv4地址,获取对应的MAC地址,以便在局域网中进行数据通信.
如图所示,假设主机A(172.20.1.1)要与主机B(172.20.1.2)通信,具体过程如下:
- 发起通信:主机A知道主机B的IP地址,但不知道其MAC地址,因此需要进行ARP地址解析.
- 发送 ARP 请求(广播):主机A发送ARP请求报文,操作码
op=1,目的MAC地址为FF:FF:FF:FF:FF:FF,询问谁拥有 IP 地址172.20.1.2. - 目标主机接收请求:局域网中的设备收到 ARP 请求后,检查目标IP地址.主机B发现目标IP 与自己一致,准备返回应答.
- 发送 ARP 应答(单播):主机B返回ARP应答报文,操作码
op=2,告知主机A自己的MAC地址为08:00:20:74:CE:EC. - 更新 ARP 缓存:主机A收到应答后,将IP地址与MAC地址的映射关系保存到ARP缓存表中,随后使用该MAC地址封装以太网帧并发送数据.
ARP 数据报中的关键字段
- 硬件类型:
0x0001,表示以太网. - 协议类型:
0x0800,表示IPv4. - 操作码:
1表示请求,2表示应答. - 发送端地址:发送方的MAC地址和IP地址.
- 目标端地址:目标设备的MAC地址和IP地址,其中请求报文中的目标MAC通常为全0.
总结:ARP 协议通过"广播请求 → 单播应答 → 更新缓存"的过程,完成IPv4地址到MAC地址的解析,使主机能够正确封装和发送以太网帧.



五、ARP欺骗原理
5.1步骤⼀:正常的ARP对应关系(攻击发生前)

5.2步骤⼆:完成ARP欺骗后的通信过程

5.3步骤三:主机M进行中间转发,实现通信劫持


🚀真正的勇者不是流泪的人,而是含泪奔跑的人!
敬请期待下一篇文章内容
每日心灵鸡汤: 告别过往,奔赴崭新的人生!
不破不立,大破大立,晓喻新生.不管发生什么事,都别困在过往的桎梏里原地徘徊,那些曾经的执念与伤痛终会慢慢释怀,敢于撕碎陈旧的认知,方能看见前路光彩,接纳世事无常,守住心底不变的期待,沉淀自我,在风雨之中积蓄力量静待花开,放下无谓纠结,勇敢奔赴下一场山海,旧序落幕之时,便是全新篇章到来.心有长风万里,自可迎世间所有精彩.
