Traceroute是一款用于追踪从A到B路径的应用程序。(A代表您的位置,B代表您要追踪的服务器)。
其基本算法如下:
send UDP with TTL = 1
Server A1 received, and return ICMP packet to A because TTL is expired.
--> know first machine between. For example A1.
send UDP with TTL = 2
Server A1 received, and send this UDP to server A2.
Server A2 received, and return ICMP packet to A because TTL is expired
--> know second machine between. In this example is A2.
Do it until to B. we can track down: A -> A1 -> A2 -> ... ->B
我有一个疑问,让我对这个算法的正确性产生怀疑。
由于路由表频繁更新,在traceroute期间(例如TTL=3),探测数据包会沿着路径A1→A2→A3→A4传输。
那么,当我们发送TTL=4的探测数据包时,是否保证它会通过A1、A2、A3和A4,然后传输到A5?
如果不是,最终输出是否表示有效路径?
希望有人能解决这个问题。非常感谢!