Recently I’ve started playing with hping and tcpping to allow for tcp/udp packet testing.
One neat little tool called GNUPlot allows for you to take statistics and then plot them on a diagram. In this tutorial I’ll show you how easy it is.
Step 1: Gather the data and extract out to a .dat file
Via TCPPing
shell> tcpping -x 600 www.pingpros.com 80 | awk 'NF > 1 { print $(NF - 1); }' | grep -E "[0-9]" > pingprostcpdata.dat
Via hping3
shell> hping3 -S -p 80 -c 600 www.pingpros.com | awk 'NF > 1 { print $(NF - 1); }' | grep -E "[0-9]" | sed -e 's/rtt=//g' > pingproshpingdata.dat
Via ICMP
shell> ping -c 600 www.google.com | awk -F [=\ ] 'NF > 1 { print $(NF - 1); }' | grep -E "[0-9]" > pingprosicmpdata.dat
If you can cat the files you’ll notice the data is the same. It’s up to you which program you want to run on! They both work and provide the same data. My preference is tcpping but if you are an hping type of person go ahead and play around with the script as you like.
TCPPING Results:
23.505
25.563
22.789
23.976
26.712
21.986
23.228
22.705
22.944
22.816
HPING Results
23.4
25.1
23.1
26.1
22.2
26.6
26.0
23.1
26.9
23.8
With GNUPlot installed type in:
shell> gnuplot
In the GNUPlot terminal add:
set terminal pngcairo size 1024,768 enhanced font 'Verdana,10'
set output "vrrp-vs-nonvrrp.png"
set ylabel "Time in miliseconds"
set xlabel "Number of Pings"
set autoscale
set style line 1 lc rgb ‘#0025ad’ lt 1 lw 1.5
set style line 2 lc rgb ‘#09ad00’ lt 1 lw 1.5
plot “pingprostcpping.dat” title “some title” w lp, \
“pingproshping.dat” title “some other title” w lp
You can also awk you files to find the average:
awk ' FNR==1 {average1 += $1} END {print average1;}' pingprostcpdata.dat
0.334
awk -v N=1 '{ sum += $N } END { if (NR > 0) print sum / NR }' pingprostcpdata.dat
You can also make bar graphs to compare the data
set terminal pngcairo enhanced font 'Verdana,10'
set output "vrrp-vs-nonvrrp-bargraph.png"
set style fill solid
set autoscale
plot [0.5:][0:10] ‘pingproshping.dat’ with histogram, ‘sw1-core-vlan134.dat’ with histogram
1 Comment
Thank you very much.