ARP
用于知道目的主机 IP 地址而不知道物理地址时。
请求:用于从 IP 地址得到物理地址。请求帧是广播,其中包含目的主机的 IP 地址,其意思是“如果你是这个 IP 地址的拥有者,请回答你的物理地址”。
应答:应答帧是单播。当目的主机收到 ARP 请求帧时,它将返回一个应答帧,其中包含它的物理地址。与此同时,它将请求帧中的源 IP 和源物理地址保存在它的 ARP 缓存中。
免费 ARP (gratuitous ARP):
1) 一个主机可以通过它来确定是否有其他主机设置了相同的 IP 地址。免费 ARP 是广播帧,其中包含源主机的 IP 地址和物理地址,其意思是“如果你是这个 IP 地址的拥有者,请回答”。发送主机并不希望收到应答,但一旦收到应答,系统将会报错:“IP 地址重复”。
2) 如果发送免费 ARP 的主机正好改变了硬件地址,那么免费 ARP 可以使其他主机更新其 ARP 缓存中旧的物理地址。它基于这个 ARP 协议事实 [Plummer 1982]:如果主机收到某个 IP 地址的 ARP 请求,而且它已经在接收者的 ARP 缓存中,那么就要用该 ARP 请求中的发送端硬件地址对 ARP 缓存中的内容进行更新。
RARP
一般用于无盘机或无盘工作站启动时,此时无盘机知道自己的物理地址,需要获得 IP 地址。
请求:用于从物理地址得到 IP 地址。请求帧是广播,其中包含源主机的物理地址,其意思是“如果你是 RARP 服务器,请回答我的 IP 地址”。
应答:应答帧是单播。当 RARP 服务器收到 RARP 请求帧时,它将返回一个应答帧,其中包含源主机的 IP 地址。