赞
踩
在数据链路层的以太网的协议中,每一个数据包都有一个MAC地址。我们知道每一块以太网卡都有一个MAC地址,这个地址是唯一的,那么IP包是如何知道这个MAC地址的?这就是ARP协议的工作。
ARP(地址解析)协议是一种解析协议,本来主机是完全不知道这个IP对应的是哪个主机的哪个接口,当主机要发送一个IP包的时候,会首先查一下自己的ARP高速缓存表(最近数据传递更新的IP-MAC地址对应表),如果查询的IP-MAC值对不存在,那么主机就向网络广播一个ARP请求包,这个包里面就有待查询的IP地址,而直接收到这份广播的包的所有主机都会查询自己的IP地址,如果收到广播包的某一个主机发现自己符合条件,那么就回应一个ARP应答包(将自己对应的IP-MAC对应地址发回主机),源主机拿到ARP应答包后会更新自己的ARP缓存表。源主机根据新的ARP缓存表准备好数据链路层的的数据包发送工作。
命令arp -a查询ARP缓存表(缓存表是有时限的,一般是20分钟)
ARP数据包如何更新IP-MAC地址抓包分析
链接:点击打开链接
上图是ARP请求、应答报文的格式。
对以太网首部来说:如果是请求ARP报文的话,
以太网目的地址: 是(全1)的,是广播报,目的是让同一个局域网上所有主机都收到ARP请求包
以太网源地址: 就是发送端地址。
帧类型: 如果是ARP报文,值为0x0806
硬件类型: 表明ARP协议实现在那种类型的网络上,它的值为1,即表示以太网地址
协议类型:表示解析协议(上层协议),这里一般是0800,即IP
硬件地址长度:也就是MAC地址长度,即6个字节
协议地址长度:也就是IP地址长度,即4个字节
操作类型:表示ARP协议数据报类型。1ARP表示请求包,2ARP表示应答包,3表示RARP请求包,4表示RARP应答包
发送端以太网地址:也就是源MAC地址
发送端IP地址:也就是源IP地址
目的端以太网地址:目标端MAC地址(如果是请求报文,是全0)
目地端IP地址:也就是目地端的IP地址
实例:
如上图所示,pc1给pc2发送ARP请求,此时使用Wireshark获取ARP抓包数据
既然都获取到ARP的数据,那就分析ARP的数据。
先分析ARP请求数据报文:
选中57帧,可以在wireshark中查看报的详细信息:
当PC1发送的ARP请求报文,以广播报的形式发送到局域网后,当pc2检测到IP地址与自己的IP相同,就会发送给PC1响应报文,也就是58帧
对于ARP响应包来说,源IP,目地IP,源MAC,目地MAC都是知道了的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。