ICMP messages are the basis for many network tools that people use every day:
The most well-known use of ICMP is the ping function, which uses ICMP to ask remote hosts for a response and to find out how long it takes for the server to respond overall. The ICMP "Echo request" and "Echo reply" commands are used to make ping work.
The traceroute command is also part of ICMP. It is used to find the "jump" points between a client and server. The trace route command is carried out by sending UDP datagrams with specially set IP header fields and keeping track of how long it takes for the reply to reach the original sender.