Ping (Datenübertragung)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ping ist ein Diagnose-Werkzeug, mit dem überprüft werden kann, ob ein bestimmter Host in einem IP-Netzwerk erreichbar ist. Daneben geben die meisten heutigen Implementierungen dieses Werkzeuges auch die Zeitspanne zwischen dem Aussenden eines Paketes zu diesem Host und dem Empfangen eines daraufhin unmittelbar zurückgeschickten Antwortpaketes an (= Paketumlaufzeit, meist Round trip time oder RTT genannt). Das Programm wird üblicherweise als Konsolenbefehl ausgeführt. Entwickelt wurde Ping ursprünglich Ende 1983 von Mike Muuss und erschien zum ersten Mal in BSD 4.3.

Funktionsweise[Bearbeiten]

Ping sendet ein ICMP(v6)-„Echo-Request“-Paket (ping, ICMP-Pakettyp 8 (0x08)) an die Zieladresse des zu überprüfenden Hosts. Der Empfänger muss, sofern er das Protokoll unterstützt, laut Protokollspezifikation eine Antwort zurücksenden: ICMP „Echo-Reply“ (pong, ICMP-Pakettyp 0 (0x00)). Ist der Zielrechner nicht erreichbar, antwortet der zuständige Router: „Network unreachable“ (Netzwerk nicht erreichbar) oder „Host unreachable“ (Gegenstelle nicht erreichbar).

Aus einer fehlenden Antwort kann nicht geschlossen werden, dass die Gegenstelle nicht erreichbar wäre, da manche Hosts so konfiguriert sind, dass sie ICMP-Pakete ignorieren und verwerfen; siehe: Security through Obscurity, Firewall.

Wird dem Ping-Kommando ein Hostname in FQDN-Schreibweise anstatt einer IP-Adresse übergeben, lässt das Programm diesen durch das Betriebssystem auflösen. Bei fehlerhaften Konfigurationen (hosts-Datei, lmhosts-Datei, WINS, DNS) schlägt diese nach Ablauf einer Wartezeit (Timeout) fehl und resultiert in einer Fehlermeldung. Falls eine IP-Adresse angegeben wurde, tritt in dieser Situation ein ähnliches Problem auf, da zunächst das Scheitern der Rückwärtsauflösung zur Bestimmung der zur IP-Adresse gehörigen FQDN abgewartet werden muss. Je nach Implementation von ping lässt sich das Reverse-Lookup mit einer Option abschalten oder ist standardmäßig deaktiviert.

Beispiel[Bearbeiten]

Ping auf der Kommandozeile in Windows

Es werden Datenpakete an den Rechner www.google.com gesandt. Vom Programm wird die Zeit gemessen, bis die Antwort des Hosts eintrifft. Die Zeitangabe sagt aus, wie lange ein Datenpaket zum Host und wieder zurück benötigt („response time average“). Man kann daran grob erkennen, ob das Routing zur Gegenstelle funktioniert, deren TCP/IP-Stack funktionsfähig ist und mit welcher Verzögerung bei einer Verbindung zu rechnen ist.

Die Angabe TTL kann dazu genutzt werden, grob abzuschätzen, über wie viele Router die ICMP-Pakete gelaufen sind (jeder Router dekrementiert den Wert mindestens um 1, wobei der Initialwert je nach Implementierung 64, 128 etc. sein kann).

Round-Trip-Delay (RTD)[Bearbeiten]

Die Paketumlaufzeit wird als round trip delay (RTD), round-trip-time (RTT) und im Deutschen häufig verkürzt als Pingdauer, Ping-Zeit oder schlicht Ping bezeichnet. Diese gemessene Latenz umfasst sowohl die entfernungsabhängige elektrische Signallaufzeit, als auch die Verarbeitungszeit in den als Zwischenstationen fungierenden Routern, zudem die Verarbeitungszeit in den TCP/IP-Stacks des Absende- und Zielrechners. Auf Verbindungen mit hoher Auslastung erhöhen sich die Zeiten durch Sendewarteschlangen in den jeweiligen Routern.

Die Entfernung zwischen zwei beliebigen Punkten auf der Erdoberfläche lässt sich mittels der Orthodromen bestimmen. Dividiert man die so erhaltene Entfernung durch die Übertragungsgeschwindigkeit, erhält man die minimal mögliche RTT.

Ein Beispiel: Die Entfernung zwischen Berlin und Tokio beträgt 8941,2 km. Wählt man als Übertragungsgeschwindigkeit die Lichtgeschwindigkeit im Vakuum (ca. 300.000 km/s), so ergibt sich eine minimal mögliche Paketumlaufzeit von etwa 2 × 29,8 ms = 59,6 ms. Der Faktor 2 entsteht durch Hin- und Rückweg. Ein realistischerer Wert für die Geschwindigkeit wäre etwa 150.000 km/s, wenn man die in der Materie (Glasfaser) reduzierte Lichtgeschwindigkeit sowie Verzögerungen an Umsetzstationen, Routern und Switches berücksichtigt. Unter Annahme dieser realistischeren Geschwindigkeit und dem direkten Leitungsweg ergibt sich eine minimale Pingzeit von etwa 120 ms.

In der Praxis liegt der Wert jedoch viel höher. So ergeben sich Laufzeiten von etwa 300 ms zwischen Berlin und Tokio, da manche Verbindungen von Europa nach Asien nicht auf dem direkten Weg, sondern über die Vereinigten Staaten geroutet werden.

Zur Laufzeitmessung sind nur Hosts mit bekanntem Antwortverhalten sinnvoll nutzbar, da viele Netzwerkgeräte (Router, Switches) oft nur langsam auf ICMP-Requests reagieren, da sie nicht dahingehend optimiert wurden oder durch verzögerte Pings Angriffsszenarien auszuschließen versuchen (siehe Firewall).

Herkunft des Namens[Bearbeiten]

Der Name „ping“ stammt aus der Militärtechnik. Seit dem Zweiten Weltkrieg wird Sonar eingesetzt, um U-Boote aufzuspüren. Das dabei ausgestrahlte Schallsignal hört sich in einem U-Boot wie ein hohes Klopfgeräusch an, das als „Ping“ beschrieben wird.

Das Programm ping benutzt eine Serie von Internet Control Message Protocol (ICMP)-Echo-Nachrichten (messages), um zu prüfen, ob ein ferner Host-Computer aktiv oder inaktiv ist. Es wurde (wie viele weitere Beiträge zur Entwicklung des Internets) als sogenannter Request for Comment (RFC) der Internet Engineering Task Force (IETF) zur Verfügung gestellt (siehe RFC 4560, RFC 2925, RFC 1739). Häufig wird „ping“ als Abkürzung von „Packet Internet Grouper“ dargestellt.[1] Der Autor des Programms selbst sagte jedoch: „Aus meiner Sicht ist PING kein Akronym für ‚Packet InterNet Grouper‘, sondern eine Analogie zum Sonar.“[2]

Verwandte Programme[Bearbeiten]

Bei dem verbreiteten Unix-ähnlichen System Linux gibt es zusätzlich einige Programme, die ähnlich wie ping arbeiten:

  • bing (misst zusätzlich die Übertragungsrate)
  • fping (kann mehrere Rechner zugleich anpingen, siehe auch Broadcast)
  • hping (erlaubt die Manipulation von Protokollen, Ports und Flags)
  • arping (liest im lokalen Netzwerk auch die MAC-Adresse aus)
  • mtr (kombiniert die Funktionalität von „traceroute“ und „ping“ in einem Netzwerkdiagnoseprogramm)
  • httping (ermittelt für einen URL die Antwortzeit)
  • ping6 (unter Linux für IPv6, in Windows bedient ping beide Protokolle(IPv4/IPv6), einstellbar durch die Optionen -4 -6 )

Im Betriebssystem Windows gibt es zur Fehlersuche im gerouteten Netzwerk:

Einzelnachweise[Bearbeiten]

  1. RFC 1208 - A Glossary of Networking Terms. Network Working Group of the IETF. Eintrag zu "ping: Packet internet groper". 1991. Abgerufen am 21. März 2012.
  2. Michael John Muuss (Mike Muuss): The Story of the PING Program. United States Army Research Laboratory. Abgerufen am 21. März 2012: „From my point of view PING is not an acronym standing for Packet InterNet Grouper, it's a sonar analogy.“

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]