it-swarm.com.de

Wie funktioniert der Befehl 'ping' wirklich?

Wie funktioniert der Ping-Befehl wirklich? Speziell wo 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.

24
liv2hak

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.

9
David Schwartz

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

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

Weitere Informationen finden Sie unter: https://en.wikipedia.org/wiki/Ping_ (networking_utility)

2
ServerMonkey

ARP gibt eine MAC-Adresse an, 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.

1
Sagar Vardekar

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

Ping befindet sich auf Netzwerkebene (oder Internetebene - Schauen 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 Low-Level-Protokoll ein. 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 ).

1
Heisenbug