是的。这就是为什么需要一种机制将 IP 地址映射到以太网地址。这就是所谓的地址解析协议,或 ARP。实际上,ARP 并不局限于以太网,也用于其他类型的网络,例如业余无线电。ARP 背后的理念与大多数人在 150 人的人群中寻找张三先生时所做的事情完全相同:他们四处走动,呼喊他的名字,确信如果他在那里,他就会回应。
当 ARP 想要找出与给定 IP 地址对应的以太网地址时,它使用以太网的一个称为“广播”的功能,其中数据报同时寻址到网络上的所有站点。ARP 发送的广播数据报包含对 IP 地址的查询。每个接收主机将其与自己的 IP 地址进行比较,如果匹配,则向查询主机返回 ARP 回复。查询主机现在可以从回复中提取发送者的以太网地址。
当然,您可能会想知道主机如何知道要在遍布全球的无数以太网中的哪一个上找到所需的主机,以及为什么这甚至应该是以太网。所有这些问题都涉及到所谓的路由,即找出网络中主机的物理位置。这将是下一节的主题。
现在,让我们再多谈一点关于 ARP 的内容。一旦主机发现了以太网地址,它就会将其存储在其 ARP 缓存中,以便下次想要向该主机发送数据报时不必再次查询。但是,永远保存此信息是不明智的;例如,远程主机的以太网卡可能会因技术问题而被更换,因此 ARP 条目将变为无效。为了强制再次查询 IP 地址,ARP 缓存中的条目会在一段时间后被丢弃。
有时,也需要找出与给定以太网地址关联的 IP 地址。当无盘机器想要从网络上的服务器启动时,就会发生这种情况,这在局域网上是很常见的情况。然而,无盘客户端实际上没有关于自身的信息——除了它的以太网地址!所以它基本上所做的就是广播一条消息,恳求启动服务器告诉它它的 IP 地址。还有另一种协议用于此目的,名为反向地址解析协议,或 RARP。与 BOOTP 协议一起,它用于定义通过网络引导无盘客户端的过程。