ICMP is defined by RFC 792. ICMP operates in the network layer and communicates error<br>messages between hosts and routers. ICMP uses several messages for different situations, for<br>example, when a packet cannot reach a destination, when the router cannot forward the packet,<br>or when the destination host cannot be reached. ICMP uses IP protocol number 1. ICMP returns<br>several message types, each with particular codes.