PING(8) | System Manager's Manual | PING(8) |
ping
— invia
pacchetti ICMP ECHO_REQUEST agli host della rete
ping
[-Rdfnqrv
]
[-c
count]
[-i
wait]
[-l
preload]
[-p
pattern]
[-s
packetsize]
host
Ping
usa il datagramma imperativo
ECHO_REQUEST del protocollo ICMP per ottenere una ICMP ECHO_RESPONSE da un
host o gateway. I datagrammi ECHO_REQUEST (``ping'') hanno un'intestazione
IP e ICMP, seguita da un “struct timeval” e quindi un numero
arbitrario di byte ``pad'' usati per completare il pacchetto. Le opzioni
sono le seguenti:
-c
count-d
SO_DEBUG
sul socket usato.-f
-i
wait-f
.-l
preloadping
invia tutti questi pacchetti il più
velocemente possibile prima di tornare al suo normale modo di
comportamento.-n
-p
pattern-p
ff
” farà sì che il pacchetto inviato venga
rimepito con deli uno.-q
-R
-r
-s
dimensione pacchetto-v
Quando si usa ping
per isolare i guasti,
deve prima essere avviato sull'host locle, per verificare che l'interfaccia
della rete locale sia funzionante. Quindi, host e gateways lontani possono
venire "pingati". Vengono conteggiate le statistiche sui tempi di
risposta e i pacchetti persi Se vengono ricevuti pacchetti duplicati essi
non sono inclusi nel calcolo dei pacchetti persi, sebbene il tempo di
risposta di questi pacchetti sia usato nel calcolare i numeri di
minimo/medio/massimo tempo di risposta. Quando il numero specificato di
pacchetti è stato inviato (e ricevuto) o se il programma è
terminato con un SIGINT
, viene visualizzato un breve
sommario.
Questo programma è pensato per l'uso nel test delle reti,
misura e gestione. A causa del carico che può imporre alla rete,
è sconsigliabile usare ping
durante le
normali operazioni o da script automatizzati.
Un'intestazione IP senza opzioni è di 20 byte. Un pacchetto ICMP ECHO_REQUEST contiene un'intestazione addizionale ICMP di 8 byte seguita da un ammontare arbitrario di dati. Quando viene data una dimensione pacchetto questo indica la dimensione di questa parte extra di dati (il default è 56). Quindi l'ammontare di dati ricevuti in un pacchetto IP di tipo ICMP ECHO_REPLY sarà sempre 8 byte in più dello spazio dati richiesto (l'intestazione ICMP ).
Se lo spazio dati è grande almeno 8 byte,
ping
usa i primi 8 byte di questo spazio per
includere data e ora, che usa nel computo dei tempi di risposta. Se sono
specificati meno di otto byte di cuscinetto, non vengono dati tempi di
risposta.
Ping
riporterà i pacchetti
duplicati e danneggiati. Non devono mai esserci pacchetti duplicati, e
ciò sembra causato da ritrasmissioni inappropriate a livello di
connessione. Le duplicazioni possono avvenire in molte situazioni e sono
raramente (per non dire mai) un buon segno, sebbene la presenza di bassi
livelli di duplicati potrebbe non sempre essere causa di allarme.
I pacchetti danneggiati una seria causa di allarme, e spesso
indicano hardware malfunzionante da qualche parte nel percorso dei pacchetti
di ping
(nella rete o ngeli host).
Lo strato di (inter)network non deve mai trattare i pacchetti in modo differente in funzione dei dati contenuti nella porzione dati. Sfortunatamente sono noti problemi dipendenti dai dati che si infilano nelle reti e rimangono nascosti per lunghi periodi di tempo. In molti casi il particolare schema che avrà problemi è qualcosa che non ha sufficienti "transizioni", come tutti uno o tutti zero, o uno schema al confine, come uno con quasi tutti zero. Non è necessariamente sufficiente specificare uno schema dati di tutti zero (per esempio) sulla linea di comando, perché lo schema di interesse è al livello collegamento dati, e la relazione tra ciò che si digita e ciò che il controller trasmette può essere complessa.
Ciò significa che se si ha un problema dipendente dai dati
bisognerà probabilmente fare molti test per trovarlo. Se si è
fortunati si può trovare un file che non può essere inviato
attraverso la propria rete o che impiega troppo tempo per trasferirsi di
altri file di lunghezza simile. Si può quindi esaminare questo file
per trovare gli schemi ripetuti, che si possono testare usando l'opzione
-p
di ping
.
Il valore TTL di un pacchetto IP rappresenta il numero massimo di router IP che il pacchetto può attraversare prima di essere respinto. Nella pratica corrente ci si può aspettare che ciascun router in Internet decrementi il campo TTL esattamente di uno.
Le specifiche TCP/IP stabiliscono che il campo TTL per i pacchetti TCP deve essere impostato a 60, ma molti sistemi usano valori minori ( BSD 4.3 usa 30, 4.2 usava 15).
Il massimo valore possibile di questo campo è 255, e molti sistemi Unix impostano il campo TTL dei pacchetti ICMP ECHO_REQUEST a 255. Questa è la ragione per cui si può fare ``ping'' su certi host, ma non li si può raggiungere con telnet(1) o ftp(1).
Nelle operazioni normali ping stampa il valore ttl dal pacchetto che riceve. Quando un sistema remoto riceve un pacchetto ping, esso può fare una tra tre cose con il campo TTL in risposta:
ping
ing
host.Molti Host e Gateway ignorano l'opzione RECORD_ROUTE.
La lunghezza massima dell'intestazione IP è troppo piccola per opzioni come RECORD_ROUTE per essere completamente utile. Tuttavia su questo non si può fare molto.
Il flood pinging in generale non è raccomandato, e il flood pinging su indirizzo broadcast deve essere fatto solo sotto condizioni strettamente controllate.
Il comando ping
è aparso nella
4.3BSD.
28 aprile 1995 | BSD 4.3 |