The  ICMP  protocol  provides an echo mechanism by which a host may solicit a response from a gateway by sending message at a reasonable  rate. Since the message must be sent fairly often to detect a fault in a reasonable time, it can imply an unbearable overhead. Technically, ICMP is an error reporting mechanism. Whenever a datagram causes an error, ICMP can report the error condition back to the original source of the datagram. 

For Example

Destination Unreachable message is sent by a router to the source node, when the router cannot locate the destination since it was down, or the destination address is invalid.