ARP包分析
ARP
原理
核心逻辑:
- 当主机需要与同网段的其他设备通信时,会先检查本地ARP缓存(相当于通讯录)
- 若没有目标IP对应的MAC地址,就会发送ARP广播请求,询问“哪个设备拥有这个IP地址,请告诉我你的MAC 地址”;
- 拥有该IP的设备会发送ARP单播应答,告知自己的MAC地址;
- 请求方收到应答后,会将IP-MAC映射存入ARP缓存,后续通信直接使用该映射,无需重复请求。
ARP缓存查看方法:
Windows
1 | |
Linux
1 | |
ARP操作码
| 标识 | 对应内容 |
|---|---|
| 1 | 请求 |
| 2 | 应答 |
| 3 | 请求(已淘汰) |
| 4 | 应答(已淘汰) |
ARP包分析
- 打开wireshark抓包功能
- cmd中清空arp缓存
- 随便ping局域网ip
- 停止抓包
在捕获过滤器中输入arp,图中都是arp包
ARP请求包
Info: Who has 192.168.100.1? Te11 192.168.100.100
可以理解为谁是192.168.100.1(目的IP或者网关),告诉192.168.100.100(本机)

Ethernet II(数据链路层):
- Destination: Broadcast (ff:ff:ff:ff:ff:ff)
- 目的
MAC地址,广播地址,以为不知道目的MAC所以需要广播询问局域网内的所有设备
- 目的
- Source: ASUSTekCOMPU_07:e9:fb (cc:28:aa:07:e9:fb)
- 源
MAC地址,即自己的MAC地址
- 源
- Type: ARP (0x0806)
- 类型字段,表示该帧为ARP数据协议包
Address Resolution Protocol (ARP层):
- Hardware type: Ethernet (1)
- 硬件类型,值为1,固定不变
- Protocol type: IPv4 (0x0800)
- 协议类型
- Hardware size: 6
- 硬件地址长度
- Protocol size: 4
- 协议地址长度
- Opcode: request (1)
- 操作码,值1为请求包
- Sender MAC address: ASUSTekCOMPU_07:e9:fb (cc:28:aa:07:e9:fb)
- 发送方MAC地址
- Sender IP address: 192.168.100.100
- 发送方IP地址
- Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00)
- 目的MAC地址,表示未知
- Target IP address: 192.168.100.1
- 目的IP地址
ARP应答包
Info: 192.168.100.1 is at 70:e0:4c:68:53:2e
应答192.168.100.1是70:e0:4c:68:53:2e
请求包相比区别
- 目的和源地址反过来
- Opcode: reply (2)
- 操作码,值2为应答包
当192.168.100.100接收到应答包了之后就会存到arp缓存中192.168.100.1对应的mac是70:e0:4c:68:53:2e
ARP包分析
http://www.ming-ice-tea.top/2026/05/15/ARP包分析/