NÉV¶
ping —
a hálózat
gépeinek ICMP ECHO_REQUEST csomagok küldése
VÁZLAT¶
ping [
-dfnqrvR]
[
-c
(számláló)]
[
-i
(várakozás)]
[
-l
(előterhelés)]
[
-p
(mintázat)]
[
-s
(csomagméret)]
LEÍRÁS¶
A
ping ICMP (hálózatközi
vezérlőüzenet protokol) kötelező ECHO_REQUEST
(visszhang-kérés) datagramot küld azért, hogy egy ICMP
ECHO_RESPONSE (visszhang-válasz) válaszcsomagot kapjon egy
géptől vagy átjárótól. Az ECHO_REQUEST
datagramok (``ping''-ek) egy IP és egy ICMP fejléccel rendelkeznek,
amit egy “struct timeval” késés követ, majd
tetszőleges számú kitöltő ``pad'' byte ami
megtölti a csomagot.
- -c
számláló
- A program leállása
számláló ECHO_RESPONSE csomag
fogadása után.
- -d
- Beállítja a
SO_DEBUG
(hibakeresési) opciót a használt csatlakozóponton
(socket-en).
- -f
- Elárasztó (flooding) ping. A kimenő csomagok
olyan gyorsak, hogy vagy másodpercenként százszor, vagy a
visszaérkezés után azonnal indulnak, amelyik gyorsabb.
Minden egyes elküldött ECHO_REQUEST után egy pont ``.''
jelenik meg, és minden kapott ECHO_REPLY után egy
visszatörlés (backspace). Ez gyorsan láthatóvá
teszi, hogy hány csomag veszett el. Ezt az opciót csak a
szuper-felhasználó használhatja.
Figyelmeztetés: ez komoly hálózat
terhelést okoz, és csak fokozott óvatossággal
használható.
- -i
várakozás
- Minden csomag között
várakozás másodpercnyi
várakozás. Az alapértelmezett egy
másodpercnyi várakozás minden csomag között. Ez
az opció összeférhetetlen az -f
opcióval.
- -l
előterhelés
- Ha az előterhelés
opciót megadjuk, a ping először ennyi
csomagot küld, amilyen gyorsan csak lehetséges, mielőtt
visszatérne normál működési állapotába.
Ezt az opciót csak a szuper-felhasználó
használhatja.
- -n
- Csak számjegyes kijelzés. Nem történik
kísérlet a gépek címeihez tartozó szimbolikus
nevek visszakeresésére.
- -p
mintázat
- Meghatározható legfeljebb 16 kitöltő,
``pad'' byte a küldött csomag kitöltéséhez. Ez
akkor hasznos, ha a hálózat adatfüggő
problémáit szeretnénk diagnosztizálni.
Például, a “
-p ff
”
hatására a küldött csomag csupa egyessel lesz
kitöltve.
- -q
- Csöndes kijelzés. Semmi sem íródik ki,
csak az összegző sor induláskor és
befejezéskor.
- -R
- Útvonal feljegyzés. Tartalmazza a RECORD_ROUTE
opciót az ECHO_REQUEST csomagban és a visszatérő
csomagokban lévő útvonal puffert megjeleníti.
Megjegyzendő, hogy az IP fejlécbe csak kilenc ilyen útvonal
fér bele. Sok gép nem veszi figyelembe, vagy eldobja ezt az
opciót.
- -r
- Kikerüli a rendes útvonal választó
táblázatot és közvetlenül a csatolt
hálózat gépének küld. Hibajelzés
érkezik, ha a gép nem a közvetlenül csatolt
hálózaton található. Ez az opció akkor
használható, ha egy helyi gépet szeretnénk pingelni
egy olyan csatolón keresztül, aminek nincs közvetlen
útvonala felé (például miután a csatolót
eldobta a routed(8)).
- -s
csomagméret
- Az elküldendő adatbájtok számát
határozza meg. Az alapértelmezett 56, ami 64 ICMP
adatbájtra módosul, amikor az ICMP 8 bájtos fejléce
hozzáadódik.
- -v
- Bőbeszédű kimenet. Minden fogadott ICMP
csomag, ami nem ECHO_RESPONSE kiíródik.
Amikor a
ping segítségével hibát
keresünk, először mindig a saját gépet kell
ellenőrizni, hogy a helyi hálózati csatoló jól
működik. Utána egyre távolabbi gépeket és
átjárókat kell ``pingelni''. A program a válaszidők
és a csomag veszteségek statisztikáját kiszámolja. Ha
kettőzött csomagok érkeznek, azokat nem számolja bele a
csomagveszteségi statisztikába, habár ezen csomagok
válaszidejét használja a minimum/átlag/maximum
válaszidő kiszámításához. Amikor a
meghatározott darabszámú csomagot elküldte (és
megkapta), vagy
SIGINT
hatására megszakad a
program futása, egy rövid összegzést ír ki.
Ha a
ping nem kap egyetlen válaszcsomagot sem, 1-es
kilépési kódot eredményez. Hiba esetén 2-es,
egyébként 0-ás kóddal lép ki. Ezért a
kilépési kód használható annak
megállapítására, hogy egy gép ``él'' vagy sem.
Ezen programot a hálózat ellenőrzésére,
mérésére és menedzselésére szánták. A
terhelés miatt, amit a hálózaton okoz, nem tanácsos a
ping használata normál működés
során, vagy automatikus parancsfájlokban.
AZ ICMP CSOMAG
RÉSZLETEI¶
Egy IP fejléc opciók nélkül 20 byte hosszú. Egy ICMP
ECHO_REQUEST csomag ezenkívül tartalmaz egy 8 bájtos ICMP
fejlécet, amit tetszőleges mennyiségű adat követ.
Amikor a
csomagméretet megadjuk, ezt a többlet
adatmennyiséget határozzuk meg (az alapértelmezett 56).
Tehát az IP csomag belsejében kapott ICMP ECHO_REPLY
típusú adat mennyisége mindig 8 bájttal (az ICMP
fejléccel) több lesz, mint az kért adatmennyiség.
Ha ez az adatmennyiség legalább 8 byte hosszú, a
ping ennek az első nyolc bájtját
használja arra, hogy időjelzést tegyen bele, amit a
visszatérési idő kiszámítására
használ. Ha kevesebb, mint nyolc kitöltő bájtot
határozunk meg, akkor a visszatérési időket nem adja meg.
KÉTSZEREZETT
ÉS SÉRÜLT CSOMAGOK¶
A
Ping jelez minden megkétszerezett és
sérült csomagot. Kétszerezett csomagnak normális esetben
nem lenne szabad előfordulnia, és úgy tűnik, hogy
hibás link-szintű újraküldések okozzák. A
kétszereződések sok helyzetben előfordulhatnak, és
habár ritkán, (vagy sosem) jelentenek jót, az alacsony
szintű kettőződések előfordulása nem minden
esetben ad okot a riadalomra.
A sérült csomagok feltétlenül riasztó jelek, és a
ping csomag útjában (a hálózaton vagy a
gépeken) hibás hardvert jeleznek.
KÜLÖNBÖZŐ
ADATMINTÁZATOK KIPRÓBÁLÁSA¶
A hálózat(között)i réteg sohasem kezelheti a csomagokat
eltérően, az adatrészükben tartalmazott adatoktól
függően. De sajnos, adatfüggő problémák
osonhatnak be a hálózatokba, amik ott hosszú ideig
felfedezetlenek maradhatnak. Sok esetben az a különös
mintázat, amivel a probléma van olyan, amiben nincs elég
``átmenet'', mint pl. a csak nullák, csak egyesek, vagy olyan minta,
ami ehhez közelít, mint pl. a majdnem csak nullák. Nem
feltétlenül elégséges, ha a parancssorban olyan
adatmintázatot határozunk meg, ami (például) csak
nullákból áll, mivel az adatkapcsolati szinten lévő
mintázat számít, és a kapcsolat a parancssorba beírt
adat és a vezérlő által továbbított adat
között igen bonyolult lehet.
Ez azt jelenti, hogy ha adatfüggő problémát kell keresni,
valószínűleg igen sokat kell próbálgatni hogy
megtaláljuk. Ha szerencsénk van, található egy olyan
fájl, ami vagy nem megy át a hálózaton, vagy az
átvitele sokkal tovább tart, mint a hasonló
hosszúságú fájloké. Akkor ebben a fájlban lehet
olyan ismétlődő mintázatokat keresni, amit ki lehet
próbálni a
ping -p
opciójával.
TTL RÉSZLETEI¶
Egy IP csomag TTL értéke jelzi az IP útvonalválasztók
maximális számát, amin a csomag keresztül tud menni,
mielőtt eldobják. A jelenlegi gyakorlat szerint az Interneten minden
útvonalválasztótól az várható, hogy a TTL
mezőt pontosan eggyel csökkenti.
A TCP/IP specifikációja szerint a TTL mezőt a TCP
csomagoknál 60-ra kell állítani, de sok rendszer kisebb
értékeket használ ( a BSD 4.3 30-at, a 4.2 15-öt
használt).
Ennek a mezőnek a lehetséges legnagyobb értéke 255, és
a legtöbb Unix rendszer az ICMP ECHO_REQUEST csomagokban a TTL mezőt
255-re állítja. Ezért van az, hogy néhány gép
``ping''-elhető, de nem érhető el
telnet(1)
-tel vagy
ftp(1) -vel.
Normális működés esetén a ping a megkapott csomagok TTL
értékét kiírja. Amikor a távoli rendszer megkapja a
ping csomagot, a következő három dolog valamelyikét teheti
a TTL mezővel a válaszában:
- Nem változtatja; ez az, amit a Berkeley Unix
rendszerek csináltak a 4.3BSD-Tahoe
változat előtt. Ebben az esetben a TTL értéke a
megkapott csomagban 255 minusz az oda-vissza úton érintett
útvonalválasztók száma lesz.
- Beállítja 255-re; ez az, amit a jelenlegi
Berkeley Unix rendszerek tesznek. Ebben az esetben a TTL értéke
a kapott csomagban 255 minusz az útvonalválasztók
száma lesz a távoli rendszer felől a
pingelő gép irányában.
- Valami más értékre állítja.
Néhány gép ugyanazt az értéket használja az
ICMP csomagok számára, mint amit a TCP csomagok esetében,
például 30-at vagy 60-at. Egyebek használhatnak teljesen
vad értékeket.
HIBÁK¶
Sok gép és átjáró figyelmen kívül hagyja a
RECORD_ROUTE opciót.
Az IP fejléc maximális hossza túl kicsi ahhoz, hogy az olyan
opciók, mint a RECORD_ROUTE teljesen hasznosak lehessenek. Ezzel azonban
nem sokat lehet tenni.
Az elárasztó pingelés általában nem ajánlott, az
üzenetszórási címnek az elárasztó pingelése
pedig csak nagyon ellenőrzött körülmények
között végezhető.
LÁSD MÉG¶
netstat(1),
ifconfig(8),
routed(8)
TÖRTÉNETE¶
A
ping parancs először a
4.3BSD rendszerben jelent meg.
MAGYAR FORDÍTÁS¶
Bozsér Zoltán <ZOLTAN.BOZSER@hun.conoco.com>