The Internet Control Message Protocol (ICMP) is a core protocol of the Internet Protocol Suite. The Operating Systems in a computer network use this to send error messages, – for example, the unavailability of a requested service or the inaccessibility of a router or host.
A network operation’s out-of-band messages use ICMP messages delivered through IP packets. Since ICMP utilizes IP, packet delivery is not wholly reliable, and hosts may not always obtain ICMP packets for all network concerns.
ICMP announces network errors such as the inaccessibility of a host or the entire network portion due to any form of failure. ICMP reports if a UDP or TCP packet is targeted toward a port number without a receiver attached.
It also announces network congestion. ICMP Source Quench messages are generated when a router buffers numerous packets. This is due inability of the transmission speed to keep up with the reception rate. These messages should slow down the speed at which packets are transmitted. Generating numerous Source Quench messages would cause network congestion, thus generation is moderated.
ICMP also assists in troubleshooting. An Echo function sends a packet round-trip linking two hosts. A common network management tool named Ping centers on this. Ping measures average round-trips and computes loss percentages by transmitting packets.
It also announces timeouts. The discarding router will often create an ICMP packet if the TTL field of an IP packet falls to zero. Traceroute, another network tool, maps routes through sending packets with minor TTL values and observes announcements of ICMP timeouts.
Note that the Internet Control Messaging Protocol is a part of Internet Protocol; it is not foolproof. These control messages give feedback concerning communication problems in the environment. They do not make IP absolutely reliable. The ICMP messages usually report errors concerning datagrams, yet they do not guarantee the delivery of a datagram or return of a control message. In fact, datagrams may be undelivered and no report of this loss will be made. In addition, no ICMP messages regarding ICMP messages are sent to avoid the regress of messages on messages.
If a reliable standard of communication is needed, then higher protocols using IP must apply their own particular reliability procedures.