My current aim is to get Iperf running on an Android phone so that I can collect “accurate” network data to compare to the network data produced by Signpost Demo Application that I’m currently trying to test.
The problem is that I can’t get the Iperf for Android application to run on any of the available android phones. I have also tried SSHing into the phone and running Iperf, this also did not work.
I need to get Iperf working on android to collect the data for comparison to data produced by the demo code. The back up plan will be to write my own application to collect the required network data, but I would like to have Iperf working so that I can test my own application.
If anyone has suggestions of tools to collect network data like bandwidth, latency, goodput and jitter, that work on linux and android using a client server architecture, then comment below.
So, I’ve got my hands on yet another android phone, I think this is phone number 6 or something like that. It is a HTC Magic, that is currently not rooted. I boot it up, get it going and download the Iperf for Android application and …
…. it still will not work
So, I do some research and I come across another application that claims to also act as an Iperf cleint, this one is called Aperf. I install it on two different android phones, test and …
…. it still will not work
Repeating the tests, changing Wi-Fi networks and finally it works, The following results are from the Iperf server
[ ID] Interval Transfer Bandwidth
[ 4] local
[ 4] 0.0- 8.9 sec 30.0 KBytes 27.6 Kbits/sec
[ 5] local
[ 5] 0.0- 6.0 sec 47.0 KBytes 64.3 Kbits/sec
[ 4] local
[ 4] 0.0- 6.6 sec 132 KBytes 164 Kbits/sec
[ 5] local
[ 5] 0.0- 6.6 sec 400 KBytes 496 Kbits/sec
[ 4] local
[ 4] 0.0- 6.5 sec 103 KBytes 131 Kbits/sec
[ 5] local
[ 5] 0.0- 8.6 sec 697 KBytes 662 Kbits/sec
[ 4] local
[ 4] 0.0- 5.1 sec 59.0 KBytes 94.3 Kbits/sec
[ 5] local
[ 5] 0.0- 5.9 sec 386 KBytes 539 Kbits/sec
[ 4] local
[ 4] 0.0- 8.6 sec 35.0 KBytes 33.3 Kbits/sec
[ 5] local
[ 5] 0.0- 8.2 sec 332 KBytes 331 Kbits/sec
The information above dose not show the complete picture. This data was collected from the server, in each case the client has only transmitted data for 5 seconds, this means that the bandwidth values above as incorrect. To calculate the correct bandwidth values I need to take amount of data transferred and divide by 5 seconds.
The client dose not seem to output any data except that required to calculate bandwidth. Using UDP instead of TCP dose not seem to allow me to collect any more information.
Ironically the network statistics collected by the Signpost diagnosis android app are latency, goodput and jitter but the only network statistics that I am able to collect is bandwidth.
I do not know where to go forward from here, I need accurate network statistics between a android client and Linux server so I can test the code. I could write my own application to collect the data, but then I will have the same problem again as I need accurate network statistics to check my application is working correctly
Any suggestions ??