Introduction
Internet Control Message Protocol (ICMP) supports network testing and error reporting. It is used by tools such as ping and traceroute to help verify connectivity and locate problems.
ICMP Messages
ICMP messages are not used to carry normal application data. Instead, they report conditions related to packet delivery.
Common ICMP purposes include:
- Testing reachability
- Reporting unreachable destinations
- Reporting time exceeded conditions
- Supporting path testing tools
In IPv4, ICMP works with IPv4. In IPv6, ICMPv6 has additional responsibilities, including support for Neighbor Discovery.
ICMPv6 Messages
ICMPv6 supports both error reporting and informational messages. It is also essential for IPv6 functions such as:
- Router Solicitation
- Router Advertisement
- Neighbor Solicitation
- Neighbor Advertisement
- Duplicate Address Detection
Because ICMPv6 is required for many IPv6 operations, blocking it completely can break IPv6 communication.
Ping Tests
ping tests whether a destination can be reached. It sends Echo Request messages and waits for Echo Reply messages.
A successful ping indicates that a path exists and that the destination can respond. A failed ping does not always identify the exact problem. The issue could be addressing, routing, firewall filtering, cabling, interface status, or destination availability.
Ping Practice
Traceroute Tests
traceroute or tracert shows the path packets take toward a destination by listing router hops. It relies on hop limits or TTL values and ICMP responses.
Traceroute can help identify where a path fails. Asterisks or timeouts may indicate filtering, an unreachable device, or a router that does not respond to probe messages.