知道了IP地址,但是不知道MAC地址(硬件地址或者是物理地址),ARP是解决同一局域网上的主机或者是路由器的IP地址和硬件地址的映射问题。
ARP定义
ARP(地址解析协议):用于映射计算机的物理地址与网络IP地址,所做的工作就是在主机发送帧之前,根据目标IP地址获取MAC地址,确保通信顺畅。
具体过程:
- 每台主机都会在自己的ARP高速缓冲区建立一个ARP列表,用于存储IP地址与MAC地址的对应关系。当源主机需要发数据包到目标主机时,先检查自己的ARP列表中是否存在该IP地址对应的MAC地址,如果存在则直接将数据包发送到该MAC地址。
- 如果源主机没有目标主机的MAC地址时就需要向本地网段发一个ARP请求的广播包,用于查询目标主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、NAC地址及目标地址的IP地址。
- 网段中所有主机收到这个ARP请求后,看数据包中包含的IP地址是否与自己的IP地址一致,如果不一样就忽略;如果一致就把发送端的MAC地址和IP地址添加到自己的ARP列表中,如果该对应关系已经存在,则将其覆盖掉,然后给源主机发送一个ARP响应包(单播),响应包包括自己的IP地址和MAC地址。
- 源主机收到目标主机的响应后,将目标主机的IP地址的和MAC地址添加到自己的ARP列表中,并用此消息开始数据的传输。
- 如果源主机一直没有收到ARP响应包,则提示ARP查询失败。
【注意】目标主机收到ARP请求后,就把源主机的MAC地址和IP地址添加到自己的ARP列表中,以后通信就方便了。