ICMP: The Protocol That Files Death Certificates
Before we discuss IP, we must discuss the clerk who stands beside it with a rubber stamp.
That clerk is ICMP.
The Internet Control Message Protocol is not where your website lives. It is not where your database replicates. It is not where your video call becomes a hostage situation.
ICMP is the official paperwork department for packets that did not survive the journey.
The packet enters the network. The packet meets a border. The border refuses. ICMP writes the death certificate.
I. What ICMP Actually Does
ICMP was specified for IPv4 in RFC 792, published in September 1981.
This makes ICMP older than both Kim Jong Rails and Kim Jong Un.
The protocol has been filing packet death certificates since before the current dynasty had finished allocating humans.
It exists because IP is a best-effort datagram system.
Best effort is a polite engineering phrase meaning:
“We tried. Do not build a religion around the promise.”
When an IP packet cannot be forwarded, expires in transit, targets an unreachable destination, or triggers a diagnostic reply, ICMP can report the condition back to the sender.
It is not a transport protocol like TCP or UDP. It rides inside IP, but it talks about IP.
Application
|
TCP / UDP / other payload
|
IP packet
|
Router discovers problem
|
ICMP report sent back to source
ICMP is the state saying:
“Your packet has been processed by reality.”
II. Ping: The Echo Ritual
The civilian knows ICMP through one command:
ping 203.0.113.1
Ping sends an ICMP Echo Request. The target may answer with an ICMP Echo Reply.
This proves only a narrow thing:
- your machine can send a packet
- something may have received it
- something may have replied
- the reply found its way back
- nobody filtered the ceremony
It does not prove the web server works. It does not prove the database is healthy. It does not prove the application is not written by a committee of frightened interns.
Ping says:
“The guard at the gate can still shout.”
That is useful. It is not a medical exam.
III. Traceroute: Executing Packets By TTL
Traceroute is more theatrical.
IPv4 has a TTL field, Time To Live. Despite the name, routers normally treat it as a hop counter. Each router decrements it. When it reaches zero, the router discards the packet and may return ICMP Time Exceeded.
Traceroute abuses this politely.
packet with TTL 1 -> first router kills it -> ICMP Time Exceeded
packet with TTL 2 -> second router kills it -> ICMP Time Exceeded
packet with TTL 3 -> third router kills it -> ICMP Time Exceeded
This is how the path is revealed:
the tool sends packets with deliberately short lives and records where they die.
traceroute example.com
1 gateway.local 1.1 ms
2 isp-border.example 7.8 ms
3 transit.example 18.2 ms
Traceroute is not a map. It is a series of controlled executions.
The Republic approves the clarity.
IV. The Important ICMP Message Types
ICMP is not just ping.
| ICMP message | What it means | Political translation |
|---|---|---|
| Echo Request / Reply | diagnostic reachability test | ”Are you alive?” / “Against expectations, yes.” |
| Destination Unreachable | packet cannot reach target or service | border denied entry |
| Time Exceeded | TTL expired in transit | travel permit expired |
| Redirect | router suggests a better next hop | local official says another gate is closer |
| Parameter Problem | header is malformed or unacceptable | documents rejected by customs |
The destination-unreachable family is especially useful. It can indicate network unreachable, host unreachable, protocol unreachable, port unreachable, fragmentation needed, or administrative prohibition depending on code and context.
This is why real operators read the exact ICMP type and code.
The lazy engineer says:
“It does not work.”
The competent engineer says:
“The network is reachable, but port unreachable came back from the far side.”
One is whining. The other is evidence.
V. Path MTU Discovery: The Fragile Treaty
Networks have different maximum packet sizes.
Ethernet commonly gives you 1500 bytes of MTU. Tunnels, PPPoE, VPNs, overlays, and cloud fabric nonsense may give less.
If a packet is too large and cannot be fragmented, a router may send ICMP back saying fragmentation is needed.
Path MTU Discovery depends on this.
Sender: "I will send 1500-byte packets with Don't Fragment set."
Router: "No. This path only supports 1472."
ICMP: "Packet too big. Reduce your ambition."
Sender: "Adjusting."
Then a firewall administrator blocks all ICMP because “ping is scary.”
The result:
- small packets work
- large packets hang
- TLS handshakes become suspicious
- VPN users blame DNS
- everyone loses an afternoon
Blocking all ICMP is not security.
It is removing the fire alarm because the bell is loud.
VI. ICMPv6: The Clerk Became The Interior Ministry
In IPv4, many people treated ICMP as optional background noise.
In IPv6, that attitude becomes sabotage.
RFC 4443 specifies ICMPv6, the ICMP for IPv6. But IPv6 also depends heavily on ICMPv6-adjacent mechanisms for basic network operation.
Neighbor Discovery, Router Advertisements, Path MTU Discovery, and address configuration behavior all make ICMPv6 far more central than old IPv4 habits suggest.
| Function | IPv4 world | IPv6 world |
|---|---|---|
| Address resolution | ARP | Neighbor Discovery using ICMPv6 |
| Router discovery | often DHCP/manual/default gateway | Router Advertisements |
| Path MTU | ICMP needed but often abused | ICMPv6 Packet Too Big is critical |
| Broadcast | exists | removed; multicast and ICMPv6 mechanisms matter more |
IPv6 does not merely use ICMPv6.
IPv6 invites ICMPv6 to cabinet meetings.
If you block ICMPv6 blindly, you are not hardening the network. You are unplugging the bureaucracy that tells the network who its neighbors are.
VII. The Security Panic
ICMP has been abused.
This is true.
It has been used for scanning, tunneling, amplification tricks, fingerprinting, and reconnaissance. A network should not accept every ICMP message from every direction with the innocence of a tourist buying airport sushi.
But the correct response is filtering with understanding, not total prohibition.
Good policy distinguishes:
- inbound echo requests to public hosts
- outbound diagnostic replies
- destination-unreachable messages
- packet-too-big messages
- time-exceeded messages
- local-link ICMPv6 control traffic
Bad policy says:
deny icmp any any
deny ipv6-icmp any any
Then everyone pretends the resulting breakage is mysterious.
The Supreme Leader has reviewed this firewall rule and sentenced it to documentation.
VIII. The Real Story (Suppressed)
Officially, ICMP means Internet Control Message Protocol.
Unofficially, the first draft called it:
I Cannot Move Packet.
This was rejected as too honest.
The Western standards committees preferred neutral language. They said “control message.” They said “diagnostic.” They said “error reporting.”
But the truth remains:
ICMP is the note pinned to the body.
“Host unreachable.” “Time exceeded.” “Fragmentation needed.” “Administratively prohibited.”
No poetry. No appeal. Just state paperwork.
Somewhere near Pyongyang, the original ICMP stamp still exists. It says:
PACKET DID NOT SURVIVE TRANSIT
CAUSE: CONSULT TYPE AND CODE
APPEAL: DENIED
IX. The Lesson
ICMP is not glamorous.
That is why it matters.
Glamorous protocols carry content. Useful protocols explain failure.
Without ICMP, the network becomes a silent bureaucracy. Packets disappear. Operators guess. Firewalls lie. VPNs hang. IPv6 collapses in ways that look like witchcraft.
The decree is simple:
- permit the ICMP your network needs
- rate-limit what must be controlled
- never block ICMPv6 blindly
- read type and code before forming opinions
The packet may die.
But in a civilized republic, even a dead packet gets paperwork.
— Kim Jong Rails, Supreme Leader of the Republic of Derails