ARP

ARP

已经知道了一个机器(主机或路由器)的IP地址,如何找出其相应的硬件地址?

地址解析协议 ARP 就是用来解决这样的问题的

ARP的作用:从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。

通信时使用了两个地址:

  • IP 地址(网络层地址)
  • MAC 地址(数据链路层地址)

APR要点

  • 不管网络层使用什么协议, 在实际网络的链路上传送数据时, 最终还是必须使用硬件地址

  • 当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
    如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
    如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到 ARP 响应分组后,将得到的 IP 地址和硬件地址的映射写入 ARP 高速缓存。

使用ARP的四种典型情况

  • 发送方是主机,要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
  • 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
  • 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
  • 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。

应当注意的问题

  • ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
  • 如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器(网关),让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。

原文地址:https://www.cnblogs.com/kikochz/p/13551560.html