28 Mar
2011
You want confidence that your shiny new app is actually going to work over your WAN. If you're strapped for cash and plenty of time try this. A better solution comes later.
You need to know the smallest capacity bandwidth in the direction of the server to the client and the shortest round trip time for the end to end path between them. Ping is good enough for RTT but measuring bandwidth could be tricky. Failing all else you'll have to trust your telco contract (the better answer comes later). These will help you estimate the best possible performance that network path will support. Be warned - Best Possible Performance will never be achieved in reality.
How to (very) roughly estimate BPP for free? Run the application on a LAN. Download a free copy of wireshark and follow instructions to get a packet capture that contains an example transaction of your new app. Don't worry what else is captured, we'll filter that out next. From the 'Statistics' menu, select Conversation List > TCP.
You'll get a pop up screen showing all the conversations that have been captured (so make sure your not also browsing any web sites you wouldn't want your mum to see). Highlight the one you want by identifying the app server address and make a note of the number of packets and bytes transferred in the server-to-client direction.
Now you know these things. For the network path; bandwidth and minimum round trip time. For the application; how many bytes were transferred and how many packets it took to transfer them. Oh, and remember I said this would be a rough estimate.
Let's say bandwidth is 1M, minimum RTT is 100 milliseconds, the transferred volume is 500Kbytes and the number of packets is 400.
Ignoring overheads a 1M line can transfer 125Kbytes per second so 500Kbytes would take 4 seconds. But RTT is 100 msecs and it is encountered 400 times. This adds 40 seconds to the overall transaction time giving 44 seconds in all. Let's compare that with a LAN.
The transfer rate of a 100M LAN is 12.5Mbytes per second so the raw transfer is 100 x faster at 40 milliseconds. Let's assume LAN RTT is 100 microseconds. 400 round trips therefore adds 40 milliseconds extra delay. Total transaction time is 80 milliseconds.
Now picture yourself thinking "what if I try more bandwidth?". Here's why that doesn't work. Lets say you take your bandwidth 1M to 100M but cannot improve RTT. The raw data transfer reduces from 4 seconds to 40 milliseconds but we still have to add 400 round trips at 100 milliseconds - which is still 40 seconds. The 100M upgrade has just improved the performance from 44 seconds right down to 40.04 seconds!
Also remember that we've just estimated the BPP and that will never be achieved. There will always be other apps on the network consuming bandwidth leaving less for your new app. As bandwidth is consumed the RTT gets worse and you may have packet loss and other such nastiness on your network.
A better way to assess the likely performance of a new app is by
1) Using PathView Cloud to continuously monitor the network paths over which the application is to be run to get realistic values for available bandwidth (i.e the difference between total bandwidth and utilisation) and the RTT. This will also expose previously hidden network problems that will further erode performance.
2) Use those values to set up a WAN emulator, through which you operate the application on a LAN.
You will then directly experience application performance as if you were working from that branch. Testing in this way also allows you to evaluate possible fixes where the performance is unacceptable. Bandwidth and RTT parameters can be adjusted to discover what type of WAN technology is most suitable or WAN optimisation can be tested directly across the emulated WAN so you can see the degree to which performance can be improved. All in the comfort of your own office.
If you have a little bit of money and don't have all the time in the world we can do all this for you. Our Application Readiness service will deploy PathView to gather vital network stats, then bring WAN emulation to your site so that you can experience the branch's eye view of application performance. We can advise about different optimisation techniques that could improve performance and we can actually deploy optimisation in the emulated environment so before and after improvements can be experienced.
The Application Readiness testing is normally performed in a single day. We bring everything required to you. You just supply a workstation and an operator familiar with the application to be tested. Drop me a line if you're interested in understanding how your new app will work over the WAN before finding out the hard (and expensive) way.
Cheers, Cliff.