ARP协议详解及其Wireshark抓包测试

文章目录

简介

ARP,即Address Resolution Protocol,地址解析协议,可以将IP地址转换为MAC地址。在OSI模型中,MAC地址在第二层(数据链路),IP地址则在第三层(网络),二者之间无法直接通信,ARP就是沟通二者之间的桥梁。

Windows命令行中提供了arp命令,可用于查询本机ARP缓存中IP和MAC地址的对应关系,示例如下

bash 复制代码
C:\Users\wx>arp -a

接口: 192.168.3.170 --- 0x10
  Internet 地址         物理地址              类型
  192.168.3.1           8c-de-f9-7f-f0-63     动态
  192.168.3.255         ff-ff-ff-ff-ff-ff     静态
  224.0.0.22            01-00-5e-00-00-16     静态
  224.0.0.251           01-00-5e-00-00-fb     静态
  224.0.0.252           01-00-5e-00-00-fc     静态
  239.255.255.250       01-00-5e-7f-ff-fa     静态
  255.255.255.255       ff-ff-ff-ff-ff-ff     静态

其中,第一条192.168.3.1 → \to →8c-de-f9-7f-f0-63是默认网关,就是说,当本机发送数据后,若发现目标IP并不在本地子网,则交给该IP,这这个是路由器的功能。在网上找一个MAC地址查询工具,输入8c-de-f9-7f-f0-63,可以查到设备厂商为小米,这正是我们用的红米路由器,在浏览器中输入192.168.3.1即可进其设置界面。

后面的静态地址与其他协议有关,此处略去不讲。

发现局域网中其他设备

本地缓存的ARP对应表并不是一层不变的,只要触发ARP请求,就会产生一组对应地址。根据这个原理,可以搜索局域网中所有的网络设备,代码如下

复制代码
for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.3.%i
arp -a

其原理是,首先,对192.168.3.1192.168.3.254之间的所有IP进行扫描,在扫描结束后,在查看本机ARP缓存地址列表,就可以找到局域网中的设备。当然,如果局域网中的设备多于254个,那么需要根据子网掩码,扫描更多的IP。

Wireshark抓包测试

打开Wireshark,选择一个网络(我这里是WLAN2),在过滤器输入框中输入arp,然后回车,wireshark就会自动过滤出ARP协议的数据。

由于ARP协议作用于IP到MAC转换的过程,所以想要获取ARP报文,只需连接一个之前未曾连接过的IP即可。

这里面的问题是,如果这个IP是某个外部的网络,计算机并不会直接与之相连,而是通过路由器这个桥梁,从而实际连接到的是路由器的IP,对应的自然也是路由器的物理地址,而这个地址早已写入了电脑的缓存表里,不会重新产生ARP报文。

所以具体操作方法为,先在当前网络中添加一个IP地址,并马上删除,然后再去ping这个IP地址,从而产生ARP协议报文。测试后,将这个IP删除,并设为自动IP以恢复网络。

bash 复制代码
# 测试过程会断网
>netsh interface ip add address "WLAN 2" 192.168.3.123 255.255.255.0
>arp -d 192.168.3.123
>ping 192.168.3.123
> netsh interface ip delete address "WLAN 2" 192.168.3.123
> netsh interface ip set address "WLAN 2" dhcp

最终在Wireshark中截获的数据如下。

其右侧数据含义如下

6c 1f f7 78 87 69 以太网目标MAC地址
8c de f9 7f f0 63 以太网源MAC地址
08 06 ARP协议标识
00 01 硬件类型,0001是以太网
08 00 协议类型,
06 MAC长度
04 IP长度
00 01 操作类型,0001为ARP请求
8c de f9 7f f0 63 发送MAC地址
c0 a8 03 01 发送IP
00 00 00 00 00 00 ARP目标MAC地址,没找到
c0 a8 03 aa 目标IP

协议总结

Wireshark截获的ARP报文,可以分为两层,外层是其在以太网中的封装,格式如下

字节长度 6 6 6 28 18 4
说明 目标地址 源地址 帧类型 报文 PAD CRC
默认值 - - 0x0806

报文内容如下

字节长度 2 2 1 1 2 6 4 6 4
说明 硬件类型 协议类型 MAC长度 IP长度 发送者MAC 发送者IP 目标MAC 目标IP
默认值 0x0001 0x0800 0x06 0x04

其中,操作类型为2时表示ARP应答。

相关推荐
treesforest8 小时前
平时上网留下的IP地址,到底能被查到什么?
网络·网络协议·tcp/ip·ip地址·ip查询·定位服务
多巴胺梦想家8 小时前
06 代数系统:运算背后的结构之美
网络·拓扑学
小锋学长生活大爆炸9 小时前
【福利】最新免费领取云服务器和虚拟主机攻略
网络·github
81250353310 小时前
第 60 篇:IP选项:那些被遗忘的功能
网络·tcp/ip·智能路由器
IT小盘11 小时前
04-大模型流式输出原理-SSE与Python实现
开发语言·网络·人工智能·python
网络研究院12 小时前
2026年上半年十大网络攻击和数据泄露事件
网络·安全·漏洞·风险·数据·泄露·事件
我星期八休息13 小时前
网络编程—UDP与TCP
linux·运维·网络·数据库·网络协议·tcp/ip·udp
玖玥拾13 小时前
Unity 3D 笔记(十四)Unity/C# Socket 网络笔记3
服务器·网络·unity·c#
数智化管理手记14 小时前
财务大数据怎么管住资金风险?财务大数据和财务数智化到底怎么结合?
大数据·网络·数据库·人工智能·数据挖掘
CPETW14 小时前
企业版配套软件介绍 ---- USB TO SPI_ (Excel)-Microwire
网络·科技·单片机·嵌入式硬件·电子