What is an ICMP Destination Unreachable message and what are the common codes?
It notifies the source that a destination/service can't be reached, carrying a code that says why — e.g. ICMPv4 0=network, 1=host, 2=protocol, 3=port unreachable; ICMPv6 uses similar but renumbered codes.
ICMP Destination Unreachable Messages:
Sent to notify the source that a destination or service is unreachable. Includes a code indicating why the packet could not be delivered.
* The code pinpoints why delivery failed — at the network, host, protocol, or port level (ICMPv6 renumbers these). *
ICMPv4 Destination Unreachable Codes:
| Code | Meaning |
|---|---|
| 0 | Network unreachable |
| 1 | Host unreachable |
| 2 | Protocol unreachable |
| 3 | Port unreachable |
ICMPv6 Destination Unreachable Codes:
| Code | Meaning |
|---|---|
| 0 | No route to destination |
| 1 | Communication administratively prohibited (e.g., firewall) |
| 2 | Beyond scope of source address |
| 3 | Address unreachable |
| 4 | Port unreachable |
Key insight: These messages help diagnose connectivity problems by indicating exactly where and why a packet failed to reach its destination. The same numeric code means different things in ICMPv4 versus ICMPv6, so always check which protocol generated the message before interpreting it.
Go deeper:
RFC 792 — Internet Control Message Protocol — defines the ICMPv4 Destination Unreachable message and its code values.
RFC 4443 — ICMPv6 — the ICMPv6 Destination Unreachable codes, which are renumbered from ICMPv4.