Another protocol in the TCP/IP suite is the Internet Control Message Protocol (ICMP). ICMP packets contain information about errors and control on the network: inoperative nodes and gateways, packet congestion at a gateway, and so on. The IP software, rather than the application, interprets an ICMP message. The IP software then takes the appropriate action with respect to the ICMP message, independently of the application. Because an ICMP message might need to travel across several networks to reach its destination, it is encapsulated in the data portion of an IP datagram.
ICMP is also used to test connectivity between two nodes. The originating node uses PING to send an ICMP echo request and waits for an ICMP echo response from the destination.