该ping
实用程序在网络层之上运行,而 DNS 在应用层中运行。
如果我们尝试ping www.google.com
,由于 DNS 在这些层之上,它如何解析 GOOGLE 的 IP 地址?
该ping
实用程序在网络层之上运行,而 DNS 在应用层中运行。
如果我们尝试ping www.google.com
,由于 DNS 在这些层之上,它如何解析 GOOGLE 的 IP 地址?
ICMP(协议)可以与 TCP 一起在 IP 之上运行,但ping
程序本身几乎可以肯定仍然使用正常的名称解析方法,无论是 DNS、主机文件还是resolv.conf
.
例如,ping
位于此处的程序调用gethostbyname()
将 DNS 名称转换为 IP 地址。
当然,在 Windows 计算机上,ping 还使用 LLMNR(链路本地多播名称解析)来执行主机名解析。如果一台计算机只有 LLMNR 知道并且失败的服务依赖于 DNS,那么主机可能会被很好地 ping 通,而其他服务仍然失败。反之亦然:DNS 可能工作但 ping 失败
主机名仍然通过 DNS 解析,之后 ping 使用 ICMP 进行实际通信。您可以尝试将 DNS 配置更改为无效的服务器,并查看 ping 不适用于主机名。