每台主机都会在自己的 ARP 缓存区建立一个 ARP 缓存表,这个表里面就存着每个 ip 地址和所对应的 mac 地址的映射关系,当本台主机将一个数据包要发送到另外一个目的主机时:
(1)会先检查自己的 ARP 缓存表,在 ARP 缓存表中检查数据包的目的 ip 是否存在对应的 mac 地址,如果存在,则直接将数据包发送到这个 mac 地址,如果不存在,则向本地网段发送一个请求 ARP 的广播包,
(2)这个广播的目的:来查询这个目的主机所对应的 mac 地址,此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址,此时本地网段内的所有主机都接收这个数据包,然后检查自己的 ip 是否和数据包的目的 ip 一致,如果不相同则直接丢弃,相同的话,先将发送段的 mac 地址和 ip 存到本机的 ARP 缓存表内,如果已经存在该映射关系那么直接覆盖,然后给发送端主机(也就是源主机)发送一个 ARP 的响应数据包,告诉它 mac 地址,源主机收到数据包之后,将 mac 地址和 ip 存入本机的 ARP 缓存表内,然后开始传输数据,如果广播之后一直没有接收到响应数据包,那么说明本地网段内没有该目的 ip 的 mac 地址存在