ICMP
/eye-see-em-pee/ · noun · Development · Origin: 1981
Definitions
Internet Control Message Protocol — a network protocol used for diagnostic and error-reporting purposes. ICMP is the backbone of tools like ping and traceroute, sending messages about unreachable hosts, expired TTLs, and network congestion. Many firewalls block ICMP, which is why 'the network is fine, ping just doesn't work' is a common ops refrain.
In plain English: The protocol behind the 'ping' command — it sends diagnostic messages across the internet to check if things are reachable and working.
Example: We blocked all ICMP at the firewall for 'security' and then spent a week debugging why Path MTU Discovery was broken.
Origin Story
The internet's error-reporting messenger that powers ping and traceroute
**Internet Control Message Protocol** was defined by Jon Postel in RFC 792 (1981) as a companion to IP. Unlike TCP and UDP which carry user data, ICMP carries control messages -- error reports and diagnostic information.
When a router can't deliver a packet, it sends an ICMP "Destination Unreachable" message back to the sender. The `ping` utility sends ICMP Echo Request messages and measures the Echo Reply. `traceroute` cleverly exploits ICMP Time Exceeded messages by sending packets with incrementally increasing TTL values.
ICMP is essential to the internet's functioning, yet it's also a security concern. ICMP can be used for network reconnaissance, denial-of-service attacks (ping flood), and covert channels. Many firewalls block ICMP, which ironically breaks useful diagnostic tools.
Coined by: Jon Postel
Context: RFC 792, 1981
Fun fact: The 'ping of death' attack (1996) sent malformed ICMP packets larger than 65,535 bytes, causing buffer overflows that crashed Windows, Mac, and Unix systems. The fix was trivial, but the vulnerability had existed since the beginning of IP networking.