Traceroute is designed using the ICMP protocol as a component. Traceroute allows an administrator to map the path a packet would take between the source to the destination. Traceroute exists both in the Windows and Linux systems.
Traceroute sends packets by slightly increasing the TTL value, initially with a TTL value of 1. The first router receives the packet, decreases the TTL value, and then leaves the packet because it has a TTL value of 0.
The router sends an ICMP Time Exceeded message back to the source:
There are many non-command-line versions of traceroute, if you find them easier to use.