Traceroute — это приложение для отслеживания пути от A до B. (A — ваше местоположение, а B — сервер, который вы хотите отслеживать). В Windows вы можете ввести tracert
. Основной алгоритм такой:
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
Этот алгоритм работает корректно? Потому что в разное время промежуточный сервер может отправить сообщение другому серверу. Например, сначала UDP-сообщение отправляется на A1, но позже оно может быть отправлено на другой сервер, например, на B1. Таким образом, трассировка маршрута не будет работать должным образом.
Я что-то неправильно понял?