ARP表
  

提起ARP表必然先想起ARP(address resolution protocol)协议,地址解析协议。
  在实际应用中,我们经常遇到这样的问题:已知一个机器的IP地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址,需要知道其MAC地址。如果两个都需要去记忆或输入,大大增加了其繁琐程度。地址解析协议ARP就是用来解决这样的问题的。
  由于IP协议使用了ARP协议,因此通常把ARP协议划归到网络层。但ARP协议的用途是为了从网络层使用IP地址,解析出在链路层使用的硬件地址。
  每一台主机都设有一个ARP高速缓存,里面有本局域网上的各种主机和路由器的IP地址到硬件地址的映射表,表里面的内容由ARP协议进行动态更新。表内的数据会老化,达到老化时间会自动删除,在此通信时,由ARP协议重新添加。
通信过程
有PC0,PC1两台主机
使用思科的仿真模拟器能直观的看出通信过程

Android arp表读不了 arp表信息_Android arp表读不了

  PC0向PC1发送一个ping报文,向PC0输入1.1.1.3 然后开始发送,PC0先查询本地APR表查询1.1.1.3对应MAC地址,但并没查到,这种情况PC0在本局域网上广播发送一个ARP请求分组。ARP请求分组的主要内容是:

我的IP地址是1.1.1.2,硬件地址是xx-xx-xx-xx-xx-xx。我想知道IP地址为1.1.1.3的主机的硬件地址。

  在本局域网上的所有主机上运行的ARP进程都会收到此ARP请求分组。PC1的IP地址与ARP请求分组中要查询的IP地址一致,就收下ARP请求分组,并向PC0发送ARP响应分组,同时在这个ARP响应分组中写入自己的硬件地址。其余主机ip地址都与ARP请求要查询的ip地址不一致,不做任何回应。
响应内容为:

我的ip地址是1.1.1.3,我的硬件地址是xx-xx-xx-xx-xx-xx

虽然ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个原地址发送到一个目的地址。
接下来PC0就可以使用刚获取的PC1MAC地址,进行icmp数据发送。