Wenn man "Ping" sagt, beziehen sie sich auf ICMP-Ping, da dies der ursprüngliche Ping ist. ICMP arbeitet tatsächlich auf einer niedrigeren Ebene als die UDP- und TCP-Transportprotokolle und verwendet keine Ports [ 1 ]:
ICMP verwendet die grundlegende Unterstützung von IP, als wäre es ein Protokoll auf höherer Ebene. ICMP ist jedoch ein integraler Bestandteil von IP und muss von jedem IP-Modul implementiert werden.
Dies liegt vor allem daran, dass ICMP zum Melden von Fehlern verwendet wird, da IP an sich nicht vollständig zuverlässig ist. ICMP ist also ein Protokoll auf niedrigerer Ebene, das IP und nicht TCP / UDP verwendet. Ping ist nur ein Werkzeug, das ICMP verwendet (dank Low-Level-C). ICMP ist jedoch nicht nur Ping oder Traceroute. Sein Hauptzweck ist, wie gesagt, völlig anders.
Und ich weiß nicht, wie Sie gelernt haben, dass Schichten für darunterliegende Schichten blind sind. Das stimmt nicht oder zumindest meines Wissens. Ping kann jedes gewünschte Protokoll verwenden, indem es in C implementiert wird.
Low-Level-Sprachen wie C haben direkten Zugriff auf IP-basierte Systemmodule. Daher ist es möglich, ein solches Protokoll mithilfe von C (und fast jeder anderen in C geschriebenen Sprache) zu verwenden.
Um es genauer zu erklären (tl; dr):
Ping ist ein ICMP-basiertes Tool, es verwendet kein TCP und UDP und funktioniert daher nicht mit Ports (da ein Protokoll keine Ports benötigt, tun dies nur Dienste). Es erfordert nicht die Funktionalität von Protokollen höherer Ebene wie TCP, daher werden sie nicht implementiert. Und obwohl Ping eine Anwendung ist, funktioniert es mit ICMP und verwendet keinen Port.