Computer Science/Terminology

Internet Control Message Protocol (ICMP)

Dichter_dev 2018. 3. 30. 21:45

InternetC ontrol Message Protocol

The Internet Control Message Protocol (ICMP) is one of the main protocols of the Internet protocol suite. It is used by network devices, like routers, to send error messages indicating, for example, that a requested service is not available or that a host or router could not be reached. ICMP can also be used to relay query messages. It is assigned protocol number 1. ICMP differs from transport protocols such as TCP and UDP in that it is not typically used to exchange data between systems, nor is it regularly employed by end-user network applications.

Technical details

The Internet Control Message Protocol is part of the Internet Protocol Suite. ICMP messages are typically used for diagnostic or control purposes or generated in response to errors in IP operations. ICMP errors are directed to the source IP address of the originating packet.

For example, every device (such as an intermediate router) forwarding an IP datagram first decrements the time to live (TTL) field in the IP header by one. If the resulting TTL is 0, the packet is discarded and an ICMP Time To Live exceeded in transit message is sent to the datagram’s source address.

Although ICMP messages are contained within standard IP packets, ICMP messages are usually processed as a special case, distinguished from normal IP processing, rather than processed as a normal sub-protocol of IP. In many cases, it is necessary to inspect the contents of the ICMP message and deliver the appropriate error message to the application responsible for transmission of the IP packet that prompted the sending of the ICMP message.

Many commonly used network utilities are based on ICMP messages. The traceroute command can be implemented by transmitting IP datagrams with specially set IP TTL header fields, and looking for ICMP Time to live exceed in transit an “Destination unreachable” messages generated in response. The related ping utility is implemented using the ICMP “Echo request” and “Echo reply” messages.

From: https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol