TCP 连接之间是否存在性能差异:
- 本地主机/127.0.0.1
- 解析到本地计算机的域
或者更具体地说,后面的连接是通过环回设备还是通过实际网络?
我问的原因是我正在考虑更改许多 PHP 应用程序中的数据库设置,以便它们使用完整的域而不是本地主机。这样,如果需要,我们可以更轻松地将数据库移动到不同的服务器。
这取决于实现和操作系统。在 Windows 上,任何连接到本地 IP 地址的内容(即使它是面向外部的 IP)都将通过环回。对于数据包嗅探器等应用程序来说,这是一个已记录的问题,因为您无法嗅探环回。 (Windows 并不将环回视为“设备”——它是在网络级别处理的。)但是,在这种情况下,它会对您有利。
相比之下,Linux 将遵循路由表中的任何内容,因此发往本地计算机的数据包will如果路由表配置不正确,请通过网络访问本地计算机。然而,在 99% 的情况下,路由都会被正确配置。您的数据包不会通过环回设备,但 TCP/IP 堆栈会知道您正在联系本地 IP,并且它实际上会在正确的以太网设备中传出和返回。
在正确配置的环境中,使用域名的唯一瓶颈是 DNS 解析时间。联系外部 DNS 可能会给您的配置增加额外的延迟。但是,如果您将域名添加到 /etc/hosts 文件中(C:\Windows\System32\drivers\etc\hosts
在 Windows 上),您的系统将跳过 DNS 解析阶段并直接获取 IP,从而使这个时间成本变得毫无意义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)