【正确答案】ARP(AddressResolutionProtocol,地址解析协议)是一个位于TCP/IP协议栈中的低层协议,它用于映射计算机的物理地址与网络IP地址。在Internet分布式环境中,每个主机都被分配了一个32位的网络地址,此时就存在将计算机的IP地址与物理地址之间的转换问题。ARP所要做的工作就是在主机发送帧前,根据目标IP地址获取MAC地址,以保证通信过程的顺畅。
其具体过程如下:首先,每台主机都会在自己的ARP缓冲区中建立一个ARP列表,用于存储IP地址与MAC地址的对应关系。然后当源主机需要将一个数据包发送到目标主机时,会先检查自己的ARP列表是否存在该IP地址对应的MAC地址。如果存在则直接将数据包发送到该MAC地址;如果不存在,就向本地网段发起一个ARP请求的广播包,用于查询目标主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址以及目标主机的IP地址等。网络中所有的主机收到这个ARP请求之后,会检查数据包中的目的IP是否与自己的IP地址一致,如果不同就忽略此数据包;如果相同,该主机会将发送端的MAC地址与IP地址添加到自己的ARP列表中。如果ARP列表中已经存在该IP地址的相关信息,则将其覆盖掉,接着给源主机发送一个ARP响应包,告诉对方自己是它所需要查找的MAC地址。最后源主机收到这个ARP响应包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应包,则表示ARP查询失败。
RARP与ARP工作方式相反。RARP发出要反向解析的物理地址并希望返回其对应的IP地址,应答包括由能够提供所需信息的RARP服务器发出的IP地址。RARP获取IP地址的过程如下:首先需要知道自己IP地址的机器向另一台机器上的服务器发送请求,并等待服务器发出响应,开始不知道服务器的物理地址,所以通过广播。一旦通过广播对地址的请求,就必须唯一标识自己的硬件标识(如CPU序列号),这个标识能让可执行程序容易获得。源主机收到从RARP服务器的响应消息后,就可以利用得到的IP地址进行通信。
【答案解析】