地址解析协议 ARP 详解

时间:2022-07-22
本文章向大家介绍地址解析协议 ARP 详解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

介绍地址解析协议 ARP 之前我们必须要先了解一下 为什么要使用 ARP,这就要先知道 IP 地址和硬件地址的关系。?

IP 地址与硬件地址

我们首先要明确 IP 地址与硬件地址是不同的地址。

  • ✅ 硬件地址(或物理地址)是数据链路层物理层使用的地址。
  • ✅ IP 地址是网络层和以上各层使用的地址,是一种逻辑地址。

从图中可以看到 IP 地址放在 IP 数据报的首部,而硬件地址则放在 MAC 帧的首部。

下面我们步入正题,来看一下 地址解析协议 ARP ?


地址解析协议 ARP

我们经常会遇到这样的问题:已经知道了一个机器(主机或路由器)的 IP 地址,需要找出其相应的硬件地址。地址解析协议 ARP 就是用来解决这样的问题的。

地址解析协议 ARP 要点

  • ✅ 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
  • ✅ 每一个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。

比如:

TTL (Time To Live):地址映射有效时间 。

当主机 A 要向本局域网上的某台主机 B 发送 IP 数据报时:

  • 1️⃣ 就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
  • 2️⃣ 如果有,就在 ARP 高速缓存中查出其对应的硬件地址,再把这个硬件地址写入 MAC 帧,然后通过局域网把该 MAC 帧发往此硬件地址。
  • 3️⃣ 如果没有,主机 A 就自动运行 ARP ,然后按 以下步骤 ? 找出主机 B 的硬件地址。

  • ARP 进程在本局域网上广播发送一个 ARP 请求分组
  • 在本局域网上的所有主机上运行的 ARP 进程都可以收到此 ARP 请求分组。
  • 主机 B 的 IP 地址与 ARP 请求分组中要查询的 IP 地址一致,就收下这个 ARP 请求分组,并向主机 A 发送 ARP 响应分组同时在这个 ARP 响应分组中写入自己的硬件地址。
  • 主机 A 收到主机 B 的 ARP 响应分组后,就在其 ARP高速缓存中写入主机 B 的 IP 地址到硬件地址的映射。

其实就是 请求 和 响应 。

值得一提的是,如果将上面的主机替换为路由器也同样适用,我们只需将请求发给路由器,剩下的转发工作交给路由器来完成。