Definition Internet Control Message Protocol(ICMP)

The ICMP (Internet Control Message Protocol) is a supporting protocol in the Internet protocol suite. It is used by network devices that include routers, send error messages, and operational information.

For exchange status data or error messages, nodes use the Internet Control Message Protocol (ICMP) on TCP / IP networks. Application servers and gateways, such as routers, use this implementation of the IP protocol. So that they can return messages about data-gram problems to the sender of the packet. Aspects such as creation, functionality, and organization within the full range of Internet protocols got specified in 1981 in RFC 792. In the case of the sixth version of the Internet Protocol (IP), the specific implementation ICMPv6 got defined in the RFC 4443.

ICMP is a standalone protocol even though the different messages includes in traditional IP packets. The Internet protocol treats the optional implementation as a higher layer protocol. The various network services that are commonly used today, such as traceroute or ping, are based on the ICMP protocol.

How does it work?

It is necessary to take a look at the construction of the ICMP header, linked directly to that of the IP. However, it appears in the IP Protocol field by inserting the protocol number, which can be 1 or 58 (ICMPv6). The field of the Internet Control Message Protocol header, however, is not as wide and has the following form:

The first 8-bit field “Type” determines the type of message that the corresponding ICMP packet refers to. This data can be specified using the “Code” field, which has a length of 8 bits. Thus, an ICMP type 3 message indicates that the objective of the data packet has not reached.

In contrast, the code of this data specifies and provides information about whether the destination network (0), the desired host (1), or the expected port (3) has not responded to the request. Behind the data on the message, the type is the ICMP checksum, which ensures the accuracy of the message. It is in the same way as the checksum of other standard protocols (IP, UDP, TCP).

Finally, the ICMP protocol data appears, which is created and structured very differently depending on the type and the triggering instance. The IP header and the first 64 bits of the data packet that is responsible for the error message or status request are also often specified here. In ICMP tunneling, this field is useful for other purposes, such as sending user data under the radar of firewalls or establishing a communication channel between two computers.

Types of ICMP packets

Due to the length of the 8-bit field, in theory, 256 different ICMP message types are possible. Of which they allocate 40 and block a few for purely experimental use. A large part of the numbers (42-252) are not assigned but are, in principle, only reserved. The assignment of numbers is the responsibility of the IANA. It also regulates the classification of spaces for IP addresses and ports.