下图显示了当计算机尝试 使用“ ping”程序联系同一LAN上的远程计算机时使用arp的情况。假定没有从此计算机接收到以前的IP数据报,因此必须首先使用arp来标识 远程计算机的MAC地址。
该ARP请求消息(“谁是XXXX告诉YYYY”,其中XXXX和YYYY是IP地址)使用以太网发送广播地址,并且值0x806以太网协议类型。由于是广播,因此它由同一冲突域(LAN)中的所有系统接收。这样可以确保将查询的目标连接到网络,它将收到查询的副本。仅此系统响应。其他系统静默丢弃该数据包。
目标系统形成arp响应(“ XXXX为hh:hh:hh:hh:hh:hh”,其中hh:hh:hh:hh:hh:hh是IP地址为XXXX的计算机的以太网源地址)。该数据包单播到发送查询的计算机的地址(在本例中为YYYY)。由于原始请求还包括发出请求的计算机的硬件地址(以太网源地址),因此这是已知的,不需要其他arp消息即可找到。
Gratuitous ARP 无故ARP
当节点(终端系统)选择了一个IP地址,然后希望在局域网上保护其选择的地址时(即检查是否其他节点都没有使用相同的IP地址),则使用免费ARP。它也可以用于强制查看节点IP地址的通用视图(例如,在IP地址更改之后)。
在首次配置接口时,通常会使用此选项,因为节点会尝试清除其他主机上可能存在的所有过时的缓存。节点只是为其自身发送arp请求。
Proxy ARP 代理ARP
代理ARP是节点在代表另一个节点响应arp请求时给出的名称。这通常用于将发送到一个IP地址的流量重定向到另一系统。
代理ARP也可用于将流量从预期的接收者那里转移出去。通过响应而不是预期的接收者,节点可以伪装成网络中的其他节点,因此可以将定向到该节点的流量重定向到其自身。然后,该节点可以查看流量(例如,在将流量转发到最初预期的节点之前)或可以修改流量。因此,不正确使用代理ARP是一个重大的安全漏洞,因此某些网络实施了系统来检测此漏洞。免费ARP还可以帮助保护正确的IP与MAC绑定。