ARP的工作原理
在Packet Tracer模拟器中搭建网络拓扑,以及PC的基本配置,如下图所示。
然后是PC的基本配置
第一步,在第一个主机的命令行中输入"arp -a"命令查看其ARP高速缓存,结果如下图所示,ARP缓存中无任何信息
第二步,把Packet Tracer模拟器切换到"Simulation"模式,分别以第一个主机和第二个主机作为源地址和目的地创建一个简单PDU,观察报文发送效果。可以发现第一个主机发送了一个ARP广播报文,其他的主机都可以收到,如下图所示。
第三步,在报文中看出,接收方的IP地址是192.168.1.2,接收方MAC未知,以零填充。源IP地址为192.168.1.2,源MAC地址为00D0.FFA9.0309。这个ARP请求报文所对应的数据帧中,目的MAC地址是一个全1的广播帧,值为FFFF.FFFF.FFFF,说明该帧要广播到整个局域网中。
其他主机收到PC0主机广播报文的相关内容,如下图
其他主机收到广播报文之后发现自己并不是PC0所要请求的目的主机,因此丢弃报文。只有主机PC1做出了回应(因为PC0发送的数据报的目的IP地址是主机PC1的IP地址)
如下图所示,主机PC1发送的ARP响应报文。主机PC1在ARP响应报文中写入了自己的MAC地址。在ARP响应报文的数据帧中可以看到,这个帧中的目的MAC地址就是主机PC0的MAC地址。因此ARP响应报文是一个单播报文。
如下图所示,通信结束后再次查看主机PC0和主机PC1的ARP缓存,可以看到主机PC0和主机PC1的ARP高速缓存中都已经保存了对方的IP地址和MAC地址的映射关系。
第四步,在网络拓扑中增加一台新的主机PC4,对新增主机的PC进行基本的配置,搭建拓扑如下图
从主机PC0向主机PC4发送报文
观察模拟ARP的报文发送可知,第一个主机发送的ARP广播报文,其他的主机都可以收到,但其他三个主机不会做出回应,但目的主机PC4做出了回应。
第五步,通信结束后查看主机PC0和PC4的ARP缓存,可以看出加入新主机后MAC地址发生改变时,ARP高速缓存中的映射关系也发生了改变
以上便是ARP的工作原理