to send error messages to send control messages
All ICMP Error Messages
ICMP- Internet Control Message Protocol
To handle error messages when a message does not reach it's destination. To announce timeouts and network congestion.
ICMP messages are of interest both to end-hosts and intermediate routers, although some messages are generally only sent by routers. It is never permissible for an ICMP error message to be generated as the result of receiving an ICMP error message-this avoids the infinite recursion of ICMP message generation (see RFC 1122, related link.). It is also forbidden to send an ICMP message as the result of a datagram that references multiple hosts, such as a broadcast or multicast message, or upon receipt of a noninitial fragment (see the "IP Fragmentation" section earlier in the chapter). These restrictions are designed to prevent broadcast storms.
No, ICMP is not a routing protocol. ICMP (Internet Control Message Protocol) is used by the Internet Protocol suite (IP) to send error and status messages. It is mainly used for diagnostics. Ping and traceroute are two tools that use ICMP. ICPM is used by routing protocols, for routing advertisements and router discovery.
ICMP
ICMP
ICMP The Internet Message Protocol (ICMP) allows hosts to exchange messages to indicate the status of a packet as it travels through the network.
The question does not make sense; ICMP isn't broken - it is the protocol for informing other devices or users that there are problems on the network, or for control messages in general.
ICMP
ping uses the ICMP protocol.