Linux网络学习【数据链路层、ARP工作过程与ARP欺骗详解】


🔥承渊政道: 个人主页
❄️个人专栏: 《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 发送数据:

通信过程:

  1. 电脑 A 将 IP 数据包封装成以太网帧.
  2. 帧中包含源 MAC 地址和目的 MAC 地址.
  3. 交换机根据目的 MAC 地址和自己的 MAC 地址表转发帧.
  4. 电脑 B 接收帧,检查帧是否存在传输错误.
  5. 检查通过后,将其中的 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(载波监听多路访问/冲突检测)是一种传统以太网的介质访问控制机制.

它的工作思路是:

  1. 先监听信道是否空闲.
  2. 空闲时发送数据.
  3. 如果发生冲突,就停止发送.
  4. 等待随机时间后重新发送.

重点:CSMA/CD 主要用于早期共享介质、半双工以太网.现代交换式全双工以太网通常不会发生这种链路碰撞,因此不再需要使用 CSMA/CD.

6.以太网、Wi-Fi、互联网的区别

名称 主要作用
以太网 常见的有线局域网通信技术
Wi-Fi 基于 IEEE 802.11 的无线局域网技术
互联网 通过 IP 等协议连接起来的全球网络

以太网和 Wi-Fi 都可以作为接入互联网的方式,但它们本身不等于互联网.


2.1以太⽹帧格式

以太网帧(Ethernet Frame)是以太网进行数据传输的基本单位.可以把它理解为一个快递包裹:不仅包含需要传输的数据,还包含发送方、接收方以及用于检查数据是否出错的信息.

如图所示,一个标准的 Ethernet II 帧主要由五个部分组成:

  1. 目的地址(6 字节):记录接收设备的 MAC 地址,相当于快递的"收件人地址",用于确定数据发给谁.
  2. 源地址(6 字节):记录发送设备的 MAC 地址,相当于"寄件人地址",用于标识数据的发送方.
  3. 类型(2 字节):说明数据字段中封装的是什么协议.例如,0x0800 表示 IPv4,0x0806 表示 ARP,0x8035 表示 RARP.
  4. 数据(46~1500 字节):存放真正需要传输的内容,例如 IP 数据报或 ARP 报文.如果数据不足46字节,需要添加填充字节(PAD).
  5. 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 发送数据:

具体过程:

  1. 电脑 A 将数据封装成以太网帧.
  2. 在帧头中填写源 MAC 地址(A)和目的 MAC 地址(B).
  3. 交换机根据目的 MAC 地址查找 MAC 地址表.
  4. 交换机将帧转发到电脑 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 系统中:

  1. 按下 Win + R.
  2. 输入 cmd,打开命令提示符.
  3. 输入:
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 以太网中,常见的配合方式是:

  1. IP 地址确定最终目的设备以及下一跳.
  2. ARP 协议查询本地链路上下一跳对应的 MAC 地址.
  3. 将 IP 数据包封装成以太网帧.
  4. 交换机根据目的 MAC 地址转发帧.
  5. 路由器根据目的 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协议的主要影响:

  1. 限制 IP 数据包大小:IP 数据包不能超过链路 MTU,否则无法直接传输.
  2. 影响 IP 分片:IPv4 数据包超过 MTU 时,如果允许分片,可以拆成多个较小的数据包传输.
  3. 可能导致丢包:IPv4 禁止分片或 IPv6 路由器遇到超大数据包时,会丢弃数据包.
  4. 影响传输效率:MTU 过小会增加协议开销;分片也会增加开销和丢包风险.
  5. 影响路径 MTU:数据传输需要适应整条通信路径中 MTU 最小的链路.

总结:MTU 决定IP数据包能传多大、是否需要分片,以及是否可能因超出限制而丢包.


2.6MTU对UDP协议的影响

MTU对UDP协议的主要影响:

  1. 限制 UDP 数据报大小:UDP 数据报加上 IP 首部不能超过 MTU,否则可能需要IP分片.
  2. 可能引发 IP 分片:IPv4 允许分片时,超出MTU的UDP数据报可以被拆分传输.
  3. 增加丢包风险:只要一个 IP 分片丢失,整个UDP数据报就无法成功重组.
  4. UDP 不负责重传:UDP 本身没有重传机制,丢失的数据需要应用层自行处理.
  5. 影响传输效率:分片会增加额外开销,降低传输效率.

以 MTU = 1500 字节为例:

  • IPv4 首部:20 字节
  • UDP 首部:8 字节
  • UDP 最大数据载荷(不分片):1500 - 20 - 8 = 1472 字节

总结:MTU 限制 UDP 数据报的传输大小,超过 MTU 可能导致IP分片或丢包,因此应尽量避免 UDP 数据报超过路径 MTU.


2.7MTU对于TCP协议的影响

MTU 对 TCP 协议的主要影响:

  1. 限制 TCP 报文段大小:MTU 决定 TCP 最大报文段长度(MSS),通常 MSS = MTU - IP 首部 - TCP 首部.
  2. 影响 TCP 分段:当数据超过MSS时,TCP会将数据拆分成多个报文段发送.
  3. 影响传输效率:MTU 过小会产生更多报文段,增加协议首部开销,降低传输效率.
  4. 可能导致丢包:如果 IP 数据包超过路径 MTU 且禁止分片,数据包可能被丢弃.
  5. 触发 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 发送数据:

工作过程:

  1. 电脑 A 首先检查本地 ARP 缓存.
  2. 如果没有对应记录,就广播 ARP 请求.
  3. 电脑 B 收到请求后,返回自己的 MAC 地址.
  4. 电脑 A 将 IP 与 MAC 的对应关系保存到 ARP 缓存.
  5. 电脑 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地址.

记住三个关键点:

  1. ARP 请求:广播查询 MAC 地址.
  2. ARP 应答:通常单播返回MAC地址.
  3. ARP 缓存:保存IP和MAC的映射关系.

一句话记忆:IP 地址找目标,ARP 协议找MAC,交换机根据MAC地址转发以太网帧.


3.1ARP协议的作⽤

ARP(地址解析协议)的主要作用是:根据已知的IPv4地址,获取对应的MAC地址,从而实现局域网内的数据通信.

主要作用:

  1. 地址解析:将IPv4地址解析为对应的MAC地址.
  2. 实现数据传输:帮助发送方确定以太网帧的目的MAC地址.
  3. 减少重复查询:通过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)通信,具体过程如下:

  1. 发起通信:主机 A 想向主机 B 发送数据,但不知道主机 B 的 MAC 地址.
  2. 发送 ARP 请求(广播):主机 A 向局域网内所有设备广播询问:"谁的 IP 地址是 172.20.1.2?请告诉我你的 MAC 地址。"
  3. 接收 ARP 请求:局域网中的设备都会收到请求,主机 B 发现目标 IP 地址与自己相同.
  4. 发送 ARP 应答(单播):主机 B 向主机 A 返回自己的 MAC 地址:08:00:20:74:CE:EC.
  5. 更新 ARP 缓存:主机 A 将主机 B 的 IP 地址与 MAC 地址的对应关系保存到 ARP 缓存表中,随后便可以向主机 B 发送以太网帧.

总结:ARP 协议通过"广播请求、单播应答"的方式,实现IP地址到MAC地址的解析.


3.3ARP数据报的格式

ARP(地址解析协议)主要用于根据已知的IPv4地址获取对应的MAC地址.如图所示,ARP报文封装在以太网帧中,典型的ARP报文长度为28字节.

ARP 数据报主要由以下部分组成:

  1. 以太网首部(14 字节):包含目的 MAC 地址、源 MAC 地址和帧类型,其中 0x0806 表示 ARP 协议.
  2. 硬件类型(2 字节):表示使用的网络类型,以太网对应 0x0001.
  3. 协议类型(2 字节):表示要解析的协议,IPv4对应 0x0800.
  4. 地址长度(各 1 字节):硬件地址长度为6字节,IPv4 地址长度为4字节.
  5. 操作码(2 字节):1 表示 ARP 请求,2 表示ARP应答.
  6. 地址信息(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)通信,具体过程如下:

  1. 发起通信:主机A知道主机B的IP地址,但不知道其MAC地址,因此需要进行ARP地址解析.
  2. 发送 ARP 请求(广播):主机A发送ARP请求报文,操作码 op=1,目的MAC地址为 FF:FF:FF:FF:FF:FF,询问谁拥有 IP 地址 172.20.1.2.
  3. 目标主机接收请求:局域网中的设备收到 ARP 请求后,检查目标IP地址.主机B发现目标IP 与自己一致,准备返回应答.
  4. 发送 ARP 应答(单播):主机B返回ARP应答报文,操作码 op=2,告知主机A自己的MAC地址为 08:00:20:74:CE:EC.
  5. 更新 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进行中间转发,实现通信劫持

🚀真正的勇者不是流泪的人,而是含泪奔跑的人!


敬请期待下一篇文章内容


每日心灵鸡汤: 告别过往,奔赴崭新的人生!

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

相关推荐
CS_Zero1 小时前
安卓开发:Linux的android工具命令
android·linux·运维
女神下凡1 小时前
芯参谋(84):Linux eMMC 驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件
Novproxy_Z10 小时前
商用代理避坑:如何识别商家拿机房 IP 冒充住宅 IP
java·网络·tcp/ip
无足鸟ICT10 小时前
【RHCA+】vmstat命令(监控系统资源)
linux·服务器
垆边人似月.10 小时前
RDMA 文件传输踩坑(五):READY 发送成功后,为什么出现 Work Request Flushed Error?
服务器·网络·tcp/ip
闪亮的路灯11 小时前
Linux 安装mqtt服务mosquitto
linux·运维·服务器
HideF11 小时前
nmcli
linux·服务器·网络
qetfw12 小时前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
尹人入圣12 小时前
目前热门的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip