- Response time average
-
Ping ist ein Computerprogramm, mit dem überprüft werden kann, ob ein bestimmter Host in einem IP-Netzwerk erreichbar ist und welche Zeit das Routing zu diesem hin und wieder zurück in Anspruch nimmt. Entwickelt wurde Ping ursprünglich Ende 1983 von Mike Muuss und erschien zum ersten Mal in BSD 4.3.
Inhaltsverzeichnis
Funktionsweise
Ping sendet ein ICMP-„Echo-Request“-Paket (ping) 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). 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
web05:~ # ping de.wikipedia.org PING rr.knams.wikimedia.org (91.198.174.2) 56(84) bytes of data. 64 bytes from rr.knams.wikimedia.org (91.198.174.2): icmp_seq=1 ttl=53 time=61.8 ms 64 bytes from rr.knams.wikimedia.org (91.198.174.2): icmp_seq=2 ttl=53 time=61.2 ms 64 bytes from rr.knams.wikimedia.org (91.198.174.2): icmp_seq=3 ttl=53 time=62.1 ms 64 bytes from rr.knams.wikimedia.org (91.198.174.2): icmp_seq=4 ttl=53 time=61.6 ms --- rr.knams.wikimedia.org ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3013ms rtt min/avg/max/mdev = 61.207/61.706/62.117/0.415 ms
Es werden Datenpakete an den Rechner „de.wikipedia.org“ 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)
Die Paketumlaufzeit wird als „round trip delay“ (RTD), „round-trip-time“ (RTT) und im Deutschen häufig verkürzt als „Pingdauer“ oder „Ping-Zeit“ 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 (300.000 km/s), so ergibt sich eine minimal mögliche Paketumlaufzeit von etwa 2 × 29,8 ms = 59,7 ms. Der Faktor 2 entsteht durch Hin- und Rückweg. Ein realistischerer Wert für die Geschwindigkeit wäre etwa 150.000 km/sWellenlänge, wenn man davon ausgeht, dass sich die Signale hauptsächlich durch elektrische und nicht durch optische Leiter ausbreiten beziehungsweise die Konversion zwischen beiden Systemen zusätzliche Zeit beansprucht. Unter Annahme dieser realistischeren Geschwindigkeit und dem direkten Leitungsweg ergibt sich eine minimale Pingzeit von etwa 119,2 ms.
In der Praxis liegt der Wert jedoch viel höher, so ergeben sich Laufzeiten von etwa 300 ms zwischen Berlin und Tokio, da die meisten 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
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], was aber falsch ist. Der Autor des Programms sagte selbst: „From my point of view PING is not an acronym standing for Packet InterNet Grouper, it’s a sonar analogy.“ („Meiner Meinung nach ist PING kein Akronym für ‚Packet InterNet Grouper‘, sondern eine Analogie zum Sonar.“)[2].
Verwandte Programme
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)
Im Betriebssystem von Windows gibt es zur Fehlersuche im gerouteten Netzwerk:
Verweise
- ↑ RFC 1983 für Packet InterNet Groper (PING)
- ↑ The Story of the PING Program des ping-Erfinder Mike Muuss
Weblinks
- Internet Engineering Task Force (IETF)
- The Story of the PING Program von dem ping-Erfinder Mike Muuss
- C++-Beispiel
Wikimedia Foundation.