True Ping |
Benvenuti
alla Web Page
del programma
TRUE PING
(click
here for english version)
Questo programma permette di effettuare dei Ping con tempi non
approsimati come purtroppo avviene con i programmi standard su
piattaforma Windows. Il programma e' molto semplice e usa gli stessi
parametri del programma Ping.exe standard.
Dettagli Tecnici
Arrotondamento
nel calcolo della temporizzazione:
il programma
Ping di Win2K arrotonda come gli pare. O meglio, utilizza la funzione GetTickCount() che restituisce i millisecondi trascorsi dall'accensione del computer. L'orologio non e' proprio preciso per cui a secondo delle situazioni ti trovi dei scarti in piu' o in meno.
Con un tping invece su Win2K l'output e' ad esempio questo:
Reply from 194.177.103.3: bytes=32 time 30.72 ms (30 ms) TTL=194
Reply from 194.177.103.3: bytes=32 time 26.82 ms (20 ms) TTL=194
Reply from 194.177.103.3: bytes=32 time 25.46 ms (20 ms) TTL=194
Reply from 194.177.103.3: bytes=32 time 25.47 ms (20 ms) TTL=194
Reply from 194.177.103.3: bytes=32 time 25.66 ms (20 ms) TTL=194
Tra parentesi i valori calcolati utilizzando GetTickCount() che corrispondono perfettamente al ping, infatti:
M:\>ping maya.ngi.it
Pinging maya.ngi.it [194.177.103.3] with 32 bytes of data:
Reply from 194.177.103.3: bytes=32 time=30ms TTL=253
Reply from 194.177.103.3: bytes=32 time=20ms TTL=253
Reply from 194.177.103.3: bytes=32 time=20ms TTL=253
Reply from 194.177.103.3: bytes=32 time=20ms TTL=253
Ping statistics for 194.177.103.3:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 20ms, Maximum = 30ms, Average = 22ms
Il primo ping di 30 ms, con un ritardo di 5 ms puo' essere dovuto a vari fattori, tra cui
la la gestione processi del sistema operativo. Per default viene usato infatti
un thread secondario.
Utilizzo della
compressione in tempo reale:
Alcune
connessioni permettono la compressione in tempo reale dei dati, e dato che il
ping standard utilizza un buffer costante del tipo 'abcdefghijklmnopqrstuvw'
succede che la compressione in tempo reale ottimizza i tempi di esecuzione
riportando un ping non realistico. Il programma tping invece utilizza per
default un buffer casuale che cambia ad ogni ping (la compressione viene
utilizzata anche con un buffer casuale viene utilizzato piu' volte (nei
pacchetti successivi al primo).
Esempio
di ping utilizzando il buffer standard del ping:
C:\>tping maya.ngi.it -c
Pinging maya.ngi.it [194.177.103.3] with 32 bytes of data:
Reply from 194.177.103.3: bytes=32 time 31.91 ms (30 ms), TTL=253
Reply from 194.177.103.3: bytes=32 time 24.15 ms (20 ms), TTL=253
Reply from 194.177.103.3: bytes=32 time 26.52 ms (20 ms), TTL=253
Reply from 194.177.103.3: bytes=32 time 24.49 ms (20 ms), TTL=253
Reply from 194.177.103.3: bytes=32 time 24.26 ms (20 ms), TTL=253
Ping statistics for 194.177.103.3
Packets: Sent = 5, Received = 5, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 24.15ms, Maximum = 31.91ms, Average = 26.27ms
Esempio di ping utilizzando un buffer casuale ad ogni ping (default):
C:\>tping maya.ngi.it
Pinging maya.ngi.it [194.177.103.3] with 32 bytes of data:
Reply from 194.177.103.3: bytes=32 time 32.91 ms (30 ms), TTL=253
Reply from 194.177.103.3: bytes=32 time 33.93 ms (30 ms), TTL=253
Reply from 194.177.103.3: bytes=32 time 32.00 ms (30 ms), TTL=253
Reply from 194.177.103.3: bytes=32 time 32.65 ms (30 ms), TTL=253
Reply from 194.177.103.3: bytes=32 time 32.45 ms (30 ms), TTL=253
Ping statistics for 194.177.103.3
Packets: Sent = 5, Received = 5, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 32.00ms, Maximum = 33.93ms, Average = 32.79ms
Come si puo' notare c'e' una differenza sui ping successivi di oltre 7 ms dovuti
al buffer casuale che non puo' essere compresso. E' stata utilizzata una linea
ISDN compressione attiva e multilink su singolo canale e Firewall software
ZoneAlarm (aumenta il ping). Disattivando la compressione i due ping risultano
uguali.
Utilizzo di un
secondo thread (processo) per la ricezione dei dati:
In un ambiente
realistico la ricezione dei dati avviene attraverso un processo/thread specifico
di ascolto e non all'interno dello stesso thread che invia i dati. Per default
il tping utilizza questo meccanismo ma e' possibile utilizzare un unico thread
specificando il parametro -p.
In condizioni normali sulla rete internet dove i ritardi sono elevati non ci
sono molte differenze tra i due metodi, ma su una rete locale dove i tempi di
risposta sono estremamente bassi (intorno al millisecondo) le differenze si
fanno notare.
Scheduling
dei processi sotto Windows:
In condizioni normali sulla
rete internet dove i ritardi sono elevati i ritardi dovuti allo scheduling dei
processi sotto Windows non hanno praticamente influenza sui tempi di risposta,
ma su una rete locale, dove i ritardi sono molto bassi, i ritardi dovuti alla
gestione dei processi del sistema operativo influenzano notevolmente i valori
restituiti. In altre parole diventa elevato il tempo necessario per
"risvegliare" il processo che attende la risposta del ping dalla rete.
Utilizzando il parametro -d 0 in cui non introduciamo alcun ritardo tra la
ricezione e il successivo invio e quindi il programma tping non passa
praticamente mai in una fase di attesa abbiamo dei tempi molto piu' bassi.
C:\>tping localhost
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time 0.21 ms (0 ms), TTL=128
Reply from 127.0.0.1: bytes=32 time 0.12 ms (0 ms), TTL=128
Reply from 127.0.0.1: bytes=32 time 0.13 ms (0 ms), TTL=128
Reply from 127.0.0.1: bytes=32 time 0.14 ms (0 ms), TTL=128
Reply from 127.0.0.1: bytes=32 time 0.16 ms (0 ms), TTL=128
C:\>tping localhost -d 0
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time 0.21 ms (0 ms), TTL=128
Reply from 127.0.0.1: bytes=32 time 0.04 ms (0 ms), TTL=128
Reply from 127.0.0.1: bytes=32 time 0.04 ms (0 ms), TTL=128
Reply from 127.0.0.1: bytes=32 time 0.04 ms (0 ms), TTL=128
Reply from 127.0.0.1: bytes=32 time 0.03 ms (0 ms), TTL=128
In questo caso per avere il massimo numero di ping possibili in un intervallo temporale utilizzare un file temporaneo per l'output:
tping hostSuReteLocale -d 0 -n 1000 > out.txt
Download
Contattare l'autore per segnalare
eventuali problemi o suggerimenti.
Il Programma Principale |
|
tping1.13.zip |
True Ping 1.13 Il piccolo programmino. Copiarlo nella cartella di Windows per maggiore comodita'. |
tping-source
1.13.zip (74 KByte) |
Sorgenti di True Ping
1.13 - C++ su Visual Studio 6.0. Licenza Open-Source - GNU General Public License version 2 |
True Ping si trova anche su http://sourceforge.net/projects/tping/ |
Schermata
Storia delle Versioni
Release 1.13 - 16 September 2006:
News: Added Realtime Jitter calculation as described in RFC 1889.
News: Added Timestamp option printed at every received packet.
BugFix: Fixed bug in Jitter calculation.
18 July 2006 - Release 1.12:
News: Added Jitter calculation on the first 100 received packets.
News: Added Set Don't Fragment Flag in Packet.
Update: Changed Banner.
15 December 2004 - Release 1.11:
News: Implemented option -a for reverse hostname resolving.
News: Implemented option -z count that skips the first count received packets in the
statistic calculation. Useful if the first packets are slower than the average.
Release 1.10:
News: Implemented option -v for Type of Service.
News: Implemented return value of the program.
if ERRORLEVEL 1 THEN the remote server replied successfully.
Useful for batch calls to check if the server is available.
Release
1.09 - Update: Added correct HOP calculation if starting TTL=31 on remote server
Bug fix: some messages was fixed (grammatically)
Bug fix: the Average is calculated correctly now, in case of Packet Loss.
1.08 - Bug fix: il parametro -t non veniva piu' gestito nella precedente versione.
Bug fix: il parametro -j faceva partire TTL da 2 e non da 1, quindi salta il primo hop
1.07 -
Nuova opzione -j che effettua un piccolo trace route (un solo ping per ogni hop)
1.06 -
Viene visualizzato ora anche il numero di Hop (ovvero router tra il tuo computer
e quello che stai pingando) basato sul valore TTL.
1.05 -
Aggiunta opzione per l'intervallo di attesa tra un ping e il successivo.
Messaggio di errore se un parametro e' errato.
1.04 -
Aggiunta opzione per buffer standard come nel ping (per default il buffer
casuale e' differente ad ogni invio).
1.03 -
Aggiunta la visualizzazione delle statistiche, opzione per thread, i dati nel
buffer non sono casuali (come nel ping che abbassa i tempi in modo non
realistico con la compressione ISDN attiva) e qualche
aggiornamento.
1.02 -
Corretto un errore di Creazione Thread su Windows 9x
1.01 - Il valore TTL viene letto correttamente
1.00 - Prima versione
Copyright © 2001-2004 Andrea Denzler - denzler(at)usa.net