首页 理论教育 深入了解ARP协议的工作原理与应用

深入了解ARP协议的工作原理与应用

时间:2023-06-30 理论教育 版权反馈
【摘要】:图2-3-5ARP 协议的数据报格式ARP 请求/应答的各部分作用如下:硬件类型: 表示硬件地址的类型。将过滤器捕获协议设为ARP 协议,然后启动嗅探器。图2-3-6使用ARP 命令清除ARP 缓存停止嗅探器的捕获功能。综上所述,图2-3-7 所示为ARP 协议的一个查询数据报,它要查找IP 地址为192.168.10.5 的计算机网卡的物理地址,以广播的方式查询。

深入了解ARP协议的工作原理与应用

1.什么是ARP

ARP 是Address Resolution Protocol (地址解析协议)的简称。所谓地址解析,就是主机在发送数据报之前,将目标IP 地址转换成目标MAC 地址的过程。所以ARP 的基本功能就是解析目标设备的MAC 地址,以保证通信的顺利进行。

2.ARP 的工作原理

每台主机都有一个ARP 缓存,内有所在局域网上主机和路由器的IP 地址和物理地址的映射表。当发送数据报时,先到缓存查出目标IP 地址的MAC 地址。若没有所需项,则按以下步骤查找:

第1 步,在局域网广播发送一个ARP 请求数据报。

第2 步,局域网内所有主机的ARP 进程都收到此数据报。

第3 步,目标主机收到后,发回一个ARP 响应数据报,此报中写有目标主机的IP 地址和MAC 地址。其余主机丢弃ARP 请求数据报。

第4 步,将找到的IP 地址和MAC 地址映射对写入ARP 缓存。

3.ARP 协议的数据报格式和封装

ARP 数据报是直接封装在链路层数据帧的。ARP 数据报的封装格式如图2-3-4 所示。

图2-3-4 ARP 数据报的封装格式

封装ARP 数据报时,生成的以太网数据帧首部除了加上目的地址和源地址外,还要加上“类型”字段,“类型”字段的值设为0806。

分用以太网数据帧时,读出前12 字节的目的地址和源地址,再取出2 字节的“类型”字段,分析其值。如果是0800,则表明封装的数据是IP 数据报;如果是0806,则表明封装的数据是ARP 数据报;如果是8035,则表明封装的数据是RARP 数据报。

ARP 协议的数据报格式如图2-3-5 所示。

图2-3-5 ARP 协议的数据报格式

ARP 请求/应答的各部分作用如下:

(1)硬件类型: 表示硬件地址的类型。若它的值为1,则表示以太网地址。

(2)协议类型: 它的值与包含IP 数据报的以太网数据帧中的类型字段的值相同。值为0x0800,表示此为IP 地址。

(3)硬件地址长度和协议地址长度: 分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP 地址的ARP 请求或应答而言,它们的值分别为6 和4。

(4)操作字段(op): 指出4 种操作类型,即ARP 请求(值为1)、ARP 应答(值为2)、RARP 请求(值为3)和RARP 应答(值为4)。这个字段是必需的,因为ARP 请求和ARP 应答的帧类型字段值是相同的。

(5)接下来的4 个字段分别是发送端的硬件地址、发送端的协议地址、目的端的硬件地址和目的端的协议地址。在本例中,硬件地址为以太网地址,协议地址为IP 地址。

4.ARP 协议的在网络中的应用

(1)为了在网络中捕获ARP 数据包,我们必须在DOS 环境下使用“ARP- d”命令(命令不区分字母大小写),清除当前计算机中的ARP 缓存;然后使用“ARP-a”命令来显示当前机器中的ARP 缓存,如图2-3-7 所示。

(2)启动嗅探器并且设置好过滤器,将嗅探器的地址设为Hardware (硬件地址),这是因为ARP 协议在链路层,所以必须用硬件地址。将过滤器捕获协议设为ARP 协议,然后启动嗅探器。

(3)用ping 命令ping 当前网络中的某个网址,如图2-3-6 所示。

图2-3-6 使用ARP 命令清除ARP 缓存

(4)停止嗅探器的捕获功能。

(5)分析捕获的ARP 数据包。图2-3-7 所示为在网上利用网络嗅探器捕获的真实ARP查询数据报。

图2-3-7 ARP 查询数据报

接下来,对这个数据报(图2-3-8 中的下方3 行数据)进行详细分析。

●ff ff ff ff ff ff: 以广播方式发出去的待查找的目的物理地址。

●05 9a 4c 58 66 8b: 原计算机网卡的物理地址。IP 地址为192.168.10.6。

●08 06: ARP 的协议编号。(www.xing528.com)

以上是以太网的前14 字节的内容,从第15 字节(00)开始是ARP 数据报的内容。对该ARP 查询数据报的分析如下:

●00 01: 硬件类型,此为10 Mbps 的以太网卡。

●08 00: 协议类型,此为IP 协议。

●06: 硬件地址长度。

●04: IP 地址长度。

●00 01: 此数据报为ARP 的查询数据报。

●50 9a 4c 58 66 8b: 原计算机网卡的物理地址。IP 地址为192.168.10.6。

●c0 a8 0a 06: 原计算机的IP 地址,192.168.10.6。

●00 00 00 00 00 00: 目标计算机的网卡的物理地址,由于此处是待查地址,所以全为0。

●c0 a8 0a 05: 目标(待查)计算机的IP 地址,192.168.10.5。

综上所述,图2-3-7 所示为ARP 协议的一个查询数据报,它要查找IP 地址为192.168.10.5 的计算机网卡的物理地址,以广播的方式查询。这是图2-3-7 中第1 帧数据的解释。图2-3-7 中第2 帧数据是对第1 帧数据的应答。

图2- 3- 8 所示为在网上利用网络嗅探器捕获的真实ARP 应答数据报。下面对图2-3-8中的下方3 行数据进行详细分析。

图2-3-8 ARP 应答数据报

●50 9a 4c 58 66 8b: 原计算机网卡的物理地址。IP 地址为192.168.10.6。

●74 e6 e2 da 5f 26: 以广播方式发出去的待查找的目的物理地址。

●08 06: ARP 的协议编号。

以上是以太网的前14 字节的内容,从第15 字节(00)开始是ARP 数据报的内容。对该ARP 应答数据报的分析如下:

●00 01: 硬件类型,此为10 Mbps 的以太网卡。

●08 00: 协议类型,此为IP 协议。

●06: 硬件地址长度。

●04: IP 地址长度。

●00 02: 此数据报为ARP 的应答数据报。

●74 e6 e2 da 5f 26: 目标计算机网卡的物理地址,此处是已查出的地址。

●c0 a8 0a 05: 目标(已查)计算机的IP 地址,192.168.10.5。

●50 9a 4c 58 66 8b: 原计算机网卡的物理地址。IP 地址为192.168.10.6。

●c0 a8 0a 06: 原计算机的IP 地址,192.168.10.6。

从以上的分析可以得出结论: ARP 协议是负责将IP 地址和物理地址捆绑的协议,也可以理解为物理地址解析协议。当知道IP 地址,想要知道其对应的物理地址时,ARP 协议可以查找该物理地址。另外,ARP 协议的工作方式是应答式。首先,以广播方式发一个请求数据报;然后,收到应答数据报,应答数据报中回答请求数据报中的内容。通过PING 命令来抓取ARP 数据报。

说明:

在执行PING 命令之前,要清理ARP 缓存,ARP 缓存每2 min 自动刷新一次。另外,若要抓取ARP 报,则应选择链路层。

ARP 协议在运行中有以下特点:

(1)采用应答式,成对运行。以广播的形式询问,有针对性地回答。

(2)适用于子网。

(3)ARP 具有缓存,在使用时,系统会定时刷新缓存。

(4)通过图2-3-7 可以看到,虽然只是从192.168.10.6 这台计算机上查询192.168.10.5 的物理地址,但是从抓到的数据包看,192.168.10.5 的这台计算机也查询到了192.168.10.6的物理地址。

DNS 和ARP 有些相似,它们都是应答方式工作,都有缓存。但是,DNS 工作在广域网,ARP 工作在子网;ARP 协议将IP 地址和物理地址进行绑定,DNS 将IP 地址和域名进行绑定。利用ARP 协议可以查找某台计算机是否在线,也可以利用ARP 协议查询到谁访问过自己。有些网络黑客利用ARP 协议进行网络攻击,还有些人利用ARP 协议来测试或者破坏网络,我们应深入学好ARP 协议,用于正当用途。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈