计算机如何知道另一个网络上的计算机的 IP 地址

网络工程 网络 IP地址 arp
2021-07-16 05:00:58

我正在观看一个解释 ARP 的视频,这很容易解释,但当他们说主机 A 已经知道另一个网络上的主机 D ip 地址时,我感到很困惑。

Host A 和 B 连接到交换机 1,交换机 1 连接到路由器,路由器有两个接口,因此交换机 2 连接到路由器上的另一个接口,主机 C 和 D 连接到交换机 2。

主机 A 如何知道主机 D 的 IP 地址,因为它在另一个网络上?

2个回答

那是因为应用程序或您(通过应用程序或配置)告诉您的主机使用什么地址与不同的主机通信。如果您想连接到不同的主机,那么您必须知道地址,或者至少是从 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,域名 - 实施和规范