Using iperf on Android


I have been working with the networks analysis of Android devices for some time now. As many of you know, IPerf is a great utility to characterize the network bandwidth and packet loss on devices.

On Android too, there are quite a few tools that you could use to benchmark your network and your device. IPerf is certainly one of them. It was build by NLANR / DAST (I couldn’t trace back to this organizations website though) and is available for download here :

To give you a brief idea about how IPerf works, these are the major things to keep in mind.
  • IPerf needs a client and server setup. So, in the example that I am going to tell you I am setting up my laptop as the client and my android device as my server.
  • Data is sent from client to server!!
  • IPerf can only work over a single link. That means you have to get both your device under the same subnet and also ensure that there is at max 1 hop.
To ensure the last point, what I did was to setup my laptop as an access point. You could you iptables to do it using linux or connectify (http://www.connectify.me/) on windows machines.
Setup this network topology (very simple and straight forward) Laptop (192.168.238.1 acting as AP using connectify) and Android phone (192.168.238.101) connected to the AP.
Here I am using a laptop running windows (it is easier on a linux machine though) to demo how to test your network and end device bandwidth.
After you finish setting up:
  • Run IPerf app on your android device
    • Enter “-u -s” in the text box that appears saying “Iperf command line arguments”
    • Press the button on the left top corner which reads “OFF” and turns “ON” to a green one on touching it.
    • Now your Iperf server is running.
  • Run Cygwin terminal on your laptop.
    • Type “iperf -u -c 192.168.238.101 -b 10M” and press enter
    • That should enable you to start experimenting.
This is a great way to understand the network behavior and packet loss at your end devices too. For getting your hands really dirty, you should root the device and then try out busybox on android.
Some very good resources for understanding IPerf :
Cheers and enjoy experimenting!!
Advertisements

3 responses to “Using iperf on Android

  1. > That means you have to get both your device under the same subnet and also ensure that there is at max 1 hop.
    Neither of these statements are true. As long as any intervening firewalls are properly configured, iperf2 behaves just like every other unicast TCP or UDP server or client software. I’ve never used iperf3, but I cannot imagine that anything substantial changed in that regard.

  2. Thanks for sharing.
    In your case, you used your android phone as server, laptop as client.
    How if I used two android phones both as server and client?
    Is the setup the same?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s