Wie funktioniert der Ping-Befehl wirklich?

84613
liv2hak

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 vorstellen, in dem ARP verwendet werden könnte.

21
Schauen Sie in ICMP. vor 13 Jahren 0
ARP wird verwendet, um die MAC-Adresse einer bestimmten IP-Adresse abzurufen. Wenn Sie ein Paket über Ethernet senden möchten, benötigen Sie die MAC-Adresse des Ziels. vor 13 Jahren 3

5 Antworten auf die Frage

15
PlanetUnknown

Wenn Sie wirklich verstehen wollen, gibt es hier ein ausgezeichnetes (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 sich keine TCP-Schicht dazwischen befindet, Ping (program)muss der Server alle eingehenden ICMP-Pakete überwachen und nur die Pakete vom Ziel filtern.

Hoffentlich hilft das.

8
David Schwartz

Unter der Annahme, dass beim Ping ein Paket über ein Ethernet- oder WLAN-Netzwerk gesendet wird, wird mit ARP die Ethernet-Hardwareadresse des Geräts ermittelt, das das ausgehende Paket empfängt. Normalerweise ist dies der Router für das LAN, auf dem der Computer gestartet wurde, von dem der Ping ausgeht.

Der typische Prozess ist:

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

  2. DNS wird zur Ermittlung der IP-Adresse verwendet (falls erforderlich).

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

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

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

Die einzige Antwort hier, die die Frage tatsächlich beantwortet! jmiserez vor 9 Jahren 3
1
Heisenbug

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

Ping ist auf Netzwerkebene (oder Internetschicht - Schauen Sie sich das ICMP- Protokoll an, wie von @ServerMonkey angegeben).

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

Im TCP / IP-Netzwerkstack verwendet jede Schicht die darunter liegende Schicht, um ihre Daten weiterzuleiten, und kapselt sie innerhalb des Protokolls der unteren Ebene. Jede Ebene ist unabhängig von der anderen und kennt möglicherweise nicht die Details und Implementierungen der anderen Ebenen (dies ist nicht immer der Fall: siehe Funktion der Ebenen ).

ja, aber die Implementierung von Ping würde etwas Code auf L2 (Link Layer.) erfordern. Wird ARP in Layer 2 eingesetzt? vor 13 Jahren 0
@ liv2hak. Nein. Die Ping-Implementierung lag auf der folgenden Linkebene. vor 13 Jahren 0
@liv arp wird oft als Schicht 2.5 bezeichnet. ICMP wird oft als Schicht 3.5 bezeichnet. Bei Schichten handelt es sich mehr um Felder als um Code. Und wenn Sie sagen möchten, dass für die Ping-Implementierung Code auf Layer 2 erforderlich ist, können Sie bei einer beliebigen Implementierung von Definition per Definition keine Layer ohne Layer darunter haben. barlop vor 9 Jahren 0
1

Ping besteht eigentlich aus zwei verschiedenen ICMP-Paketen (Internet Control Message Protocol).

Um einem Host ein Ping zu senden, senden Sie zuerst ein ICMP-Echo-Anforderungspaket. Der Host antwortet dann mit einer ICMP-Echo-Antwort.

Weitere Informationen finden Sie unter: http://en.wikipedia.org/wiki/Ping

1
Sagar Vardekar

ARP stellt eine MAC-Adresse bereit. Wenn jedoch keine DMAC-Adresse vorhanden ist, wird die Broadcast-Adresse verwendet.

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