Il ping è sicuramente lo strumento più utilizzato da chi lavora con le reti informatiche, un semplice comando che permette di ottenere tante informazioni in tempo zero. Permette di capire se un host è raggiungibile o meno, la latenza media, massima e minima, il numero di pacchetti persi, o addirittura se ci sono problemi di configurazioni nelle routing table. Il ping viene anche usato da molti protocolli e tecniche come, ad esempio, il Ping Watchdog e il routing ricorsivo che in base alla raggiungibilità dell’host avviano azioni come avvisare l’amministratore di rete o disabilitare una rotta per utilizzarne un’altra di backup.
Il ping eseguito normalmente dal cmd di Windows o dal terminale di sistemi Unix si basa sull’utilizzo del protocollo ICMP. A volte però, quando si installa un server remoto o sistemi simili, sarebbe utile poter utilizzare un ping basato su TCP in modo tale da poter capire ad esempio:
- Lo stato delle regole di filtraggio. Potremmo incappare in regole che bloccano i pacchetti ICMP ma non quelli TCP o viceversa.
- La latenza dei pacchetti TCP. Sebbene le differenze in termini di latenze di solito sono trascurabili, se eseguiamo un ping normale le latenze riportate sono relative ai pacchetti ICMP. Questo è un protocollo livello 3 che, se paragonato al protocollo TCP il quale si trova a livello trasporto (livello 4) presenta un header molto più complesso siccome deve garantire affidabilità, quindi un overhead ben maggiore di ICMP.
- Errori nelle regole di NAT. In alcune situazioni, magari con reti con una topologia non banale, potrebbe capitare di trovarsi con regole di NAT errate che mascherano solo pacchetti TCP e non ICMP, creando disservizi e problemi di sicurezza.
- Il corretto funzionamento di applicativi in ascolto su socket TCP.
Di conseguenza abbiamo deciso di presentare il tool PsPing. Questo tool è stato sviluppato da Mark Russinovich ed è disponibile per sistemi Windows, implementa le funzionalità di ping, ping TCP e misurazioni di latenza e di larghezza di banda. L’installazione è molto semplice basta aprire il sito PsPing, scaricare il file zip, estrarlo e aggiungerlo alla variabile di ambiente PATH.
L’utilizzo di PsPing prevede un server su cui avviare il comando
psping -s <source:sourceport>
dove:
source
è l’indirizzo;sourceport
è la porta di ascolto del server.
Lato client invece è possibile eseguire:
psping <ipserver:porta>
per eseguire il ping TCP;psping -l 8k -n 10000 <ipserver:porta>
per eseguire un test di latenza con pachetti TCP da 8kb con 10 mila invii e ricezioni;psping -b -l 8k -n 10000 <ipserver:porta>
per eseguire un test di larghezza di banda.
Oltre al protocollo TCP, per il test di larghezza e latenza, è possible usare anche UDP aggiungendo il flag -u
.
Ad esempio: psping -u -b -l 8k -n 10000 <ipserver:porta>
esegue un test di larghezza di banda con pacchetti
UDP. Invece utilizzando il flag -r
è possibile testare la ricezione di dati dal server anziché l’invio.