6 ICMP

ICMP (Internet Control Message Protocol) depends on IP, just as UDP and TCP do. However, ICMP is not intended to transmit data. With TCP or UDP, they cannot accomplish much by themselves because some additional protocols, like HTTP, IMAP, SSH and etc. must be implemented on top of TCP or UDP to provide any value.

ICMP, however, does not depend on any higher level protocol to be useful. This is because ICMP specifies a standard so that computers can respond to each other and report their status. For example, the most common use of ICMP are the “ECHO” related packets. One computer can send a “echo request” packet, and the recipient can reply with a “echo reply” packet. This is how the ping program works by default.

Although ICMP depends on IP, it is stilled considered on the “Internet Layer” of the OSI model, instead of the “Transport Layer”. This is because ICMP is not used to transport anything. It does not transport data of any kind.

ICMP is more commonly used by routers and other network appliances to establish the basic network services. Other than ping and traceroute, ICMP is not commonly used by a normal computer.

In the analogy of phone technology, ICMP is a standard that allows a cell phone carrier check the status of individual cell phones, or even to triangulate the physical location of one. However, as far as a normal cell phone user is concerned, it should not be visible!