Internet Control Message Protocol (ICMP) is a network layer protocol used for allowing gateways or destination hosts to communicate to report errors or to inform of certain network entities of particular network conditions.

ICMP messages are sent in several situations: for example, when a datagram cannot reach its destination, when the gateway does not have the buffering capacity to forward a datagram, and when the gateway can direct the host to send traffic on a shorter route.

The ping and Traceroute utilities both use ICMP as part of their implementation.