为什么ARP请求的接收方更新其缓存表?
这是因为网络上使用的大多数协议将以请求/响应的形式出现。当主机A向主机B发送ARP请求时,主机A最有可能想要从主机B获得一些东西。单向通信并非闻所未闻,但它更有可能是主机A想要的双向通信。
如果主机B从主机A获得ARP请求,主机B可能会从主机A接收到一些东西,如果主机B没有更新其ARP表,那么如果主机B需要响应主机A时,它可能需要向主机A发送ARP请求,这会导致延迟和浪费带宽,但是当主机A向主机B发出ARP请求时,主机B可以简单地更新其ARP表,没有延迟或使用带宽。
现在,由于Ip数据报的路径是独立的,因此无法保证设备A的数据包将通过设备B发送。
请记住,这都是在同一层-2网络的MAC地址和ARP.IP在局域网上传递第三层数据包方面并没有发挥任何作用。如果LAN协议使用MAC,例如以太网,那么第2层帧直接从一个主机传送到另一个主机。
如果主机A和主机B在不同的局域网上,那么主机A将不会为主机B发送ARP请求,它将知道主机B位于另一层-3网络上,并且它将为其配置的网关(知道如何到达其他网络的局域网上的主机)发送ARP请求,尽管它可能已经在它的ARP表中为其配置的网关提供了MAC地址。