ARP协议抓包分析

一、什么是ARP
ARP(地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议。由于OSI将网络分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接通信。在通过以太网发送IP数据包时,需要知道先封装第三层和第二层的报头。但由于发送数据包时只知道目标IP地址,不知道其MAC地址,而又不能跨越第二、三层,所以需要地址解析协议。
二、ARP工作流程
ARP请求与响应过程
(1)当主机PC1想发送数据给主机PC2时,首先在自己的本地ARP缓存表中检查主机PC2匹配的MAC地址;
(2)如果主机PC1在缓存表中没有找到相应的条目,便将ARP请求帧广播到本地网络上的所有主机。该帧中包括源主机PC1的IP地址和MAC地址。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的不匹配,则将丢弃ARP请求;
(3)主机PC2发现请求的IP地址与自己的匹配,则将PC1的IP地址和MAC地址添加到本地缓存表;
(4)主机PC2将包含其MAC地址的ARP回复消息直接发送给主机PC1(单播
(5)主机PC1接收到主机PC2的ARP回复消息时,将主机PC2的IP地址和MAC地址添加到自己的本地缓存表。本机缓存是有生存期的,默认ARP缓存的生存周期为120s。主机PC2的MAC地址一旦确定,主机PC1就可以向主机PC2发送IP消息了;
三、ARP缓存表
arp命令
该命令用于查询本机ARP缓存中的IP地址和MAC地址对应的关系、添加或删除静态对应关系等。
arp [-s inet_addr [if_addr]] [-d inet_addr [if_addr]] [-a [inet_addr] [-N if_addr]] [-g] [-v]
-s inet_addr [if_addr]:向ARP缓存表中添加可将IP地址inet_addr解析成物理地址eth_addr的静态条目。要向指定接口添加静态ARP缓存条目,使用if_addr参数,此处[if_addr]代表指派给该接口的IP地址
-d inet_addr [if_addr]:在ARP缓存表中删除IP地址为inet_addr的IP条目。要删除指定接口的某项缓存条目,使用if_addr参数,此处[if_addr]代表指派给该接口的IP地址;要删除所有的条目,可使用*通配符代替 inet_addr。
-a [inet_addr] [-N if_addr]:先是所有接口的当前ARP缓存表;
-g:与-a相同
-v:查看帮助信息
四、捕获ARP协议包
实验环境
PC1:物理机WIN10(IP:169.254.35.227)[在此启动虚拟机]
PC2:虚拟机WIN8(IP:169.254.148.228)
使用捕获过滤器
根据实验环境选择捕获选项
在这里插入图片描述
进入如下界面,当前没有捕获到任何包。因为这里使用了捕获过滤器,仅捕获ARP包
在这里插入图片描述
在PC2上执行以下命令,并输出如下信息
在这里插入图片描述
在wireshark中查看抓包记录
在这里插入图片描述
在分析请求ARP协议包之前我们都会先介绍一下他们的报文格式,以更清楚地理解每个包
ARP报文格式如下:
在这里插入图片描述
硬件类型:表明ARP协议实现在哪种类型的网络上
协议类型:表示解析协议(上层协议)。这里一般是0800,即IP
硬件地址长度:MAC地址长度,此处为6个字节
协议地址长度:IP地址长度,此处为4个字节
操作类型:表示ARP协议数据类型。1表示ARP协议请求数据报,2表示ARP协议应答数据报
源MAC地址:发送端MAC地址
源IP地址:发送端IP地址
目标MAC地址:接收端MAC地址
目标IP地址:接收端IP地址
ARP应答数据报与ARP请求数据包的不同体现在:目标MAC地址,ARP请求数据包为全1的广播地址,ARP应答数据报为请求得到的真实MAC地址;

查看捕获的ARP数据包,第一个为ARP请求包
在这里插入图片描述
其中,以下内容表示这是第一帧数据报的详细信息。其中包的大小为42个字节
在这里插入图片描述
以下内容表示以太网帧头部信息。其中源MAC地址为00:0c:29:ca:4b:58,目标MAC地址为ff:ff:ff:ff:ff:ff(广播地址)。这里的目标地址为广播地址,是因为主机PC2不知道PC1主机的MAC地址。这样,局域网中所有设备都会收到该数据包
在这里插入图片描述
以下内容表示地址解析协议内容,request表示该包是一个请求包。在该包中包括有ARP更详细的信息字段信息,如下所示:
在这里插入图片描述
关于以上ARP头部的内容和ARP请求报文的格式,我们可以构造出下表:
在这里插入图片描述
同样的方式,分析ARP的响应包
在这里插入图片描述
以下是ARP响应包的详细内容:
在这里插入图片描述
嗯嗯~~就酱紫!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值