網路偵測 - daniel-qa/Network GitHub Wiki

網路偵測

Ping 和 Tracert

tracert 和 ping 是两个常用的网络诊断工具,它们都用于确定计算机与目标主机之间的网络通信状态,但它们使用的协议和功能略有不同。

  • 协议:

ping 使用的是 ICMP(Internet Control Message Protocol),它发送 ICMP Echo 请求到目标主机,并等待目标主机返回 ICMP Echo 回复。这种请求和回复通常用于测试目标主机是否可达以及网络延迟。

tracert 使用的也是 ICMP,但它还利用了 IP 头部的 TTL(Time-To-Live)字段,通过发送具有不同 TTL 值的 ICMP 封包来追踪到目标主机的路径。每个路由器在收到 ICMP 封包后,会将 TTL 减一,并且如果 TTL 到达零,路由器会丢弃该封包并发送 ICMP 时间超过的消息给源主机。这样,通过观察这些消息,tracert 可以确定到达目标主机的路径。 功能:

ping 主要用于测试目标主机是否可达以及计算往返时间(Round-Trip Time,RTT)。

tracert 主要用于追踪数据包从源主机到目标主机的路径,并显示每个路由器的 IP 地址以及往返时间(RTT)。 关系:

tracert 可以被视为 ping 的补充工具,因为它们都用于网络故障排除和诊断,但是 tracert 提供了更详细的信息,例如显示了数据包到达目标主机所经过的路由器。

在一些情况下,如果 ping 失败,但 tracert 成功,这可能意味着目标主机是可达的,但是目标主机或其防火墙可能阻止了 ICMP Echo 请求

反之亦然,如果 tracert 失败但 ping 成功,可能是因为目标主机在 ICMP Echo 请求的 TTL 到达时未响应。

总之,ping 和 tracert 是用于诊断网络连接问题的两个重要工具,它们可以相互协作以提供更全面的网络故障排除信息。

Trace 成功的意思

tracert 命令成功追踪到目标主机所在的路由路径,这意味着路由器和网络设备沿途都能够响应 tracert 发送的 ICMP 时间超过消息。 然而,当 tracert 命令结束时,它并不会发送 ICMP Echo 请求到目标主机,因此不会显示目标主机对 ICMP Echo 请求的响应情况。

所以,即使 tracert 成功,也不能保证目标主机会响应 ICMP Echo 请求。目标主机可能已经配置了防火墙或其他安全策略,以阻止或限制 ICMP Echo 请求,因此 ping 命令可能会失败。因此,在使用 tracert 和 ping 这两种工具时,需要考虑到目标主机可能的安全配置,以及不同工具的不同功能和响应情况。

Ping 成功的意思

在 ping 命令的输出中,RTT 时间通常会在一定的时间阈值内显示。

如果网络很快,RTT 时间可能会低于这个阈值,导致在命令输出中看不到明确的 RTT 时间。相反,如果网络延迟较高,超过了这个阈值,ping 命令会显示 RTT 时间,以提供有关网络连接质量的信息。

一般来说,如果网络延迟很低,RTT 时间可能会非常短,甚至在输出中不显示。但如果网络延迟超过了一定的阈值,ping 命令通常会显示 RTT 时间,以便用户了解网络连接的延迟情况。

所以,太快的网络可能不会显示 RTT 时间,而太慢的网络则会显示 RTT 时间,以提供对网络连接质量的更详细的评估。