Ping

Ping – polecenie używane w sieciach komputerowych TCP/IP (jak Internet) i służące do diagnozowania połączeń sieciowych. Pozwala na sprawdzenie, czy istnieje połączenie pomiędzy hostami testującym i testowanym. Umożliwia on zmierzenie liczby zgubionych pakietów oraz opóźnień w ich transmisji, zwanych lagami.

Mike Muuss (1958–2000) wymyślił i napisał pierwszą implementację pingu w grudniu 1983 pod 4.2aBSD Unix. Razem z koniecznymi zmianami w jądrze systemu pojawiła się ona w 4.xBSD Unix.

Nazwa 
Autor użył anglojęzycznej onomatopei ping określającej sygnały aktywnego sonaru, które emitowane w kierunku innego okrętu umożliwią jego identyfikację na podstawie echa. Program ping działa na podobnej zasadzie. W obu przypadkach wysyłany jest sygnał, który po pewnym czasie wraca odbity.

Z czasem nazwę programu potraktowano jako skrótowiec, dla którego znaleziono wiele rozwinięć. Jednym z popularniejszych, w języku angielskim, jest Packet Internet Groper (groper to ten, kto szuka po ciemku/po omacku).

Przez analogię do technologii sonaru, autor używał również nazwy ping na pakiety używane przez program.

Czasem odpowiedź na ping (ICMP Echo Reply) nazywana jest też pong.

Działanie 
Ping korzysta z protokołu ICMP, wysyła pakiety ICMP Echo Request i odbiera ICMP Echo Reply.

Większość publicznie dostępnych serwerów obsługuje te pakiety. W takiej sytuacji aplikacja ping pozwala na sprawdzenie poprawnego działania sieci komputerowej, jednakże większość użytkowników programu ping jest błędnie przekonana, że jeśli zdalny host nie odpowiada na wysłane pingi, to jest tak tylko gdy nie jest włączony lub jest problem z siecią pomiędzy obiema maszynami.

Warto dlatego pamiętać, iż blokowanie wysyłania pakietów-odpowiedzi ICMP Echo Reply (stosuje się do tego celu zapory sieciowe lub filtry w routerach) jest jedną z powszechnych metod ochrony przed atakiem z sieci. Jest tak, gdyż analiza pakietów ICMP Echo Reply nie tylko potwierdza istnienie hosta pod danym adresem IP, ale często również pozwala na dokładne określenie systemu operacyjnego, co ułatwia zaatakowanie komputera.

Również odpowiedź na ping nie oznacza, że serwis (np. witryna www) na tym systemie pracuje, a nawet, że system operacyjny w dalszym ciągu działa.

Przykłady działania 
Implementacje pod AIX i z pakietu iputils (dla systemów Unix, Linux i Cygwin) domyślnie wysyłają pakiety bez przerwy,
wersje z Solaris domyślnie tylko podają czy otrzymano odpowiedź,
implementacje w Microsoft Windows domyślnie wysyłają cztery pakiety.

System Linux 
$ ping -c 5 pl.wikipedia.org
PING pl.wikipedia.org (130.94.122.197): 56 octets data
64 octets from 130.94.122.197: icmp_seq=0 ttl=46 time=26.5 ms
64 octets from 130.94.122.197: icmp_seq=1 ttl=46 time=26.1 ms
64 octets from 130.94.122.197: icmp_seq=2 ttl=46 time=25.1 ms
64 octets from 130.94.122.197: icmp_seq=3 ttl=46 time=26.1 ms
64 octets from 130.94.122.197: icmp_seq=4 ttl=46 time=27.1 ms

--- pl.wikipedia.org ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 250.1/260.3/270.1 ms

System Solaris 
% ping pl.wikipedia.org
pl.wikipedia.org is alive

System Windows 
C:\WINDOWS>ping pl.wikipedia.org

Badanie rr.knams.wikimedia.org [145.97.39.155] z użyciem 32 bajtów danych:

Odpowiedź z 145.97.39.155: bajtów=32 czas=35ms TTL=49
Odpowiedź z 145.97.39.155: bajtów=32 czas=31ms TTL=49
Odpowiedź z 145.97.39.155: bajtów=32 czas=34ms TTL=49
Odpowiedź z 145.97.39.155: bajtów=32 czas=32ms TTL=49

Statystyka badania ping dla 145.97.39.155:
   Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0 <0% straty>,
Szacunkowy czas błądzenia pakietów w milisekundach:
   Minimum = 31 ms, Maksimum =  35 ms, Czas średni =  33 ms

Zobacz też 
Inne narzędzia diagnozujące sieć:
 traceroute
 ifconfig
 ipconfig
 route
Sposoby ataków na serwer internetowy za pomocą zapytań ICMP Echo Request:
 ping flood
 ping of death
 Smurf attack

Linki zewnętrzne 
 
 PING - co to jest i jak go sprawdzić?. bizserver.eu [Dostęp (2023-08-24)].

Ping
Polecenia systemu Windows
Polecenia Unix