Showing posts with label iPerf. Show all posts
Showing posts with label iPerf. Show all posts

Saturday, 24 August 2013

The Missing Feature in WiFi Solutions: Performance Testing

In this article I suggest a nice feature that would provide a useful WiFi vendor differentiation and a valuable tool for administrators of WiFi networks.

As a WiFi network value added re-seller (VAR) I visit a lot of customers, interacting mainly with the poor, down-trodden folks who comprise the IT department of an organisation. They are generally responsible for fending off the daily barrage of complaints about "the network".

In general, they are mainly concerned about two factors when it comes to their wireless network: coverage and performance. There are many other factors that they should probably be concerned about, but these are the two factors that tend to keep users off their back if they are both taken care of.

Verifying WiFi coverage for an average IT administrator is generally very simple. They simply do a Google search download a tool such as Metageek's inSSIDer and visit the area where users are complaining. Even if they don't manage to use dedicated tool such as inSSIDer, they will generally check the 'number of bars' displayed on a wireless client to get an idea of signal strength in an area. They will very quickly be able to determine if they have a coverage issue by verifying signal levels around a particular area.(Note: this isn't the only factor to consider, there may be other issues such as non-WiFi interference from security cameras, microwave ovens etc., but that's a discussion for another day). 

However, once coverage has been verified, then comes the more challenging issue of testing performance over the wireless network. The number one way I tend to see end users testing their WiFi network (especially on tablet or smartphone devices) is to fire up an app such as and verify the throughput to the Internet. Whilst this approach is easy to get a quick assessment of how throughout might look, there are a lot of holes in this approach, not least because it relies on both the bandwidth and current utilization of your Internet pipe. In many organizations, the results vary based on time of day (i.e. number of users on the Internet). It also provides no differentiation between the various components that the test data may traverse (i.e. wireless, wired and Internet).

There are several options that could be deployed by IT administrators, such as setting up an iPerf server somewhere on the network. They could then grab a copy of iPerf off the iTunes store or the Play store (Android) to do some throughput testing. However, I generally never see anyone using this approach, (I'm guessing as most folks don't have the time, knowledge or inclination to do it...).

For me, the answer is simple: WiFi vendors should build performance testing features in to their products.

Here are some high-level thoughts on how this might look: 
  • A server process along the lines of iPerf built in to each AP or controller
  • A reserved IP address (nominated at install-time) on each SSID (or even a hidden test SSID) for testing
  • A wireless-vendor created user app that could be downloaded from your favorite app store. This would allow IT admins to test the WiFi performance using various presets (e.g. voice/data etc.), taking away the complexity of the myriad of confusing options in tools like iPerf
Given the current processing power of the hardware of current WiFi solutions, how hard could this be!?!?

The benefits for IT admins of a feature of this type are enormous. It would certainly help to prove whether or not "its the wireless network", or whether the perhaps they need to look elsewhere. An approach like this would be a nice differentiator for a wireless vendor, as I'm not aware of anyone providing this kind of function integrated in to their solution (let me know if I'm wrong about this).

The marketing benefits of an app like this for a vendor are hopefully self-evident (brand awareness, targeted ads/messages). I suspect that the screen real-estate for WiFi testing tool vendors would be very appealing too - imagine the attraction of advertising to a user who is currently suffering a WiFi issue!

In addition, this type of functionality could be very useful to those of us perform wireless surveys,perhaps providing an easy method of  performing active surveys if an iPerf server was available as an integral function of WiFi infrastructure kit.

Well, that's my ten cents/pennies worth (depending on where you live). It would be nice to see a vendor implement something along these lines...anyone..? "Bueller, Bueller, Bueller....."

Update 25/08/13: Since posting this, I had some feedback on twitter from various folks (@revolutionwifi, @wifikiwi, @dszp) about some vendor products that have iPerf  (or similar test features).

I believe that Aerohive has iPerf available from the CLI on some of its products, Ruckus has the 'Zap' utility and Aruba has some form of client test utility. I don't get to use Ruckus or Aruba, but I'll be having a closer look at the Aerohive iPerf server.

Looking on the Apple app store, the Ruckcus 'Zapper' app looks very promising and is probably well worth checking out if you have a Ruckus network.

Despite these few items, the landscape for client testing across many vendors is still not exactly 'great' and these is a lot of work to do to enable end-users to easily evaluate their WiFi network performance.

Saturday, 2 March 2013

My Apple & Raspberry Pi(e)

Apologies for the appalling title of this blog post, but hey, you're here! :) In this post I talk about my purchase of a Raspberry Pi (by devious means) and how I set it up as an iPerf server.

I have recently been reading lots about the Raspberry Pi mini/micro/teeny-weeny ( I don't know what the correct term is...) single board computer, which has been created by the Raspberry Pi Foundation in a attempt to promote the teaching of basic computer science in schools (according to Wikipedia).

I've been itching to get my hands on one for a while and finally came up with a great excuse to buy one and have a play with it. They're incredibly cheap (around £30 for the basic computer board), so I concocted a flimsy excuse about buying one to teach my son about computing. After letting him play with it (and get bored) for about 30 minutes, I quickly slipped in to my home lab where I will no doubt continue to 'evaluate' it.

The Pi is supplied with a flavour of Debian Linux on an SD card. I've got some background in playing with Linux and have hacked around previously with MySQL, perl, PHP and done a bit of web-coding, so the prospect of having a small unit with all of these features (and a LOT more) is (in a sad, geeky kind of way) quite exciting.

I bought a Raspberry Pi kit from CPC here in the UK which included everything I needed, apart from a plastic box to mount the board in, (so I purchased one of those too).

Here is what I received, which is incredible value for money (around £70):

It includes:

  • Computer board
  • 4Gb SD module
  • 2.4GHz WiFi NIC
  • USB hub
  • Keyboard
  • Mouse
  • Misc PSUs
  • HDMI cable

To be honest though, the only components I'll probably use going forwards are :

And, here they are assembled, ready to put in to my home lab (er, I mean to evaluate for my son's studies...):

Once you've initially built it, you need to hook it up to a keyboard and screen and watch it start-up. You'll be thrown in to a start-up dialogue (which I didn't capture...sorry) where you can enable an SSH server (well, that's the only option I used). Once you've done that, you can disconnect all of the peripherals and  plug it in to an ethernet port to start playing with it remotely.

Once I'd connected the Pi to my home lab network via an ethernet switch port, I knew it would pick up a DHCP address, but I wasn't sure what its IP address would be. So, I fired up my copy of Fing on my iPad and ran a quick scan to find out the connected devices. From the screenshot below, you can see that it successfully identified my Pi:

 The first time you SSH in to the Pi, you can login with the default username/password of pi/raspberry. Obviously, you are advised to change this to something a little more secure using the 'passwd' command. 

Here is what the SSH session looked like:

My initial 'task' for the Pi was to see how easy it would be to set it up as an iPerf server. This would provide me a method of getting an iPerf server running quickly, without having to fire up my home-lab Windows server every time I want to run some iPerf tests. So, I fired up my laptop SSH client and connected to the Pi and executed the 'sudo apt-get install iperf' command from the CLI:

As my Pi was connected to my network and had access to the Internet, it downloaded and installed the iPerf server software, as shown above (it literally took seconds to install).

Now that I had iPerf installed, I just had to run it from the CLI and I had a fully functioning iPerf server!:

On my iPad, I fired up my iPerf client (iPerf2) and pointed it at my new Pi iPerf server:

I was really blown away by how easy it was!

I also had a look around for an SSH client for the iPad and came up with WebSSH. Together with the iPerf2 client, this allows me to SSH to the Pi, fire up my iPerf server and then run the iPerf client from my iPad - all from one platform. This could potentially be a very useful tool out on site for surveying and testing:

I also investigated adding a few other applications and managed to install an Apache web server and the PHP programming language with similar ease. Having a web server that can be quickly and easily fired up will certainly be very useful in my home lab setup for testing and could perhaps be useful for on-site testing when deploying new networks.

My advice: get'll have hours of fun playing with it :) There are many more applications available for the Pi, thanks to the rich pedigree of its Linux heritage.

It also has a fully functional desktop environment where you can run applications in a more user friendly environment, but I'll leave you to find out more about that yourself :)

EDIT: Looking at the spec of the Pi a little more closely, the on-board Ethernet port is only 10/100. I suppose this could be a limitation if you are looking for an iPerf server that can test up to some of the higher WiFi speeds now available. For the foreseeable future though, I suspect that this will be plenty if looking at single-stream mobile devices, even with the advent with of 11ac.