该如何解释呢?
C:\Documents and Settings\Administrator>tracert google.com
Tracing route to google.com [64.233.189.104]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 192.168.0.1
2 7 ms <1 ms <1 ms reserve.cableplus.com.cn [218.242.223.209]
3 108 ms 135 ms 163 ms 211.154.70.10
4 * * * Request timed out.
5 2 ms * 1 ms 211.154.64.114
6 1 ms 1 ms 1 ms 211.154.72.185
7 1 ms 1 ms 1 ms 202.96.222.77
8 2 ms 1 ms 2 ms 61.152.81.145
9 1 ms 2 ms 1 ms 61.152.86.54
10 1 ms 1 ms 1 ms 202.97.33.238
11 2 ms 2 ms 2 ms 202.97.33.54
12 2 ms 1 ms 2 ms 202.97.33.5
13 33 ms 33 ms 33 ms 202.97.61.50
14 34 ms 34 ms 34 ms 202.97.62.214
15 34 ms 186 ms 37 ms 209.85.241.56
16 35 ms 35 ms 44 ms 66.249.94.34
17 34 ms 34 ms 34 ms hkg01s01-in-f104.1e100.net [64.233.189.104]
Trace complete.
所以平均时间应该是:1+7+108+2+1+1+2+1+1+2+2+33+34+34+35+34+34+35+34,这比ping
C:\Documents and Settings\Administrator>ping google.com
Pinging google.com [64.233.189.104] with 32 bytes of data:
Reply from 64.233.189.104: bytes=32 time=34ms TTL=241
Reply from 64.233.189.104: bytes=32 time=34ms TTL=241
Reply from 64.233.189.104: bytes=32 time=34ms TTL=241
Reply from 64.233.189.104: bytes=32 time=34ms TTL=241
Ping statistics for 64.233.189.104:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 34ms, Maximum = 34ms, Average = 34ms
答案1
您不能简单地将所有这些数字相加。这是通往 Google 的路径上每个跳点的 ping 时间。因此,自然而然地,路径的每一段都会越来越远,您会看到不同的 ping 时间。如果您查看 tracert 中的最后一个 ping 时间(34 毫秒)和您发出 ping 时收到的时间(34 毫秒),它们是相同的。tracert 程序并不比 ping 慢。
我建议阅读一下跟踪路由的工作原理:
http://en.wikipedia.org/wiki/Traceroute
答案2
您可以看到 ping 就像从纽约开车到旧金山一样。假设需要 200 小时(我来自瑞士,不熟悉美国的距离)
但是司机必须回到纽约才能告诉你他已经到了旧金山。你看了看手表,然后计算出他花了 400 小时才到达旧金山。这就是 Ping 所做的。Traceroute 所做的是:告诉你的司机他应该从纽约开车到旧金山,每次他经过一个十字路口时,他都应该回来告诉你那个十字路口的名字。所以他已经在路上了,前几个十字路口都在纽约。所以他很快就开回你身边,告诉你十字路口的名字。但是当他走得更远时,他会花更长时间才能回到你身边。等等……
因此,如果你计算他一路上开车的时间,他报告所有十字路口的时间要比他开车去旧金山的时间长得多。希望这能帮你理清一些事情……
答案3
回答
慢的原因traceroute
是:
- 它会按顺序 ping 沿途的每个路由器,直到到达主机(按顺序,取决于具体的实现)
- 当出现 时,速度最慢
*
。这意味着给定的路由器没有确认数据包,请求超时了。默认超时时间为 5 秒,默认traceroute
情况下发送三个数据包,因此需要 15 秒才能确定沿途的单个路由器没有响应(* * *
)。1
加速
您可以通过每个路由器仅发送两个探测并将超时时间减少到 3 秒来加快跟踪路由速度,例如:
traceroute -q 2 -w 3 google.com
背景
traceroute 命令用于查看数据包的路由方式。它的工作原理是发送具有增加的 TTL 值的数据包,从 1 开始。因此,第一个路由器获取数据包,并将 TTL 值减一,从而丢弃该数据包。路由器向我们发回 ICMP 超时消息。然后下一个数据包的 TTL 为 2,因此它通过了第一个路由器,但当它到达第二个路由器时,TTL 为 0,并返回另一个 ICMP 超时消息。Traceroute 以这种方式工作,因为在发送和丢弃数据包时,它会构建数据包经过的路由器列表,直到它最终到达目的地并收到 ICMP 回显回复消息。2
注意,ICMP Time Exceeded 和请求超时不一样,后者是没有任何响应,前者是有响应的。
为了加快速度,我们不必等待路由器的响应就再 ping 下一个路由器:
不过,traceroute 程序的现代版本并不是每次只发送一个数据包。为了加快速度,它一次发送多个具有不同跳数的数据包,因此程序不必等待每个路由器响应后再发出下一个数据包。3
答案4
事实上,这基本上是由于 PING 通过网络向 DNS 和其他网络设备发送了 ICMP 请求。
但是,Traceroute 发送了很多 TTL 很短的数据包。
例如,当您尝试从您的位置加入 www.google.com 时,traceroute 会向 www.google.com 发送一个数据包,其中 TTL 设置为 1,并等待第一个遇到的网络设备的答复。
然后,Traceroute 会在屏幕上显示第一个网络设备的 IP,之后它会执行相同的操作,但这次将 TTL 设置为 2 等等。
最后,Traceroute 等待了大约一半以上的时间,因为每次发送时,它都在等待网络设备的答复。