traceroute命令的详细信息

正如我在维基百科中看到的,traceroute实用程序使用ICMP协议以三个一组的方式发送一系列数据包,并递增TTL值以标识networking路由器。 它还表示Internet协议并不保证所有的数据包都采用相同的路由。

所以我有三个问题:

1-为什么每个路由器发送三个数据包?

2-如果这三个具有相同TTL值的数据包以不同的路由方式遍历,会发生什么情况?

3-当这些路由可以在不同的数据包组中进行更改时,结果如何有用?

提前致谢

  1. 主要好处是确保即使丢包也能得到回应。 其他好处包括获取更多的往返时间的数据点,看看不同的数据包采取不同的路线。

  2. 它会打印每个数据包的网关。

  3. 运行traceroute的要点是要查看数据包的位置,如果traceroute显示的是不断变化的路由,那么其余的数据包都是一样的。 在我看来,知道这一点很有用,因为学习你的路线本质上是静态的。

    这就是说,只是因为路线不能阻止改变,并不意味着他们这样做。 大多数情况下,当你运行traceroute时,你将得到相同的路由。 改变路线主要发生在瞬态条件下,例如,当给定的路由器太忙时。

  • 它通常使用UDP甚至TCP(tcptraceroute通常更有用,或者在某些实现上使用-t选项),但在所有情况下都依赖于ICMP TTL超出的消息。

  • Traceroute是在tcp / ip上的一个聪明的破解 – 不是一个内置函数来发现路由。 这是一个聪明的事后。

  • 您可以指定不同数量的数据包发送 – 不一定是三个。

  • 正如Kowh所说 – 路线可以改变,但不一定会经常改变。 traceorute有很多原因会导致误导性的结果 – 从ICMP的优先级较低,或完全被阻止 – 重要的一部分是了解它是如何工作的,它是什么,并没有告诉你的机制。