ping

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Tento článek pojednává o programu. Další významy jsou uvedeny v článku Ping (rozcestník).

Program ping (anglicky Packet InterNet Groper) umožňuje prověřit funkčnost spojení mezi dvěma síťovými rozhraními (počítače, síťová zařízení) v počítačové síti, která používá rodinu protokolů TCP/IP. ping při své činnosti periodicky odesílá IP datagramy a očekává odezvu protistrany. Při úspěšném obdržení odpovědi vypíše délku zpoždění (latenci) a na závěr statistický souhrn.

Popis činnosti[editovat | editovat zdroj]

Parametrem programu ping je doménové jméno nebo IP adresa síťového rozhraní, jehož dostupnost chceme prověřit. Je-li uvedeno doménové jméno, je nejprve přeloženo pomocí DNS na IP adresu. Program využívá zprávy „Echo Request“ (typ 8, výzva) a „Echo Reply“ (typ 0, odpověď) protokolu ICMP. Výzvy jsou odesílány na cílovou IP adresu a ve stanoveném limitu se očekává odpověď (typicky 3 sekundy). Jednotlivé výzvy obsahují čísla (icmp_seq), podle kterých je možné identifikovat jednotlivé odpovědi nebo jejich ztrátu. Program průběžně vypisuje, které odpovědi již došly a s jakým zpožděním (latencí).

Ping (Linux)[editovat | editovat zdroj]

  • -i : interval s jakým se budou pakety posílat
  • -s : velikost paketu
  • -t : TTL paketu (maximální počet skoků k cíli)

Pro popis ostatních použijte:

ping --help

Příklad výpisu[editovat | editovat zdroj]

$ ping cs.wikipedia.org
PING rr.pmtpa.wikimedia.org (66.230.200.100) 56(84) bytes of data.
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=0 ttl=49 time=193 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=1 ttl=49 time=184 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=2 ttl=49 time=179 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=3 ttl=49 time=181 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=4 ttl=49 time=192 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=5 ttl=49 time=182 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=6 ttl=49 time=176 ms

--- rr.pmtpa.wikimedia.org ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6003ms
rtt min/avg/max/mdev = 176.643/184.297/193.533/5.889 ms, pipe 2

V příkladu byl výpis přerušen kombinací kláves Ctrl + C po 7 vyslaných paketech na server rr.pmtpa.wikimedia.org. Odpovědi se „vrátily“ v průměrném čase 184,3 ms, nejkratší dosažený čas je 176,6 ms a nejdelší je 193,5 ms. Žádný paket nebyl ztracen.

Délku odesílaného paketu je možné nastavit. Délky těsně pod hranici MTU (Maximum Transmission Unit, obvykle 1 500 bajtů) umožní sledovat chování sítě při přenosu delších datagramů, což se hodí zejména v bezdrátových sítích, kde kratší datagramy projdou snadněji. Nemá však smysl délku zvětšovat nad velikost MTU, protože dojde k automatické fragmentaci datagramu. Výhodou unixových verzí je, že obvykle kontrolují i obsah vráceného datagramu, takže lze zjistit, jestli nedochází k jejich poškození.

Ping (Windows)[editovat | editovat zdroj]

  • -t : odesílat až do přerušení pomocí kombinace kláves Ctrl + C
  • -l : velikost paketu
  • -i : TTL paketu (maximální počet skoků k cíli)

Pro popis ostatních použijte:

ping /?

Příklad výpisu[editovat | editovat zdroj]

C:\>ping cs.wikipedia.org

Příkaz ping na rr.knams.wikimedia.org [91.198.174.2] s délkou 32 bajtů:

Odpověď od 91.198.174.2: bajty=32 čas=19ms TTL=60
Odpověď od 91.198.174.2: bajty=32 čas=19ms TTL=60
Odpověď od 91.198.174.2: bajty=32 čas=19ms TTL=60
Odpověď od 91.198.174.2: bajty=32 čas=19ms TTL=60

Statistika ping pro 91.198.174.2:
Pakety: Odeslané = 4, Přijaté = 4, Ztracené = 0 (ztráta 0%),
Přibližná doba do přijetí odezvy v milisekundách:
Minimum = 19ms, Maximum = 19ms, Průměr = 19ms

Ve výpisu je vidět, že standardní program ping v systému Microsoft Windows neumožňuje měřit s přesností větší než 1 milisekunda. Proto vznikl pro Microsoft Windows nový ping tzv. „True Ping“ který měří přesněji a není závislý na konkrétní verzi Windows. Ping skončí automaticky po 4 pokusech.