The internet control message protocol (icmp) is one of the key internet protocols and is used by network devices such as routers to generate error messages to the source ip address when network problems prevent delivery of ip packets. Any ip network device has the capability to send, receive or process icmp messages. This protocol is also used to relay query messages and is assigned protocol number 1.