The internet control message protocol (ICMP) enables systems on a tcp/ip network to share status and error information. You can use the status information to detect network trouble. ICMP messages are encapsulated within IP datagrams so that they may be routed throughout a network. Two programs that use icmp messages are ping and tracert. In general, the term packet applies to any message formatted as a packet, while the term datagram is generally reserved for packets of an unreliable service. A reliable service is one that notifies the user if delivery fails, while an unreliable one does not notify the user if delivery fails.