What ICMP does
The Internet Control Message Protocol provides control and error-reporting messages associated with IP delivery. It can report conditions such as an unreachable destination or an expired hop limit, and it supports diagnostic mechanisms such as Echo Request and Echo Reply.
ICMP does not make IP reliable. A control message can itself be lost or filtered, so the absence of an ICMP response does not automatically prove that the underlying destination or path is unavailable.
Common ICMP messages
| Protocol | Type | Message | Typical use |
|---|---|---|---|
| ICMPv4 | 0 | Echo Reply | Reply to ping |
| ICMPv4 | 3 | Destination Unreachable | Delivery or service failure |
| ICMPv4 | 8 | Echo Request | Ping request |
| ICMPv4 | 11 | Time Exceeded | Traceroute and expired TTL |
| ICMPv6 | 1 | Destination Unreachable | Delivery failure |
| ICMPv6 | 2 | Packet Too Big | Path MTU Discovery |
| ICMPv6 | 128 / 129 | Echo Request / Reply | Ping6 |
| ICMPv6 | 133–136 | Neighbour Discovery | IPv6 neighbour and router discovery |
Ping
Ping normally sends an Echo Request and expects an Echo Reply. A successful response demonstrates that the selected protocol path can return an ICMP response; it does not prove that every application or TCP/UDP service is reachable.
A timeout can have many causes: packet loss, routing problems, firewall policy, host filtering, rate limiting or a destination that is simply not responding to echo.
Traceroute
Classic traceroute techniques deliberately cause packets to expire at successive hops. Routers can return ICMP Time Exceeded messages, allowing the sender to learn which hop generated the response. Implementations differ: some traceroute variants use UDP or ICMP probes, while modern tools may also use other mechanisms.
Path MTU Discovery
Path MTU Discovery depends on receiving feedback when a packet is too large for a link along the path. In IPv4, a router can report that fragmentation is required when the Don't Fragment bit is set. In IPv6, routers do not fragment forwarded packets; ICMPv6 Packet Too Big messages are used to signal the usable MTU.
ICMPv6
ICMPv6 is much more than IPv6 ping. Neighbour Discovery uses ICMPv6 messages for functions including router discovery, neighbour discovery and address resolution. Security policy therefore needs to distinguish necessary ICMPv6 traffic from unwanted traffic rather than treating all ICMPv6 as disposable.
Troubleshooting
- Identify whether the test uses ICMPv4 or ICMPv6.
- Check the exact type and code if an error is returned.
- Check the source and destination addresses and routing path.
- Look for firewall, ACL and rate-limiting policy that may filter ICMP.
- For MTU problems, inspect PMTUD behaviour and returned Packet Too Big or fragmentation-needed messages.
- Compare packet captures at both ends when the control message is unexpected or absent.
Use the ICMP Message Analyzer as a quick reference for common types and codes.
References
- RFC 792 — Internet Control Message Protocol.
- RFC 4443 — ICMPv6 for IPv6.
- RFC 8201 — Path MTU Discovery for IPv6.