根据我从CS50x中学到的信息,互联网上的每台计算机都有自己独特的公共IP地址。一些计算机在客户端用于访问网站,而另一些计算机则用作响应请求的服务器(通过从其计算机数据库提供数据,或者更广泛地说,为客户提供某种“服务(S)”)。当客户访问网站时,他们必须通过地址栏向他们想要访问的特定服务器提出请求,通常是通过键入域名(创建域名的目的是不让用户记住他们访问的网站的IP地址)。但是,必须将域名“转换”为要处理的请求的IP地址,DNS负责处理请求。到目前为止,有一点让我感到困惑:
为什么需要将域名转换为由客户端访问的服务器的IP地址?我的假设是,这与一个域名可以“映射到”多台计算机以及由此产生的IP地址有关,因此有必要分别识别每台计算机。此外,也许它允许以更标准化的方式识别“全局”网络上的“节点”(计算机网络)(因为不作为网络服务器的计算机没有域名)。无论如何,更彻底的解释将不胜感激。
现在,我还了解到,有些网站不能在一台计算机上托管,因为它们的流量太多,这会使它们在一台计算机上运行太慢。这意味着该网站将有多个IP地址来承载它。在这种情况下,DNS将如何将域名转换为IP地址?如果DNS选择在给定域名时返回另一个IP地址,客户端如何访问网站中“在特定计算机服务器上”的部分?我的意思是,假设我们正在考虑一个拥有一个庞大数据库的网站,比如雅虎金融公司。可能有多台计算机服务器承载该网站。假设每台计算机存储数据库的一部分(因为数据库太大,一台计算机无法全部存储)。然后,如果客户端使用域名向服务器发出请求,DNS如何知道返回包含用户正在查找的信息的特定计算机的IP地址?
发布于 2022-10-14 04:47:15
为什么需要将域名转换为由客户端访问的服务器的IP地址?
因为因特网工作在IP地址上-- IPv4或IPv6。它由大量通过网关互连的IP网络组成。
您不可能使用DNS名称进行路由。在发送请求之前,任何名称都需要转换为IP地址。您可以考虑DNS作为一个附加或覆盖。基本上,它只存在于我们人类,所以我们不需要记住IP地址(不是完全正确,但让我们把它留在这里)。
在这种情况下,DNS将如何将域名转换为IP地址?
有很多方法可以实现负载平衡。您可以将单个DNS名称解析为多个IP地址,在服务器集群前面使用负载均衡器,在多个命名服务器之间分发web数据对象,在地理位置上分发具有相同IP地址的服务器(anycast),以及更多的服务器(几乎任何组合)。
如果DNS选择在给定域名时返回另一个IP地址,客户端如何访问网站中“在特定计算机服务器上”的部分?
DNS只是提供名称解析的记录。客户需要弄清楚。如果DNS记录解析为多个IP地址,通常客户端只选择第一个或一个随机地址。每个地址后面的服务器(S)必须能够满足任何合理的请求。没有“不知道,问另一个”的回复,客户端只能在无法建立连接的情况下尝试另一个。
分布式数据库是完全不同的东西。基本上,它们不是由客户机直接查询/使用的,而是由服务器后端查询/使用的。
发布于 2022-10-14 11:40:26
为什么需要将域名转换为由客户端访问的服务器的IP地址?我的假设是,这与一个域名可以“映射到”多台计算机以及由此产生的IP地址有关,因此有必要分别识别每台计算机。此外,也许它允许以更标准化的方式识别“全局”网络上的“节点”(计算机网络)(因为不作为网络服务器的计算机没有域名)。无论如何,更彻底的解释将不胜感激。
它与域名能够映射到不同的It没有任何关系。就像Zac67 67说的那样,互联网就是这样建立起来的。
互联网上的每台计算机都有一个分配给它的公共IP地址。计算机要向另一个计算机发送数据包,就必须知道它要发送数据包的计算机的IP地址( IP存储在发送的每个数据包中)。
当你通过一个域名访问一个网站时,你基本上是在向它发送数据包,告诉它“嘿,给我这个网页的数据”,所以首先你需要知道它的IP地址。
在这种情况下,DNS将如何将域名转换为IP地址?
DNS在许多级别上都能工作。您自己的计算机上有DNS查找表(尝试在计算机上查找hosts文件)。您的ISP也将为您提供一组DNS服务器,如果您知道如何为调制解调器指定您自己的DNS服务器,也可以指定您自己的DNS服务器。
这些DNS查找表中的一些将优先于其他表。例如,您的本地DNS查找表将覆盖所有内容(因此您可以使用它来路由任何您想要的流量)。
如果DNS选择在给定域名时返回另一个IP地址,客户端如何访问网站中“在特定计算机服务器上”的部分?
这是相当复杂的。通常,大型web服务器将其计算机分成应用服务器(不包含任何数据)和CDN服务器/数据库(存储照片或个人数据)。DNS通常指向应用服务器,这只会给出生成网页所需的代码。这些生成的代码( 1)访问来自数据库的数据以服务,以及( 2)告诉客户端(您的浏览器)从CDN服务器检索媒体。
这些数据库和CDN服务器可以在不同的服务器上同步它们的数据,它们是为此而专门构建的。如果您想看到CDN的例子,只需查看Facebook上任何图像的URL即可。
然后,如果客户端使用域名向服务器发出请求,DNS如何知道返回包含用户正在查找的信息的特定计算机的IP地址?
请看上面的要点。
https://serverfault.com/questions/1113041
复制相似问题