ARP与RARP都属于网络层协议,但是他们是为了解决链路层的帧转发问题,ARP的功能是将IP解析成MAC地址,而RARP则相反。
ARP
地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址。
① 首先,每个主机都有一个ARP列表,以缓存IP地址和MAC地址之间的对应关系。
②当源主机要发送数据时,首先检查ARP列表中是否有对应的IP地址的目的地址的主机的MAC地址,如果有,则直接发送数据。如果没有,则以广播的形式向本子网所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机MAC地址,目的主机的IP地址。
③当本网段的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否有自己的IP地址,如果没有,则忽略该数据包。如果有,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
④源主机收到ARP响应包后,将目的主机的IP和MAC地址写入到ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP相应数据包,表示ARP查询失败。广播发送ARP请求,单播发送ARP响应。
使用ARP协议的四种典型情况
(1) 发送方是主机,要把 IP 数据发送到本地网络上的另一个主机。这时用ARP获取目的主机的MAC地址。 (2) 发送方是主机,要把 IP 数据发送到另一个网络上的一个主机,这时需要使用ARP获取路由器的MAC地址,