ICMP messages are grouped into two categories: error reporting and queries. Some messages are specific to each version; however, a few are common to both versions, as shown here:
ICMPv6 messages
For both categories, each ICMP packet has a Type, Code, and Checksum field. The payload for queries is different from error messages, as each has a different purpose, as we'll see in the following sections.
Let's start with a review of how ICMP reports errors.