Stands for "Internet Control Message Protocol."
ICMP is an error-reporting protocol that helps diagnose problems with a TCP/IP network connection. It is a network-level protocol that assists in the movement of data packets between networks, and it is an important part of the Internet Protocol (IP) suite. Network devices like routers and switches send ICMP error messages when a data packet cannot reach its destination.
Transferring data between two computers over the Internet requires a series of separate network connections along the way. Each data packet moves from network to network, forwarded to the next step by each network's router. A series of packets sent between the same two computers may even take different routes and arrive out of order before being reassembled at their destination. If any device cannot successfully forward a packet to its next hop, it sends an ICMP error message back to the packet's source.
The ICMP protocol specifies several error types that help identify a connectivity problem. For example, a Time Exceeded error means that the data packet's TTL expired before it reached its destination, while a Parameter Problem error indicates a problem with the data packet's IP header. Some error types include a subtype code that provides more detail. The Destination Unreachable error, for example, has 16 possible subtypes that each describe a different cause. In most cases, software on the origin computer resolves these errors automatically by sending the data packet again or trying a different route, often without the user noticing. However, diagnostic tools like Ping and Traceroute use ICMP messages to help you diagnose connectivity problems between your computer and a remote server.