Wie funktioniert der Befehl 'ping' wirklich?


24

Wie funktioniert der Ping-Befehl wirklich? Wo genau kommt das ARP (Address Resolution Protocol) ins Bild?

Diese Frage wurde mir in einem Interview gestellt und ich konnte mir kein Szenario ausdenken, in dem ARP verwendet werden könnte.


Schauen Sie sich ICMP an.

3
ARP wird verwendet, um die MAC-Adresse einer bestimmten IP-Adresse abzurufen. Wenn Sie ein Paket über Ethernet senden müssen, benötigen Sie die MAC-Adresse des Ziels.

Antworten:


16

Wenn Sie wirklich verstehen wollen, gibt es hier ein exzellentes (sehr gut geschriebenes) Whitepaper:

http://images.globalknowledge.com/wwwimages/whitepaperpdf/WP_Mays_Ping.pdf

Hier ist die Zusammenfassung ->

Ping (Program on the application layer) ------->
Opens a 'raw' socket to IP Layer ------>
IP layer (Layer 2 on OSI) packages ICMP packet and sends it

Da es keine TCP-Schicht dazwischen gibt, Ping (program)muss der alle eingehenden ICMP-Pakete überwachen und nur die vom Ziel filtern.

Hoffentlich hilft das.


9

Angenommen, der Ping beinhaltet, dass ein Paket über ein Ethernet- oder WiFi-Netzwerk gesendet wird, wird ARP verwendet, um die Ethernet-Hardwareadresse des Geräts zu ermitteln, das das ausgehende Paket empfängt. In der Regel ist dies der Router für das LAN, in dem sich der Computer befindet, von dem der Ping stammt.

Der typische Prozess ist:

  1. Sie geben einen Befehl zum Pingen eines Ziels ein.

  2. DNS wird verwendet, um die IP-Adresse zu ermitteln (falls erforderlich).

  3. Die Routing-Tabelle wird konsultiert, um den nächsten Sprung in Richtung dieses Ziels zu finden.

  4. ARP wird verwendet, um die Hardwareadresse des nächsten Hops zu ermitteln.

  5. Das IP-Paket wird in einem Ethernet- oder WiFi-Frame gekapselt an den nächsten Hop gesendet.


3
Die einzige Antwort hier, die die Frage tatsächlich beantwortet!
Jmiserez


1

Ping und ARP sind verschiedene Dinge, die sich auf verschiedenen Ebenen im Netzwerkprotokollstapel befinden.

Ping befindet sich auf Netzwerkebene (oder Internetebene - Sehen Sie sich das ICMP- Protokoll an, wie von @ServerMonkey beschrieben).

Das Arp-Protokoll befindet sich auf Verbindungsebene (eine niedrigere Ebene). Das Arp-Protokoll ermöglicht eine physische Verbindung zwischen Netzwerkhardware, die direkt verbunden ist.

Im TCP / IP-Netzwerkstapel verwendet jede Schicht die darunter liegende Schicht, um ihre Daten weiterzuleiten, und kapselt sie in das Protokoll auf niedriger Ebene. Jede Ebene ist unabhängig von der anderen und kennt möglicherweise die spezifischen Details und Implementierungen der anderen Ebenen nicht (dies ist nicht immer der Fall: siehe Cross-Layer-Funktion ).


Ja, aber für die Ping-Implementierung ist Code auf L2 (Verbindungsschicht) erforderlich.

@ liv2hak. Nein. Die Ping-Implementierung lag auf der unteren Verbindungsebene.

@liv arp wird oft als Layer 2.5 bezeichnet. ICMP wird oft als Layer 3.5 bezeichnet. Bei Layern geht es mehr um Felder als um Code. Und wenn Sie sagen möchten, dass die Ping-Implementierung Code auf Schicht 2 erfordert, können Sie bei jeder Implementierung von etwas per Definition keine Schicht ohne Schichten darunter haben.
Barlop

1

ARP stellt eine MAC-Adresse bereit, aber manchmal wird die Broadcast-Adresse verwendet, wenn keine DMAC-Adresse vorhanden ist.

Dieser Frame, der Broadcast-DMAC verwendet, wird als ARP-Broadcast-Frame bezeichnet. Hiermit erhalten wir die DMAC-Adresse.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.