使用 IP 地址是不是比使用域名更快?

Posted

技术标签:

【中文标题】使用 IP 地址是不是比使用域名更快?【英文标题】:Is using the IP address faster than using the domain name?使用 IP 地址是否比使用域名更快? 【发布时间】:2013-04-04 13:11:03 【问题描述】:

假设域映射到的 IP 地址是已知的,使用这个已知的 IP 地址而不是使用域有什么好处?是什么决定了跟踪路由决策?因为 DNS 服务器将域名转换为 IP 地址,所以我不得不说使用 IP 地址更快,虽然不明显。但是,由于 DNS 服务器处理这些请求的数量很大,并且可能会缓存最受欢迎的站点,所以我也不得不说 DNS 服务器可能知道到服务器的最快路由,这将导致域稍微快一些。我知道,当我询问哪个可能更快时,这种量化可能是纳秒或微秒级的。

【问题讨论】:

【参考方案1】:

从技术上讲,是的。至少是第一次。您的计算机第一次询问互联网“此域名位于何处?”并且那里的某些机器会使用其 IP 地址进行响应。 但是,当它收到此响应时,它会保留一份副本(称为缓存),因此它不必再询问一段时间(这些事情可以改变,但很少发生)

因此,如果您的计算机当前缓存了 IP,那么它们是相等的。如果您目前没有它,IP 会更快,但只是几天后的第一次,只有几秒钟

关于如何选择最快路线的问题。有几种路由协议,其中大多数考虑了几个不同的因素,包括连接负载、带宽、延迟、抖动和距离。其他几个也是可能的。长话短说,互联网上的路由器不断地相互告诉对方某个链接已断开,或者我刚刚连接了一个新地址,它们有路由器运行的算法来确定哪种方式最好。

注意附带说明一下,IP 并不总是让您访问某个网站:例如托管在托管服务上的网站。他们很少有自己的特定 IP 地址,但对许多不同站点的请求可能会进入一个 IP。在这种情况下,被请求的域名用于确定将哪个站点返回给请求者

【讨论】:

【参考方案2】:

你给出的两个例子都是正确的。直接输入 IP 地址将绕过 DNS 查找的需要,但是如果您将 IP 地址用于将您带到世界另一端而不是附近的服务器的流行网站,那么这样做所获得的优势可能毫无意义。归根结底,您不会获得足够的好处来让它值得您花时间,特别是因为您的计算机会缓存您从 DNS 查找中收到的响应,从而使差异为 0。

【讨论】:

【参考方案3】:

@PsychoData 很好地回答了这个问题,但我认为这里有几点值得注意并重申:

使用 IP 时,您会绕过 DNS,这将在第一次调用时为您节省 DNS 解析时间,直到 TTL(生存时间)到期。 TTL 通常为 1 小时。在大多数应用程序中,这种差异通常并不值得注意。如果你只打一个电话,你不会注意到毫秒延迟。如果您拨打多个电话,第一个电话之后的所有电话都不会有延迟。 在输入名称与 IP 时,您可以调用多个不同的网络守护程序,包括 NetBios (\ServerX)、DNS FQDN (\ServerX.domain.com)、DNS 短名称 (\ServerX 可能操作系统或 DNS 服务器自动延长或猜测到 FQDN \ServerX.domain.com) Microsoft 有两个用于 SMB 共享的主要身份验证机制:NTLMv2(NTLMv1 和 CHAP 不安全)和 Kerberos。根据您的客户端、服务器和身份验证服务器(如果使用 Active Directory)上的大量配置以及您调用名称的方式,您可能会得到其中一个。 Kerberos 通常比 NTLMv2 快,至少对于重复调用来说是这样,因为它获取并保留身份验证令牌,并且不需要每次都通过密码哈希重新进行身份验证。 NetBIOS 使用与 DNS 不同的端口,这可能会由于 ACL/路由器/防火墙而导致网络延迟。 NetBIOS 实际上可以为您提供与 DNS 不同的答案,因为它是一个不同的解析系统。通常,在子网上启动的第一台 PC 将充当 NetBIOS 服务器,而新服务器可以随机向网络声明自己为新的 NetBIOS 主机。此外,\FileShareServer.domain.com 不会在 NetBIOS 查找中返回,因为它不是机器名称 (ServerX),而是 DNS 别名。

我可能在这里遗漏了更多的东西,但我想你知道这里有很多因素在起作用。

【讨论】:

以上是关于使用 IP 地址是不是比使用域名更快?的主要内容,如果未能解决你的问题,请参考以下文章

使用bind提供域名解析服务

使用Bind提供域名解析服务(正向解析)

使用 IP 地址而不是域名发送电子邮件

是否可以使用本地IP地址而不是域名来安装gitlab?

如果我们使用域名而不是IP地址,我会收到405错误

域名和IP访问