Answers:
响应之间的差异实际上不是由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。
如果根据网关的路由表中的信息,目的网络不可达(例如,到网络的距离是无限远),则网关可以将目的不可达消息发送到数据报的Internet源主机。另外,在某些网络中,网关可能能够确定Internet目标主机是否不可访问。当目标主机不可达时,正是这些网络中的网关可以将目标不可达消息发送到源主机,因此实际上不是ICMP进行确定。
在目标主机中,由于指示的协议模块或进程端口未激活,IP模块无法传送数据报的情况,则目标主机可能会向源主机发送“目标不可达”消息。
最后,如果必须将数据报分段以由网关转发,但“不分段”标志处于打开状态,则网关将丢弃该数据报并返回“目的地不可达”消息。
现在来区分这两种情况:请求超时意味着在设置的时间内没有收到Echo Reply消息。这可能是由许多不同的原因引起的:ARP请求失败,网络拥塞,数据包过滤,路由错误甚至是静默丢弃。
当您收到来自[IP地址]的答复:“目标主机不可达”时,则问题发生在远程路由器上或之后,该路由器的地址由[IP地址]指示。因此,这是一个路由器,它告诉您它和目标地址之间存在问题。