所谓的地址解析协议ARP是通过IP地址对硬件地址的解析。
我们进行网络通信时是两个地址的,一个是网络层的IP地址,
一个是数据链路层的硬件地址(MAC地址),也就是说我们
主机存在着两个地址。虽然存在着两个地址,但在实际数据
形成数据帧进行传输的时候,必须要用到硬件地址(MAC
地址)来进行传输的。所以当我们知道一台主机的IP地址,
却不知道一台主机的物理地址,是无法完成数据传输进行通
信的。为了解决这一问题就出现了地址解析协议ARP。有了
地址解析协议ARP,只要我们知道接收方的IP地址也可以
进行数据传输。网络层的IP地址到数据链路层的硬件地址
解析是自动完成的,我们是看不到的。这样让我们误认为
是在用IP地址来进行主机与主机之间的连接通信的,实际
上是通过硬件地址来进行连接的。那我们的地址解析协议
ARP从IP地址到硬件地址的解析过程是怎样的呢?
下面我就讲一下它的解析过程吧。
它的解析过程又有两种,一种是在发送方的ARP高速缓存
中记录有接收方的IP地址,另一种是没有记录接收方的IP
地址。有IP地址的话就可以直接获取到接收方的硬件地址,
没有IP地址的话就要以广播的形式对接收方进行ARP分组
请求。它们的分组请求都有相应的接收方响应。
如下图是ARP分组请求与分组响应的过程。
如图可以看出主机A是以广播的形式对本局域网的所有主机发送ARP请求分组。
然后主机B进行响应通过主机A的硬件地址对自己的硬件地址封装发送给主机
A,主机A就获得主机B的硬件地址保存在主机A的ARP高速缓存中。这样主
机A与主机B之间就可以进行数据传输了。
使用ARP的四种典型情况
- 发送方是主机要把IP数据报发送到本网络上的另一个主机。
这时用ARP找到目的主机的硬件地址。 - 发送方是主机,要把IP数据报发送到另一个网络上的一个
主机。这时用ARP找到本网络上的一个路由器的硬件地址。
剩下的工作由这个路由器来完成。 - 发送方是路由器,要把IP数据报转发到本网络上的另一
个主机。这时用ARP找到目的主机的硬件地址。 - 发送方是路由器,要把IP数据报转发到另一个网络上的
一个主机。这时用ARP找到本网络上另一个路由器的硬件地
址。剩下的工作由这个路由器来完成。