What is icmp

Last updated: April 1, 2026

Quick Answer: ICMP (Internet Control Message Protocol) is a network protocol that sends error messages and diagnostic information over the internet, most commonly used by the ping utility to test network connectivity and diagnose problems.

Key Facts

What is ICMP?

The Internet Control Message Protocol (ICMP) is a core network protocol used to send error messages and diagnostic information across IP networks. Unlike TCP and UDP which carry user data, ICMP is designed to provide feedback about network conditions and issues. ICMP is essential for network troubleshooting and communication between network devices about delivery problems and network status.

How ICMP Works

ICMP operates by encapsulating messages within IP packets. When a network problem occurs—such as a host being unreachable or a router being unable to forward a packet—ICMP generates an error message that is sent back to the source. ICMP can also be used proactively to request information about network conditions. The protocol is connectionless, meaning it doesn't establish a connection before sending messages. Each ICMP message includes a type field that identifies the message category and a code field that provides additional specificity about the condition being reported.

Common ICMP Applications

Ping is the most familiar ICMP application. It sends ICMP Echo Request messages to a destination and waits for Echo Reply messages, allowing users to verify that a host is reachable and measure latency. Traceroute uses ICMP to discover the route packets take across the internet by sending messages with progressively higher Time-To-Live (TTL) values, causing intermediate routers to return error messages that reveal their addresses. Network administrators use these tools daily to diagnose connectivity problems, measure network performance, and identify routing issues.

ICMP Message Types

ICMP defines numerous message types for different purposes. Echo Request (type 8) and Echo Reply (type 0) are used by ping. Destination Unreachable (type 3) reports that a packet cannot be delivered. Time Exceeded (type 11) indicates that a packet's TTL has expired. Redirect (type 5) suggests a better route. Parameter Problem (type 12) indicates an invalid IP header. Each type has associated codes that provide more specific information about the network condition being reported.

Related Questions

What is ping and how does it use ICMP?

Ping is a network utility that uses ICMP Echo Request and Echo Reply messages to test if a host is reachable and measure response time (latency). It sends a packet to a destination and waits for a reply, allowing users to diagnose network connectivity issues.

How does traceroute use ICMP?

Traceroute uses ICMP Time Exceeded messages to discover the network path to a destination. It sends packets with incrementally increasing TTL values, causing routers along the path to return error messages that reveal their IP addresses.

Why is ICMP important for network diagnostics?

ICMP provides network administrators with error reporting and diagnostic capabilities essential for troubleshooting connectivity problems. Without ICMP, it would be difficult to identify where network failures occur or measure network performance.

Sources

  1. Wikipedia - Internet Control Message Protocol CC-BY-SA-4.0
  2. RFC 792 - Internet Control Message Protocol Public Domain