ICMP (Internet Control Message Protocol) is a protocol which makes it possible to manage information relating to errors on networked machines. Considering the few controls that IP protocol carries out, it not only allows errors to be corrected but also informs the protocols of neighboring layers of these errors. So, ICMP protocol is used by all routers, who use it to indicate an error (called a Delivery Problem).
ICMP messages are encapsulated
ICMP error messages are sent over the network in datagram form, like any other data. So, the error messages themselves can be subject to errors.
However, in the event of an error on a datagram carrying an ICMP message, no error message is delivered in order to avoid a "snowball" effect
in the event of an incident on the network.
Here is what an ICMP message encapsulated in an IP datagram resembles:
Meaning of ICMP messages
PING. This command, allowing the network to be tested, sends a datagram to a destination and requests its return.
For more information on ICMP protocol, please refer to RFC792 which explains the protocol in detail:
Das Protokoll ICMP
El protocolo ICMP
Le protocole ICMP
Il protocollo ICMP
O protocolo ICMP