Traceroute is a very famous networking tools to determine the path from a machine to another machine.
Traditionally, a traceroute would use the ICMP protocol which the routers understand. In every second, 3 ICMP packets are sent to the destination with increasing TTL (time to live) starting from 1, then 2, then 3.. and so on.
For TTL = 1 : The most immediate router from the host to the destination is found. For TTL = 2 : The second most immediate router from host to destination is found. For TTL = 3 : The third most immediate router from host to destination is found. .. and so on.
This goes on till the destination is reached. Hence, all the routers in the path have been identified.
In linux, the command to use traceroute for google.com would be:
traceroute google.com
Default traceroute vs Pathfinder:
| CRITERIA | DEFAULT TRACEROUTE | Pathfinder |
|---|---|---|
| SPEED | Takes ~ 30 seconds per URL | Takes < 5 seconds |
| MULTIPLE COMMANDS | To be given one-by-one | Can take multiple in one go from a file |
| MULTIPROCESS | Total time = (no. of URLs) X 30 seconds | Total time < 5 seconds irrespective of no. of URLs |
| CORRELATION | No functionality here | Finds the longest common path between the URLs specified |
- Clone the repository and enter
cd path-finder - Compile the code using
make - In
domain.txt, enter the list of all the domains that you want to find longest common path of. - On one terminal, run the trace_route program using
sudo ./trace_route. - Open another terminal on the same directory and run the pathfinder program using
sudo ./pathfinder.
Voila! Expand the second terminal to see the results of individual traceroute and also the longest common path.
