当我ping
使用服务器时,我可能会得到两种结果:
- 暂停
- 主机关闭消息
该命令如何ping
知道主机是否已关闭?在这两种情况下,主机都不会对 ping 数据包发送任何响应,那么如何ping
区分呢?
答案1
主机关闭消息:
这表明您不知道到达目的地的路由,或者远程路由器报告它没有到达目的地的路由。
暂停:
表示没有收到 Echo Reply 消息。在默认时间内没有收到任何包。
答案2
响应之间的差异实际上不是由 ICMP 本身决定的,而是间接决定的。
ICMP 可以区分以下内容:
0 = net unreachable;
1 = host unreachable;
2 = protocol unreachable;
3 = port unreachable;
4 = fragmentation needed and DF set;
5 = source route failed.
但它对其他网络资源也一样。代码 0、1、4 和 5 可能来自网关。代码 2 和 3 可能来自主机。
如果根据网关路由表中的信息,目标网络不可达(例如,到网络的距离无穷大),网关可能会向数据报的互联网源主机发送目标不可达消息。此外,在某些网络中,网关可能能够确定互联网目标主机是否不可达。当目标主机不可达时,这些网络中的网关可以向源主机发送目标不可达消息,因此实际上不是 ICMP 在进行确定。
如果在目标主机中,IP 模块由于指示的协议模块或进程端口不活动而无法传送数据报,则目标主机可能会向源主机发送“目标不可达”消息。
最后,如果数据报必须分段才能由网关转发,但“不分段”标志处于打开状态,则网关将丢弃该数据报并返回“目的地不可达”消息。
现在来看一下这两种情况的区别:请求超时意味着在规定的时间内没有收到任何 Echo Reply 消息。这可能由多种不同的原因造成:ARP 请求失败、网络拥塞、数据包过滤、路由错误,甚至是静默丢弃。
当您收到来自 [IP 地址] 的回复:“目标主机无法访问”,则问题发生在远程路由器上或之后,其地址由 [IP 地址] 指示。因此,这是路由器告诉您它与目标地址之间存在问题。
答案3
如果计算机未连接到互联网,您就无法 ping 通,因为通过 ping 通您实际上是请求主机的 IP。