Is there any Traceroute program that does not rely on ICMP echo requests?
The question is very straight forward, and I can't get into more details at the moment.
Traceroute (the technique) technically doesn't rely on ICMP echo requests but rather a type of ICMP unreachable. The idea is that the host sends a packet with a low TTL value and then more with successively higher values. As these packets are dropped by the various routers in the path a TTL exceeded / unreachable message is sent back. The source of this message is then added to the list of hosts in the path.
As for the packet the host sends in the first place? That can vary, but to give you an idea the standard Linux
traceroute command uses UDP. I believe the Microsoft
tracert command uses an ICMP echo, though.
Linux traceroute uses UDP (to port 0) by default. Usually, you don't get responses from the silent devices either but UDP is less likely to get filtered and stop in the middle.