“Ping di quà ping di là”: Ma cosa vuol dire fare un Ping?

Ping è un programma disponibile sui principali sistemi operativi che misura il tempo, espresso in millisecondi, impiegato da uno o più pacchetti ICMP a raggiungere un altro computer o server in rete (sia essa Internet o LAN) ed a ritornare indietro all’origine. È prettamente utilizzato per verificare la presenza e la raggiungibilità di un altro computer connesso in rete e per misurare le latenze di trasmissione di rete.

Tecnicamente ping invia un pacchetto ICMP di tipo echo request e rimane in attesa di un pacchetto ICMP di tipo echo reply in risposta. Solitamente infatti la parte di sistema operativo dedicata alla gestione delle reti (stack di rete) è programmata per rispondere automaticamente con un pacchetto di tipo echo reply alla ricezione di un pacchetto di tipo echo request.

Ping tipicamente visualizza sullo standard output il numero di pacchetti inviati e ricevuti, la loro dimensione, il tempo totale trascorso tra l’invio di ogni pacchetto e la ricezione della risposta corrispondente, la media dei tempi e la percentuale di risposte ottenute. Alcune implementazioni (come quella disponibile in Cisco IOS) non mostrano i tempi di ciascun tentativo, ma si limitano a mostrare un carattere per ogni pacchetto inviato che indica se è stata ricevuta risposta o meno. Altre implementazioni, come quella in Solaris, si limitano normalmente ad indicare se la destinazione è stata raggiunta o meno, e fornendo un output dettagliato solo specificando apposite opzioni.

L’autore originario di ping fu Mike Muuss che lo scrisse nel 1983 come strumento diagnostico di rete mentre lavorava al Ballistics Research Lab dell’US Army. L’origine del nome è attribuita alla similitudine esistente tra il funzionamento del programma da lui creato e quello di un sonar marino, il quale appunto emette dei ping sonori aspettandone il ritorno dopo che essi rimbalzano sul bersaglio.

In seguito David L. Mills ha definito ping come acronimo di Packet InterNet Groper (ricercatore di pacchetti Internet).

Il parametro destinazione può essere un indirizzo IP o un nome DNS, che indica l’apparato (o gli apparati, in caso di un indirizzo ip di broadcast) a cui inviare i pacchetti echo request.

Le opzioni sono specifiche del sistema operativo in uso, ma tipicamente consentono di specificare il numero di pacchetti di tipo echo request da inviare, la loro lunghezza in byte, e di effettuare un cosiddetto flood ping in cui i pacchetti sono inviati ripetutamente quanto più rapidamente possibile.

Tra le opzioni comunemente disponibili vi sono:

-a
Risolve gli indirizzi IP in nomi host.
-n conteggio
Determina il numero di richieste echo da inviare. Il numero di richieste predefinito è 4.
-w timeout
Consente di regolare il valore di timeout (in millisecondi). Il valore predefinito è 1000 (corrispondente a un timeout di un secondo).
–l dimensione
Consente di regolare la dimensione del pacchetto di ping. La dimensione predefinita è 32 byte.
-f
Imposta il bit di Non frammentazione nel pacchetto di ping. Per impostazione predefinita, il pacchetto di ping consente la frammentazione.
-t
Imposta la chiamata continua.

[modifica] Caratteri di output in Cisco IOS

L’implementazione di ping disponibile in Cisco IOS, per ciascun pacchetto inviato, visualizza un carattere che indica l’esito:
Carattere Significato
! il carattere esclamativo indica la ricezione di un reply
. ogni punto indica un network server timed out mentre è in attesa del reply
U il carattere U indica la ricezione di un PDU error (target irraggiungibile)
Q il carattere Q indica source quence target occupato
M non frammentabile
? packet di tipo sconosciuto
& packet lifetime superato

Fonte Wikipedia.

Lascia un commento