我正在观看一个解释 ARP 的视频,这很容易解释,但当他们说主机 A 已经知道另一个网络上的主机 D ip 地址时,我感到很困惑。
Host A 和 B 连接到交换机 1,交换机 1 连接到路由器,路由器有两个接口,因此交换机 2 连接到路由器上的另一个接口,主机 C 和 D 连接到交换机 2。
主机 A 如何知道主机 D 的 IP 地址,因为它在另一个网络上?
我正在观看一个解释 ARP 的视频,这很容易解释,但当他们说主机 A 已经知道另一个网络上的主机 D ip 地址时,我感到很困惑。
Host A 和 B 连接到交换机 1,交换机 1 连接到路由器,路由器有两个接口,因此交换机 2 连接到路由器上的另一个接口,主机 C 和 D 连接到交换机 2。
主机 A 如何知道主机 D 的 IP 地址,因为它在另一个网络上?
那是因为应用程序或您(通过应用程序或配置)告诉您的主机使用什么地址与不同的主机通信。如果您想连接到不同的主机,那么您必须知道地址,或者至少是从 DNS 服务器转换为地址的 DNS 名称。
主机将在其中配置(手动或自动使用 DHCP 之类的东西)一些地址,例如默认网关和 DNS 服务器的地址。如果您的应用程序使用名称而不是地址,它会使用名称并使用 DNS 服务器将名称转换为 IP 地址,以便可以联系目标主机。
在过去,所有主机名 -> IP 地址映射都列在本地文件 /etc/hosts 中。
但是随着互联网的发展(我们在这里谈论的是 1970 年代/1980 年代),它没有扩展,并且发明了域名系统 (DNS)*。您可以在 /etc/resolv.conf 中硬编码 DNS 服务器 IP 地址。每当您想与主机名通信时,解析器库都会连接到 DNS 服务器的(已知)IP 地址并将主机名解析为 IP 地址。
然后您的主机会确定该目标 IP 地址是在您的本地网络上,还是在不同的网络上。但是这个问题(路由、默认路由、DHCP)是另一回事了……
*有关DNS 的起源,请参阅1983 年 11 月发布的RFC 882,域名 - 概念和设施以及RFC 883,域名 - 实施和规范。