Ping: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nallimbot (discussione | contributi)
m sistemazione fonti, smistamento lavoro sporco e fix vari
 
(163 versioni intermedie di oltre 100 utenti non mostrate)
Riga 1:
{{nota disambigua}}
'''Ping''' è un [[Programma (informatica)|programma]] disponibile sui principali [[sistema operativo|sistemi operativi]] che misura il [[tempo]], espresso in [[millisecondo|millisecondi]], impiegato da uno o più [[pacchetto|pacchetti]] [[ICMP]] a raggiungere un altro [[computer]] o [[server]] in [[Rete informatica|rete]] (sia essa [[Internet]] o [[LAN]]) ed a ritornare indietro all'origine. È prettamente utilizzato per conoscere la presenza e la raggiungibilità di un altro computer connesso in rete. Dal prompt di DOS si esegue con la [[sintassi]] "ping [ [[indirizzo IP]] ]" oppure "ping it.wikipedia.org" (non preceduto da "http://"). Generalmente, la risposta del ping è chiamata "Pong".
{{F|software|arg2=programmazione|agosto 2023}}
{{Software
|Sviluppatore =
|SistemaOperativo = Multipiattaforma
|Linguaggio =
|Genere = utility
|Licenza =
|SoftwareLibero =
|SitoWeb =
}}
 
'''Ping''' (''Packet internet groper'') è un'[[utility]] di [[sistemista|amministrazione]] per [[reti di computer]] usata per misurare il [[tempo]], espresso in [[millisecondo|millisecondi]], impiegato da uno o più [[pacchetto (reti)|pacchetti]] [[Internet Control Message Protocol|ICMP]] a raggiungere un [[Dispositivi di rete|dispositivo di rete]] (attraverso una qualsiasi rete informatica basata su IP) e 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 [[latenza|latenze di trasmissione]] di rete.
Tecnicamente ping invia un pacchetto [[ICMP]] di ''echo request'' e rimane in attesa di un pacchetto ICMP di ''echo response'' in risposta. Solitamente infatti la parte di [[sistema operativo]] dedicata alla gestione delle reti (''stack di rete'') è programmata per rispondere automaticamente con un pacchetto ''echo response'' alla ricezione di un pacchetto di ''echo request''.
 
Tecnicamente tramite ping viene inviato un pacchetto ICMP di tipo ''echo request'' e si 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''.
Il ping misura il tempo, espresso in millisecondi, che impiega una informazione a raggiungere, partendo da un certo computer, un altro computer o server in rete (sia essa Internet o Lan) e a ritornare indietro allo stesso computer. Il prompt di DOS indica quanti pacchetti sono stati inviati e ricevuti, e in caso positivo il tempo per la ricezione del nodo finale. Il [[tracert]] fornisce le stesse informazioni, con un dettaglio maggiore: i dati riguardano tutti i nodi di rete attraversati dai ''[[frame]]'' per arrivare al sito indicato.
 
''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 (sistema operativo)|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 tool diagnostico di rete mentre lavorava al ''Ballistics Research Lab'' dell'[[US Army]]. Il nome originario era dovuto alla somiglianza del programma da lui creato ad un [[sonar]] marino che appunto emette dei ''ping'' e aspetta il ritorno del suono dopo che questo è rimbalzato sul bersaglio. In seguito [[David L. Mills]] ha definito ping come l'acronimo di '''''P'''acket '''I'''nter'''N'''et '''G'''roper'' (ricercatore di pacchetti Internet).
 
== Storia ==
Solitamente ping è uno strumento molto utile e in alcuni contesti necessario ma il fatto che la risposta ad un ping avvenga sempre e comunque in maniera automatica lo ha reso uno degli strumenti preferiti per gli attacchi di tipo [[DoS]] o [[DDoS]]. Infatti se ad un gran numero di computer viene inviato un pacchetto ''echo request'' con un ben preciso indirizzo ip mittente falsificato (''spoofato'' in gergo internet) questi computer saranno portati automaticamente a rispondere al falso indirizzo ip inondandolo (''flood'') di pacchetti ''echo response''. Questo potrebbe causare l'irraggiungibilità o (in caso di modem con scarsa larghezza di banda) la disconnessione della vittima da internet. Un tipico esempio di questo attacco era lo ''[[DoS#Smurf|smurf]]'', oggi difficilmente praticabile.
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.<ref name="story">{{cita web|url=http://ftp.arl.mil/~mike/ping.html|titolo=The Story of the PING Program|sito=arl.mil|autore=Michael John Muuss|accesso=13 ottobre 2014|lingua=en|urlmorto=sì|urlarchivio=https://www.webcitation.org/5saCKBpgH?url=http://ftp.arl.mil/~mike/ping.html|dataarchivio=8 settembre 2010}}</ref>
 
In seguito [[David L. Mills]] ha definito ''ping'' come [[acronimo]] di ''Packet InterNet Groper'' (pacchetto Internet a tentoni<ref>{{Cita web|url=https://ftp.arl.army.mil/~mike/ping.html|titolo=The Story of the PING Program|sito=ftp.arl.army.mil|accesso=1º novembre 2020}}</ref>).
Un altro uso maligno del tool ping consisteva nell'uso del flag ''-f'' del programma che comportava un massiccio invio di pacchetti ''echo request'' verso la vittima designata. Se l'attaccante aveva un'ampia larghezza di [[banda (informatica)|banda]] poteva facilmente ''floodare'' il destinatario mandando in crisi lo stack di rete e di conseguenza il [[sistema operativo]] della vittima impossibilitato a ricevere e a rispondere a tutti i pacchetti in arrivo.
 
== Uso (su MS Windows) ==
[[File:ComandoPing.jpg|thumb|upright=1.4|Esecuzione del comando ''ping'' su [[prompt dei comandi]] di [[Microsoft Windows]]]]
Da un'[[interfaccia a riga di comando]] si può eseguire ''ping'' come segue:
ping [''opzioni''] ''destinazione''
 
Il parametro ''destinazione'' può essere un [[indirizzo IP]] o un [[Domain Name System|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:
;<code>-a</code>: Risolve gli indirizzi IP in nomi host.
;<code>-n ''conteggio''</code>: Determina il numero di richieste echo da inviare. Il numero di richieste predefinito è 4.
;<code>-w ''timeout''</code>: Consente di regolare il valore di timeout (in millisecondi). Il valore predefinito è 1000 (corrispondente a un timeout di un secondo).
;<code>–l ''dimensione''</code>: Consente di regolare la dimensione del pacchetto di ping. La dimensione predefinita è 32 byte.
;<code>-f</code>: Imposta il bit di Non frammentazione nel pacchetto di ping. Per impostazione predefinita, il pacchetto di ping consente la frammentazione.
;<code>-t</code>: Imposta la chiamata continua, viene eseguito il ping all'host desiderato finché non viene interrotto. Può essere interrotto digitando sulla tastiera CTRL + C
 
=== 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:
 
{| class="wikitable"
! align="center"|Carattere
! Significato
|-
| align="center"|!
| il carattere esclamativo indica la ricezione di un reply
|-
| align="center"|.
| ogni punto indica un network server timed out mentre è in attesa del reply
|-
| align="center"|U
| il carattere U indica la ricezione di un PDU error (target irraggiungibile)
|-
| align="center"|Q
| il carattere Q indica source quence target occupato
|-
| align="center"|M
| non frammentabile
|-
| align="center"|?
| packet di tipo sconosciuto
|-
| align="center"|&
| packet lifetime superato
|}
 
== Esempi ==
Effettua un ''ping'' verso <code>it.wikipedia.org</code> (da un sistema [[GNU/Linux]]):
$ ping it.wikipedia.org
PING rr.esams.wikimedia.org (91.198.174.2) 56(84) bytes of data.
64 bytes from rr.esams.wikimedia.org (91.198.174.2): icmp_seq=1 ttl=50 time=83.0 ms
64 bytes from rr.esams.wikimedia.org (91.198.174.2): icmp_seq=2 ttl=50 time=82.4 ms
64 bytes from rr.esams.wikimedia.org (91.198.174.2): icmp_seq=3 ttl=50 time=84.0 ms
64 bytes from rr.esams.wikimedia.org (91.198.174.2): icmp_seq=4 ttl=50 time=82.6 ms
64 bytes from rr.esams.wikimedia.org (91.198.174.2): icmp_seq=5 ttl=50 time=82.4 ms
--- rr.esams.wikimedia.org ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4015ms
rtt min/avg/max/mdev = 82.416/82.933/84.066/0.636 ms
 
Effettua un ''ping'' verso <code>it.wikipedia.org</code> (da un [[router]] con [[Cisco IOS]]):
r1>ping it.wikipedia.org
 
Translating "it.wikipedia.org"...___domain server (151.99.125.1) [OK]
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 91.198.174.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 88/88/88 ms
 
== Alternative ==
Il comando [[traceroute]] offre informazioni analoghe a quelle offerte da ''ping'', ma mostrando anche il tempo impiegato per raggiungere ciascun [[gateway (informatica)|gateway]] intermedio tra la sorgente e la destinazione.
 
== Attacchi informatici ==
''ping'' è uno strumento molto utile se non indispensabile in alcuni contesti, ma il fatto che la risposta a pacchetti di tipo ''echo request'' avvenga in maniera automatica lo ha reso uno degli strumenti preferiti per gli attacchi di tipo [[DoS]] o [[DDoS]]. È possibile infatti inviare ad un gran numero di apparati di rete dei pacchetti di tipo ''echo request'' falsificando però l'indirizzo IP del mittente (''[[IP spoofing|spoofato]]'' in gergo internet) con quello della vittima: gli apparati di rete saranno portati automaticamente a rispondere all'indirizzo IP falsificato, saturandolo (''[[flood (informatica)|flood]]'') di pacchetti di tipo ''echo reply'' e causandone l'irraggiungibilità o (in caso di modem con scarsa larghezza di banda) la disconnessione della vittima da Internet (questo attacco è un tipo di [[reflection attack]]). Un tipico esempio di questo attacco era lo ''[[DoS#Smurf|smurf]]''. In seguito al diffondersi di questo tipo di attacco negli [[anni 1990|anni novanta]] sono state prese precauzioni che lo rendono difficilmente praticabile.
 
Una variante più semplice è il ''[[ping flood]]'', che consiste nell'invio a raffica di pacchetti di tipo ''echo request'' verso la vittima designata: se l'attaccante dispone di un'ampia larghezza di [[banda (informatica)|banda]] può facilmente saturare di richieste il destinatario, mandandogli in crisi lo ''[[stack]]'' di rete e di conseguenza il [[sistema operativo]] della vittima, impossibilitata a ricevere e a rispondere a tutti i pacchetti in arrivo.
 
== Note ==
<references />
 
== Bibliografia ==
* {{IETF|1147|FYI on a Network Management Tool Catalog: Tools for Monitoring and Debugging TCP/IP Internets and Interconnected Devices}}
 
== Voci correlate ==
* [[Ping flood]]
* [[Ping sweep]]
* [[Pathping]]
 
== CollegamentiAltri esterniprogetti ==
{{interprogetto}}
* [http://www.bairestools.com WEB PING]
 
== Collegamenti esterni ==
* {{cita web|url=https://linux.die.net/man/8/ping|titolo=ping|sito=[[Linux]] man pages|accesso=28 febbraio 2009|lingua=en}}
* {{cita web|url=https://www.freebsd.org/cgi/man.cgi?query=ping&apropos=0&sektion=0&manpath=FreeBSD+7.1-RELEASE&format=html|titolo=ping|sito=[[FreeBSD]] Man Pages|accesso=28 febbraio 2009|lingua=en}}
* {{cita web|url=https://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/ping.8.html|titolo=ping|sito=[[macOS]] Man Pages|accesso=28 febbraio 2009|lingua=en}}
* {{cita web|url=http://docs.sun.com/app/docs/doc/819-2240/ping-1m?l=it&a=view|titolo=ping|sito=[[Solaris (sistema operativo)|Solaris]] Express Reference Manual Collection|accesso=28 febbraio 2009|lingua=en}}
* {{cita web|url=http://docs.hp.com/en/B2355-60130/ping.1M.html|titolo=ping|sito=[[HP-UX]] Reference|accesso=28 febbraio 2009|lingua=en}}
* {{cita web|url=https://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.cmds/doc/aixcmds4/ping.htm|titolo=ping Command|sito=Documentazione [[AIX (sistema operativo)|AIX]] — Commands Reference|accesso=28 febbraio 2009|lingua=en}}
* {{cita web|url=https://technet.microsoft.com/it-it/library/bb490968(en-us).aspx|titolo=ping|sito=[[Windows XP]] Command-line reference|accesso=28 febbraio 2009|lingua=en}}
* {{cita web|url = http://www.toolsrepo.com/it/network/ping|titolo = ping online|sito = ToolsRepo - esegue ping da pagina web, in italiano|accesso = 27 novembre 2014|lingua = it|urlmorto = sì|urlarchivio = https://web.archive.org/web/20141205003755/http://www.toolsrepo.com/it/network/ping}}
* {{cita web|url=http://networktools.nl/ping|titolo=Online Ping|lingua=en|accesso=2 marzo 2010|urlarchivio=https://web.archive.org/web/20100314034335/http://networktools.nl/ping|urlmorto=sì}}
 
{{Comandi Unix}}
[[Categoria:Internet]]
{{Portale|Informaticatelematica|informatica}}
 
[[Categoria:Software di rete]]
[[ca:Ping]]
[[Categoria:Comandi Unix]]
[[cs:Ping]]
[[da:Ping]]
[[de:Ping (Datenübertragung)]]
[[el:Ping]]
[[en:Ping]]
[[es:Ping]]
[[et:Ping (programm)]]
[[eu:Ping]]
[[fi:Ping]]
[[fr:Ping]]
[[gl:Ping]]
[[he:פינג]]
[[hu:Ping]]
[[id:Ping]]
[[ja:Ping]]
[[ko:핑]]
[[lt:Ping]]
[[ml:പിങ്]]
[[nl:Ping (netwerk)]]
[[pl:Ping]]
[[pt:Ping]]
[[ro:Ping]]
[[ru:Ping]]
[[sv:Ping]]
[[th:ปิง (คอมพิวเตอร์)]]
[[tr:Ping]]
[[uk:Ping]]
[[vi:Ping]]
[[zh:Ping]]