ARP包分析

ARP

原理

核心逻辑:

  1. 当主机需要与同网段的其他设备通信时,会先检查本地ARP缓存(相当于通讯录)
  2. 若没有目标IP对应的MAC地址,就会发送ARP广播请求,询问“哪个设备拥有这个IP地址,请告诉我你的MAC 地址”;
  3. 拥有该IP的设备会发送ARP单播应答,告知自己的MAC地址;
  4. 请求方收到应答后,会将IP-MAC映射存入ARP缓存,后续通信直接使用该映射,无需重复请求。

ARP缓存查看方法:
Windows

1
2
arp -a //查看当前arp缓存
arp -d * //清除arp缓存

Linux

1
2
arp -vn //查看当前arp缓存
ip neigh flush all //清空arp缓存

ARP操作码

标识 对应内容
1 请求
2 应答
3 请求(已淘汰)
4 应答(已淘汰)

ARP包分析

  1. 打开wireshark抓包功能
  2. cmd中清空arp缓存
  3. 随便ping局域网ip
  4. 停止抓包

在捕获过滤器中输入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(数据链路层):

  1. Destination: Broadcast (ff:ff:ff:ff:ff:ff)
    • 目的MAC地址,广播地址,以为不知道目的MAC所以需要广播询问局域网内的所有设备
  2. Source: ASUSTekCOMPU_07:e9:fb (cc:28:aa:07:e9:fb)
    • MAC地址,即自己的MAC地址
  3. Type: ARP (0x0806)
    • 类型字段,表示该帧为ARP数据协议包

Address Resolution Protocol (ARP层):

  1. Hardware type: Ethernet (1)
    • 硬件类型,值为1,固定不变
  2. Protocol type: IPv4 (0x0800)
    • 协议类型
  3. Hardware size: 6
    • 硬件地址长度
  4. Protocol size: 4
    • 协议地址长度
  5. Opcode: request (1)
    • 操作码,值1为请求包
  6. Sender MAC address: ASUSTekCOMPU_07:e9:fb (cc:28:aa:07:e9:fb)
    • 发送方MAC地址
  7. Sender IP address: 192.168.100.100
    • 发送方IP地址
  8. Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00)
    • 目的MAC地址,表示未知
  9. 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.170:e0:4c:68:53:2e

请求包相比区别

  1. 目的和源地址反过来
  2. 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包分析/
作者
Ming
发布于
2026年5月15日
许可协议