地址解析协议 ARP

ARP 协议的用途是为了从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。

每一台主机都设有一个 ARP 高速缓存(ARP cache),里面有本局域网上的各主机和路由器的 IP 地址到硬件地址的映射表,这些都是该主机目前知道的一些地址。当主机 A 要向本局域网上的某台主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。

  • 如有,就在 ARP 高速缓存中查出其对应的硬件地址,再把这个硬件地址写入 MAC 帧,然后通过局域网把该 MAC 帧发往此硬件地址。

  • 若没有,主机 A 就自动运行 ARP,然后按以下步骤找出主机 B 的硬件地址:

    1. ARP 进程在本局域网上广播发送一个 ARP 请求分组,ARP 请求分组的主要内容是:“我的 IP 地址是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18。我想知道 IP 地址为 209.0.0.6 的主机的硬件地址。”

    2. 在本局域网的所有主机上运行的 ARP 进程都收到此 ARP 请求分组。

    3. 主机 B 的 IP 地址与 AR P请求分组中要查询的 IP 地址一致,就收下这个 ARP 请求分组,并向主机 A 发送 ARP 响应分组 ,同时在这个 ARP 响应分组中写入自己的硬件地址。

      由于其余的所有主机的 IP 地址都与 ARP 请求分组中要查询的 IP 地址不一致,因此都不理睬这个 ARP 请求分组。

    4. 主机 A 收到主机 B 的 ARP 响应分组后,就在其 ARP 高速缓存中写入主机 B 的 IP 地址到硬件地址的映射。

ARP 对保存在高速缓存中的每一个映射地址项目都设置生存时间(例如,10~20 分钟),凡超过生存时间的项目就从高速缓存中删除掉。

Last updated