正如标题所述。我尝试了ping
一组我不确定是否存在的服务器。总共有 10 台服务器。其中两台 ping 成功,timed out
而其他八台 ping 成功could not find host
。2 个超时的服务器显示一个 IP,该 IP 在 ping 时也会超时。我快速nslookup
检查了这些服务器,发现它们没有任何 DNS 条目。ping 失败时“找不到主机”和“超时”有什么区别?
答案1
对计算机执行 ping 操作很像发送邮件。假设我想向 发送 ping 操作google.com
。我要做的第一件事就是弄清楚 在哪里google.com
。对于邮件,您可以使用电话簿 - 这会将名称转换为邮件系统可以理解的地址。计算机使用所谓的 DNS(域名系统)服务器 - 这与nslookup
查询特定名称时显示的内容相同。如果ping
在 DNS 中找不到给定名称,则它会返回Could not find host
。
好了,我们有了 IP 地址,现在该做什么呢?现在我们必须路由它。IP 地址很像街道名称 - 它为您提供一个具体的位置,但不会告诉您在哪里那条街是(好吧,你可以把这些信息保存在一个大表中,但它会巨大的,而且大多无用。当你只给你的祖母发邮件时,为什么要跟踪每个国家每条道路的坐标?)。还有一个其他信息可以解决这个问题 - 邮政编码。你可能不知道街道在哪里,但你知道该邮政编码的邮件系统会知道,而且因为邮政编码有点有序(请耐心听我说),你知道如何将它送到该邮政编码。对于计算机,这称为 MAC 地址。计算机始终知道它直接连接到哪些 MAC 地址,以及它们知道如何路由哪些 IP。当计算机或路由器需要发送数据包时,它会查找哪个 MAC 地址负责处理该 IP,然后将数据包发送到该系统。如果没有系统负责该 IP,它将返回No route to destination
。(想象一下试图向月球发送邮件。邮递员只会用奇怪的眼神看着你并将它交还。)
现在,如果邮件到达目标,他们仍然必须发送回复。通常,这既快速又简单,您只需测量发送消息和收到回复之间的时间即可。但有时,回复会在邮件中丢失。或者奶奶睡着了,忘记查看她的邮件。无论哪种情况,即使等了整整一周,您也不会收到回复!最终,您只能放弃。对于计算机来说,这是Request timed out.
至于您关于没有 DNS 条目的计算机的问题,大多数路由器将自身用作 DNS 缓存,如果计算机在请求 DHCP 租约时提交了主机名,则路由器会为向其请求 DHCP 租约的计算机添加虚假的 DNS 条目。这就是为什么有时可以 ping 计算机的主机名的原因。Windows 系统还会跟踪 NetBIOS 名称(通常是连接到同一子网并启用了共享的 Windows 计算机的主机名),并会尝试将这些名称解析为 IP 地址(如果请求)。我不记得这是否适用于ping
,但它不适用于nslookup
,因为nslookup
它专门用于检查 DNS 条目,而不是 NetBIOS 条目。
答案2
嗯,这与 OSI 模型有一点关系,与网络模式也有一点关系。
Ping 超时通常意味着有什么东西阻碍了 ping 操作。
未找到设备字面意思是 Ping 能够出去寻找设备,但无法找到它。
Ping 在第一层运行。如果打开网卡并对其进行 ping,则会找到它。这就是您所能做的一切,它会验证设备是否物理存在。如果找不到设备,则表示它所查找的位置没有 NIC。
如果超时,可能是防火墙之类的东西阻止了它。Ping 无法完成,所以可能存在问题,但 Ping 无法判断。
答案3
Timed out
表示知道另一台机器的 IP 地址,通常是通过 DNS 找到的,但您发送的 ping 请求没有得到任何响应。这通常是因为另一台机器配置为不响应 ping,或者因为它有防火墙阻止了 ICMP ping 消息。
Could not find host
意味着无法通过 DNS 找到另一台机器的 IP 地址,因此无法尝试发送 ping。