O ICMP está realmente no "topo" da camada 3. Ele usa o protocolo IP para entregar dados a um host remoto. Em outras palavras, as mensagens ICMP devem ser encapsuladas em pacotes IP.
Considere-o como semelhante ao ARP, que pode ser considerado "no topo" da camada 2, enquanto usa o protocolo Ethernet para realmente enviar pacotes.
O ICMP é implementado como parte da camada IP, de modo que o processamento de ICMP pode ser visto como ocorrendo em paralelo ou como parte do processamento de IP. Portanto, no tópico sobre rede em camadas baseada em TCP / IP, o ICMP é mostrado como um protocolo da camada 3.
@Robbie Mckennie
Qual camada ICMP pertence é um assunto de debate acirrado. O cabeçalho do ICMP está na camada 4, assim como o TCP e o UDP, então as pessoas argumentam que ele pertence à camada 4. Outros, no entanto, argumentam que o ICMP é um protocolo da camada 3, pois auxilia o IP e não possui portas.
Para mim, a classificação de um protocolo como pertencente a uma determinada camada no modelo OSI depende de como o protocolo funciona. Um exemplo:
BGP is used to route at layer 3, but BGP itself is carried by TCP ( and of course IP )