ICMP is Layer 3 error and diagnostic messaging — not TCP/UDP, and not a transport for data.
| Type | Meaning | You meet it in |
|---|---|---|
| 0 / 8 | Echo reply / request | ping |
| 3 | Destination unreachable | codes: 0 net, 1 host, 3 port, 4 fragmentation needed (PMTUD) |
| 11 | Time exceeded | every traceroute hop (TTL hits 0) |
Reading it as a troubleshooter: type 3 code 0 → routing table, code 1 → ARP/host down, code 3 → nothing listening on the port, code 4 → MTU/DF problem, type 11 mid-path → loop or firewall eating TTL.
Caveats: ICMP answers reachability, not application health; it’s commonly ACL-blocked and CoPP rate-limited — silence proves nothing.