ping 和 tracert 有什么区别?

ping 和 tracert 有什么区别?

我基本上知道两者的区别,但我很难在纸上表达出来。如果有人能告诉我关于这两者更详细的解释,我会非常感激。

所以我的问题是,有人能否更详细地解释一下 cmd 中 ping 和 tracert 功能之间的区别?

答案1

听起来你在谈论 Windows,是吗?

PING 向指定的目标主机发送 ICMP 回显请求数据报。如果配置了目标主机,它将发回 ICMP 回显回复数据报。人们通常认为使用 PING 来判断主机的“可达性”。您可以改变 PING 数据包的大小并观察往返时间,以了解源主机和目标主机之间的网络带宽状况(当然,还可以测量延迟)。

顺便说一句,新手常犯的一个错误是,认为因为你从未收到回复,所以你的回显请求数据报没有到达远程主机。没有收到回复说明你的回显请求没有到达目标主机或者目标主机的回复未返回给您。没有 PING 回复并不能说明任何结论。

Microsoft TRACERT 实用程序旨在提供与 Unix“traceroute”实用程序类似的功能。Microsoft 的 TRACERT 会发出 ICMP 回应请求数据报,并增加“生存时间”(TTL) 值。TTL 决定 IP 数据报可以通过多少个主机转发。转发数据报的每个主机都会减少 TTL,直到达到零,此时将计数减为零的主机会向已停止“生存”的数据报的来源主机发送 ICMP 生存时间超出的数据报。通过发送具有增加的 TTL 值的数据报并观察生存时间超出的数据报来自何处,可以生成出站数据报经过的“跳数”的“地图”,以及有关数据报往返所用时间的信息。

顺便说一下,Unix“traceroute”使用 UDP 数据报而不是 ICMP 来执行类似的功能。

答案2

可以将 ping 想象成潜艇上的声纳 ping。您将数据包发送到特定主机,并接收数据包。它会让您知道主机正在运行并响应 ICMP ping 流量。如果它没有响应,则表明它已关闭或配置为不响应 ping,或者您与主机之间存在其他连接问题(无论是传出还是传入)。

Tracert 会显示数据包从本地系统到远程主机的路径。您可以看到沿途每一步的响应时间,因为每个数据报的 TTL(生存时间)都比前一个数据报长一跳。这可用于排除连接问题,因为您可以定位问题的根源。

在 Windows 上,这两种工具都使用 ICMP 来完成其任务。

答案3

ping 本质上是点对点流量 tcp 流量时间。tracert 是数据包从点到点到达其路由中每个点所花费的时间。

答案4

Tracert 列出了消息从源到目的地经过的位置。Ping 只表示计算机目的地回答“是的,我在这里”。Traceroute 就像您在骑行路线时为朋友指引来您家的方向 - “在 5 号右转,在 10 号左转,沿 640 号向北行驶,在 251 号高速公路左转”Ping 就像一通电话,对方接听并说“我到家了”,然后挂断电话。---- Naga Royal

  • ping在数据平面进行处理并显示延迟
  • tracert在控制平面中处理并显示路径选择

相关内容