ARP协议(Address Resolution Protocol,地址解析协议)主要作用是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。ARP协议将局域网中的32位IP地址转换为对应的48位物理地址,即网卡的MAC地址,如IP地址是192.168.0.10,而网卡MAC地址为00-1B-7C-17-B0-79,整个转换过程是一台主机先向目标主机发送包含IP地址和MAC地址的数据包,再通过MAC地址的两个主机,就可以实现数据传输了。
1.ARP工作原理
计算机在相互通信时,实际上是互相解析对方的MAC地址。其具体的操作步骤如下:
1)每台主机都会在自己的ARP缓冲区中建立一个ARP列表,表示IP地址和MAC地址的对应关系。
2)当源主机需要将一个数据包要发送到目的主机时,会检查自己ARP列表中是否存在该IP地址对应的MAC地址。如果存在则将数据包发送到这个MAC地址;如果没有就向本地网段发起一个ARP请求的广播包,来查询此目标主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址,以及目的主机的IP地址。
3)网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址相同。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中。
4)如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个ARP响应数据包,告诉对方自己是它需要查找的MAC地址。
5)当源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始传输数据。
2.查看ARP缓存表
在每台计算机中都保存着一个ARP缓存表,其中记录了局域网中其他IP地址对应的MAC地址,以便访问到正确的IP地址。ARP缓存表是可以查看的,也可以对其进行删除。在“命令提示符”窗口中输入arp -a命令,可以查看ARP缓存表中的内容,而用arp -d命令可以删除ARP表中所有的内容。