简单的局域网环境
主机A和主机B正常开启,允许ICMP协议分组通过。B ping A 的截图如下。
ping目标主机时抓取的网络数据包
分析上图的执行时序发现,ping动作完成之后,两台主机又互相确认了一下各自的IP地址和MAC地址,再次确认各自ARP表中数据的正确性。
这种询问和广播的频率需要确定一个合适的值,确保数据不过时又不会特别频繁。
删掉主机B的ARP缓存数据,再进行正常的ping操作。从下图执行时序可以看出,主机B的ARP缓存中没有主机A的IP地址对应的MAC地址记录,主机B需要先ARP广播,查询到主机A的MAC地址。
得到主机A的MAC地址后,B主机再发ICMP报文给A主机并等待回复报文。
C>arp –d 该命令用于删除ARP缓存数据
C>ping 192.168.1.122
删除ARP缓存数据后,再抓包,出现了ARP协议,广播查询MAC地址
执行过一次后ARP表建立起来了,再ping时直接就ICMP了。最后互相再确认一下彼此的地址,保证自己的ARP表正确。
ARP缓存数据建立后,再抓包发现不需要首先请求MAC地址了
主机A和主机B正常开启,允许ICMP协议包。A ping B 的截图如下。可见,正常ping通后,A和B又互相确认了一下对方的MAC地址。