article

ping ist ein Computerprogramm, mit dem überprüft werden kann, ob ein bestimmter Host in einem IP-Netzwerk erreichbar ist und welche Antwortzeit er besitzt. Entwickelt wurde Ping ursprünglich Ende 1983 von Mike Muuss und erschien zum ersten Mal in 4.3BSD.

Funktionsweise


Ping (in Anlehnung an das Geräusch eines Sonars) sendet ein ICMP-Echo-Request-Paket 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. 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 man allerdings nicht eindeutig darauf schließen, dass die Gegenstelle nicht erreichbar ist. Manche Hosts sind nämlich so konfiguriert, dass sie ICMP-Pakete ignorieren und verwerfen. (Siehe: Security through Obscurity).

Übergibt man dem ping-Kommando einen Hostnamen anstatt einer IP-Adresse, lässt das Programm diesen durch das Betriebssystem auflösen. Bei fehlerhaften Konfigurationen (hosts-Datei, lmhosts-Datei, WINS, DNS) kann der Name nicht aufgelöst werden, woraufhin das Programm zunächst hängt und dann eine Fehlermeldung ausgibt. Falls eine IP-Adresse angegeben wurde tritt in diesem Fall ein ähnliches Problem auf, da zunächst versucht wird den Namen zur Adresse zu bestimmen. Deshalb lässt sich diese Rückwärtsauflösung mit einer Option abschalten. Bei manchen Implementierungen ist diese Option standardmässig abgeschaltet und muss explizit aktiviert werden.

Einige weitere Parameter sind bei Ping einstellbar. Zum Beispiel bestimmt die Wiederholrate, wie häufig ein Paket gesendet wird. Die Paketgröße bestimmt die Größe des ICMP-Echo-Request-Pakets. Ein beantwortendes ICMP Echo-Reply hat dann die gleiche Paketgröße.

Beispiel


# ping de.wikipedia.org -n 5 PING de.wikipedia.org (130.94.122.197): 56 data bytes 64 bytes from 130.94.122.197: icmp_seq=0 ttl=239 time=222.1 ms 64 bytes from 130.94.122.197: icmp_seq=1 ttl=239 time=222.5 ms 64 bytes from 130.94.122.197: icmp_seq=2 ttl=239 time=222.4 ms 64 bytes from 130.94.122.197: icmp_seq=3 ttl=239 time=223.1 ms 64 bytes from 130.94.122.197: icmp_seq=4 ttl=239 time=223.7 ms --- de.wikipedia.org ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 222.1/222.7/223.7 ms

Es werden Datenpakete an den Rechner de.wikipedia.org gesandt. Vom Programm wird die Zeit gemessen, bis die Antwort des Hosts eintrifft. Diese Antwort wird als Pong bezeichnet. Die Zeitangabe sagt aus, wie lange es dauert, bis ein Datenpaket zum Host und wieder zurück braucht. Man kann daran grob erkennen, ob die Gegenstelle funktioniert und mit welcher Verzögerung bei einer Verbindung zu rechnen ist. Die Angabe TTL ist dazu da, um grob nachvollziehen zu können, über wie viele Router der Ping-Befehl gelaufen ist (im Beispiel maximal 16, da manche Router um mehr als 1 dekrementieren).

Bei dem Ping-Programm vom weit verbreiteten Windows-Betriebssystemen ist zu beachten, dass diese sich bei zweistelligen Zahlen mit führenden Nullen „merkwürdig“ verhält. Die IP-Adresse 192.168.093.002 wird zu 192.168.75.2. Dies liegt an der fehlerhaften Implementierung der Möglichkeit die Dezimalzahlen als Oktalzahlen darzustellen. Wenn man fälschlicherweise davon ausgeht, dass 093 eine Oktalzahl ist, dann wäre es in Wirklichkeit eine 113; dies ist in Dezimal 75. Die Implementierung ist fehlerhaft da sie nur Zahlen kleiner 8 bearbeitet, welches an sich auch richtig ist da es im Oktalsystem die Ziffern 8 und 9 nicht gibt. Wegen der führenden Null wird die Zahl aber stur als Oktalzahl interpretiert. Aus 099 wird also 81 Dezimal, welche aber in Wirklichkeit 121 Oktal ist. Es handelt sich dabei jedoch nur um einen Bug, verursacht durch Microsoft, dem Hersteller von Windows. Generell wird in der Unix-Welt die führende Null als Start einer Oktalzahl interpretiert und sollte daher bei numerischen IPs generell vermieden werden. Dieser Programmfehler scheint mittlerweile behoben zu sein. Windows XP interpretiert 093 nicht mehr als Oktalzahl sondern als Dezimalzahl und unterdrückt die führende Null. Dagegen wird 0113 weiter als Oktalzahl behandelt.

Bewertung der Pingdauer


Um die ermittelten Zeiten objektiv bewerten zu können, muss man sich überlegen, wie lange ein Signal auf die andere Seite der Erde und zurück braucht. Benötigt werden 85 ms, wenn man den optimalen Weg (direkt durch die Erde) und die Lichtgeschwindigkeit (300000 km/s), als Maximum der Geschwindigkeit wählt (eine Laufzeit von 5 Mikrosekunden pro Kilometer wäre realistischer), oder 133 ms, wenn man einen oberirdischen Weg verwendet. In der Realität ist der Wert noch höher und Werte um 333 ms sind nicht ungewöhnlich.

Auch sollte man nur Endgeräte anpingen, da Netzwerkgeräte (Router, Switches etc.) oft nur langsam auf Pings reagieren, da sie dafür nicht konzipiert sind, bzw. man so Angriffsszenarien auszuschließen versucht (siehe Firewall)

Herkunft des Namens


Der Name ping stammt aus der Kriegstechnik. 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, was als „Ping“ beschrieben wird. Häufig wird ping als Abkürzung von Packet Internet Groper dargestellt, was aber falsch ist. Der Autor des Programms sagte selber: From my point of view PING is not an acronym standing for Packet InterNet Groper, it's a sonar analogy.

Verwandte Programme


Bei dem verbreiteten Unix-Derivat Linux gibt es 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)

Im Betriebssystem von Windows gibt es zur Fehlersuche im gerouteten Netzwerk:

  • pathping (Mischung aus tracert und ping)

Weblinks


Netzwerkprotokoll

Ping | Ping | Ping | Ping | Ping | Ping | Ping | פינג | Ping | Ping | Ping (netwerk) | Ping | Ping | Ping | Ping | Ping | Ping | Ping | Ping

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Ping (Datenübertragung)".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld