Quando alguém diz "Ping", eles se referem ao ping ICMP, pois é isso que o ping original é. O ICMP realmente funciona em um nível inferior ao UDP & Protocolos de transporte TCP e não usam portas [ 1 ]:
ICMP, uses the basic support of IP as if it were a higher level protocol, however, ICMP is actually an integral part of IP, and must be implemented by every IP module.
Isso ocorre principalmente porque o ICMP é usado para relatar erros, pois o IP não é totalmente confiável por si só. Portanto, o ICMP é um protocolo de nível inferior que usa IP, não TCP / UDP. Ping é apenas uma ferramenta que usa ICMP (graças ao C de baixo nível), no entanto, o ICMP não é apenas ping ou traceroute, seu principal objetivo é completamente diferente, como eu notei.
E eu não sei como você aprendeu que as camadas são cegas para as camadas abaixo. Isso não é verdade, ou pelo menos para o meu conhecimento. O Ping pode usar qualquer protocolo que desejar, implementando-o em C.
Linguagens de baixo nível como C têm acesso direto a módulos baseados em IP do sistema, portanto, é possível usar qualquer um desses protocolos usando C (e praticamente qualquer outra linguagem escrita em C hoje em dia).
Para explicar mais explicitamente (tl; dr):
Ping é uma ferramenta baseada em ICMP, não usa TCP e UDP, portanto não funciona com portas (como um protocolo não precisa de portas, apenas serviços). Não requer a funcionalidade de protocolos de nível superior, como o TCP, por isso não os implementa. E apesar de ping ser um aplicativo, ele funciona no ICMP e não usa porta.