既然您已经了解了 IP 地址是如何构成的,您可能想知道它们如何在以太网或令牌环网络上用于寻址不同的主机。毕竟,这些协议有自己的地址来识别主机,这些地址与 IP 地址完全不同,不是吗?是的。
需要一种机制将 IP 地址映射到底层网络的地址。使用的机制是地址解析协议 (ARP)。事实上,ARP 不仅限于以太网或令牌环,还用于其他类型的网络,例如业余无线电 AX.25 协议。ARP 背后的思想与大多数人在 150 人的拥挤人群中寻找 X 先生时所做的事情完全相同:想要找到他的人会大声喊叫,以便房间里的每个人都能听到,并期望如果他在那里,他会回应。当他回应时,我们就知道他是谁了。
当 ARP 想要查找与给定 IP 地址对应的以太网地址时,它使用以太网的一项功能,称为广播,其中数据报同时寻址到网络上的所有站点。ARP 发送的广播数据报包含对 IP 地址的查询。每个接收主机将此查询与其自身的 IP 地址进行比较,如果匹配,则向查询主机返回 ARP 答复。查询主机现在可以从答复中提取发送者的以太网地址。
您可能想知道主机如何访问可能位于世界另一端不同网络上的 Internet 地址。这个问题的答案涉及到路由,即在网络中查找主机的物理位置。我们将在下一节进一步讨论这个问题。
让我们再多谈一点关于 ARP 的内容。一旦主机发现了以太网地址,它就会将其存储在其 ARP 缓存中,以便下次想要向相关主机发送数据报时不必再次查询。但是,永远保留此信息是不明智的;远程主机的以太网卡可能会因技术问题而被更换,因此 ARP 条目将变为无效。因此,ARP 缓存中的条目会在一段时间后被丢弃,以强制再次查询 IP 地址。
有时还需要查找与给定以太网地址关联的 IP 地址。当无盘机器想要从网络上的服务器启动时,就会发生这种情况,这在局域网中是一种常见情况。然而,无盘客户端几乎没有关于自身的信息——除了它的以太网地址!因此,它会广播一条消息,其中包含一个请求,要求引导服务器为其提供 IP 地址。还有另一种协议用于这种情况,名为反向地址解析协议 (RARP)。与 BOOTP 协议一起,它用于定义通过网络引导无盘客户端的过程。