ICMP (Internet Control Message Protocol)


Internet Control Message Protocol is one of the Layer 3 Protocols. In IP networks, devices send ICMP encapsulated in IP packet. The general role of ICMP Protocol is generate error packets about the network devices and it is used in troubleshooting activities. As a summary, ICMP supports IP routing, diagnostics and error reporting.


Network engineers use ICMP Protocol generally for troubleshooting activities. The main two troubleshooting commands for network engineers , “ping” and “traceroute”, works with Internet Control Message Protocol . In every passed node, TTL value in the IP packet decrease one. And when it is 0, that node sends ICMP message to the sender, about the reachability of the destination.


Internet Control Message Protocol does not guaranteed the delivery. A hundred percent security is not required already.


You can use Subnetting Cheat Sheet for You Subnetting Calculations.


ICMP Message and ICMP Header Format

ICMP Message is sent as encapsulated in IP Packet.



In the ICMP Message, firstly there is an ICMP Header in the front.This Internet Control Message Protocol Message , consist of the below areas:

  • Type
  • Code
  • Checksum
  • Unused


We can devide ICMP Messages into two category accourding to their goals. These Message Categories are:

  • Error Messages
  • Informational / Query Messages


You can Practice On Various Network Topologies With Packet Tracer Labs Page!


ICMP Type And Code Fields

ICMP Header has three main areas as we mentione above: Type, Code and Checksome. Here;

  • Type” is the format of DHCP Message.
  • Code” is a detailed description of DHCP Message.


What are these Type and Code values? Let’s see firtly Type values and their meanings. And then we will talk about the Code values.

The Type values and teir meanings are below:



ICMP Code values give detailed information about the case. Code values and their menaings are also below:


Here, ICMP Echo Request Messages (Type 8) and ICMP Echo Reply Messages (Type 0) messages are two messages, that are sent and received in a successfull communication.


ICMPv4 and ICMPv6

ICMPv4 is the ICMP version that is used for IPv4. With the development of IPv6, ICMP also needed to enhanced to support IPv6. This enhancements provide ICMPv6.



ICMPv6 is the IPv6 enabled enhanced version of ICMPv4. Internet Control Message Protocol version 6 has similar functions that ICMPv4 supports. Beside these functions, it also has additional features.


AdditionalIy to the Internet Control Message Protocol version 4 functions, ICMPv6 supports:

  • IPv6 Neighbour Discovery Process
  • Multicast Listener Discovery Protocol
  • Path MTU Discovery


In an IPv6 header, if you see the value “58”, this is the ICMPv6 Packet.

In ICMPv6 Packet, like ICMPv4 there are different fields. These fields are similar to version 4. Let’s remember these fields:




We use ICMPv6 with IPv6 Neighbor Solicitation Messages. And we use IPv6 Neighbor Solicitation Message to determine the link-local address of a destination. Here, type 135 represents this IPv6 Neighbor Solicitation Messages. When this message reaches the destination, as a reply, destination sends a IPv6 Neighbor Advertisement Message. Here, the type is 136.


Internet Control Message Protocol version 6 is also used for IPv6 Router Advertisement Messages with type 134. If these messags are response to a Solicitation Message, the type 133 is used.


ICMPv6 Message Types

ICMPv6 has different message types for different message categories like ICMPv4. Here, we can divide ICMPv6 Messages into two category like version 4:

1.Error Messages
2.Informational Messages


Error Messages ad their type values are below:

  • Destination Unreachable (Type 1)
  • Packet Too Big (Type 2)
  • Time Exceeded (Type 3)
  • Parameter Problem (Type 4)


Informational Messages are also below:

  • Echo Request (Type 128)
  • Echo Reply (Type 129)


We can also talk about the IPv6 Neighbour Discovery and ICMPv6. In ICMPv6, there are different type values:

  • Router Solicitation (Type 133)
  • Router Advertisement (Type 134)
  • Neighbor Solicitation (Type 135)
  • Neighbor Advertisement (Type 136)
  • Redirect (Type 137)


Like ICMPv4, ICMPv6 also has the Code values. You can also check the code values of these different types below:





Lesson tags: icmp
Back to: Nokia IRP Course > ICMP and ARP

Leave a Reply

Your email address will not be published. Required fields are marked *