Working (And Playing) From Home!

So, with very little warning,  just about the whole world was sent home and told not to meet up with each other, unless they were directly involved in a vital industry (healthcare, emergency services, the food chain, energy…).

For some this has meant huge hardship: restaurant workers, shop workers and more [I can hardly do the list justice] made redundant or receiving fractions of their normal wages.  The self employed, now without clients.  All still having to pay their bills, though rent, mortgage and utilities may be deferred.

This leads me on to the main topic: The “lucky”, including me.  I can work from home at about 100% of my normal capacity, in fact with socialising off the agenda (except for my immediate family) I’m often at well over 100% of my previous capacity.  

At iTrinegy (due to the nature of our business: IT, Software, Application Performance in Networks), I could always work from home and for several of my colleagues that was in fact the norm.  I can do this because for a large part of the day my time is spent at my computer (mail, video conferencing with colleagues, partners and customers, chat, creating documents, reviewing software…), using my phones – mobile or desk VoiP system.

So my setup at home is very little different to my setup at work:

  • PC (or Laptop) with two screens 
    • The Second screen is important. It might seem a luxury but it aids productivity like nobody’s business.  For one if I need to share my screen in a demo or similar, I can share the second one which does not have email popups which are company private
  • A desk phone voip handset
    • You don’t need this but if your colleagues are used to calling you using the internal system, and remember your extension, then they can just continue doing the same.  Mine rings on the same extension number as my desk phone, some of my colleagues took their desk phones home and they worked without hassle – that’s the great thing about VoIP
    • But if you can’t have a handset you can have a virtual desk phone on your computer or mobile using software like Zoiper, and again your colleagues can call you on your regular extension number
  • My trusty smartphone
    • Lots of people call me on this anyway and I found that when the computer network is not so good (more on that later) I can use it for the audio side video conferences
  • Hands free audio
    • To make life easy and talk with people while typing you either need a separate room with good mic and speaker or a headset with built in mic

So if you’re new to working at home and in an industry where you can still work, like me you’ll want some or all of that stuff.  In my case it was already here.

On the software side, like many I use Microsoft Office, Bits of Google’s G Suite which includes gmail, and a VPN to work, where I use many tools. For video conferencing and online meetings I often use Zoom, which has now made it into the top 10 downloads.

Does that mean that it’s a breeze working from home (and I’m not talking about the sociability aspects)?  No.

The big problem is that my home network which used to be pretty good (cable, 200Mbps down/20Mbps up) is not performing that well now.  I chatted (at a good social distance) to my neighbor, also on the same service, and they said they noticed that the network was slow too, so I ruled out my families activities (including two teenage boys streaming a lot of youtube, some online games etc).

So what do you do?  Speedtest.net, right?  Well, that is certainly what has been recommended by my network provider.  Speedtest.net is however pretty misleading; it generally reports that we’re going fine, sometimes even the 200/20Mbps promised by my ISP, but generally at its worst 50/7Mbps, which by the standards of many broadbands is still excellent. 

Speedtest (and the like) has two problems though:

  1. It doesn’t much take into account latency (network delay) and data loss, because the way speedtest works is to set up multiple data transfer sessions to get over the fact that these two important factors are speed limiting.  This is because, after all, speedtest.net was primarily designed to determine whether your network provider was delivering the promised bandwidth
  2. I also feel very guilty when using speedtest.net because for the time it is testing it absolutely hammers the network, making my network neighbors (and others) network experience worse.  You should also feel guilty about using it too, it makes for a “bad neighbor”.

Let’s examine those two issues (Latency and Loss).  

Most of the tools I use, with the exception of my voice (VoIP) phone and some video conferencing tools use a network transport called TCP (I’m sorry to get technical) because it makes sure data transmitted will absolutely arrive at the destination.  It does this by acknowledging receipt of data transmitted and re-transmitting as necessary.  

So if you’re accessing Web sites, accessing Microsoft office online, using G Suite/Gmail, salesforce.com, Youtube, and socially downloading Amazon Prime, Netflix, Hulu, iPlayer and more (including on your smart TV’s), and socially messaging with whatsapp, facebook, snapchat, instagram, tiktok etc. you’re using ultimately using TCP.

The problem is that (without going into much technical detail) TCP slows down a lot if there is network delay and data loss and so to find out what your internet supplier actually provides you speedtest.com uses many tcp sessions simultaneously to figure out your bandwidth.  This is fine for its purpose, but all the applications and apps I mentioned typically don’t do that (video services aside).  So speedtest.net says you’ve got a good speed but you find that as you type into gmail or use your office vpn that it stutters and may even completely disconnect.

The next issue is that products that try to get around the TCP limitations, like “speedtest”  itself does, and also certain file uploading and downloading services do, is that they’re “bad neighbors”.  The whole point of TCP slowing down when data was delayed or lost is on the assumption that the network is busy and that by slowing down, together with all the other TCP connections (from you and other people) also slowing down, will balance the network better for everyone.

So taking it to its logical conclusion the network is slow, so you and all the other people who think it is slow start using speedtest to find out “How Slow” and of course now it does get really slow (due to all the speedtest-ing!).

So a better measure of your real-world network performance may be to ping (or better still traceroute). They do send out traffic but only a small amount, so even if everyone did it it wouldn’t be too much overhead.  In my case, even though speedtest said I was OK, ping to google.com was surprisingly high and lossy, compared to normal.

Here’s what normal looks like:

So I did a traceroute (tracert on Windows) and found out that the high part of the delay was to the second “hop” (the path to another computer in the network or internet typically involves going through 1 or more routers, these are called hops.  I have 9 hops to get to google.com (you will have more or less).  The first hop (192.168.212.1 for me) is usually your home router.

As you can see, traceroute gives you the time to each hop, but interpreting it is complex as some routers don’t identify themselves, some put responding to this kind of ping at a low priority (and so the time seems high) and the times are cumulative.  This means that by the time of the final hop it includes the times to go through all the other routers  (and back). 

The tracert above was quite lucky, in that no packets were dropped (except to hop 4, which never replies even when the network is fine.

Way better than traceroute is pingplotter (downloadable, with some versions free) as it does continuous route traces and plots them graphically so you can look at the historical picture and therefore see what your network looks like when it is good (typically about 4am).

Here’s the screen from pingplotter at the time of the poor network performance:

The top part show a continuous route trace graphically and the bottom part plots the delay (latency and loss) to the final destination (www.google.co.uk – which is identical to www.google.com for me)

From that (and even using tracert, though I used pingplotter for this analysis) I can make some good educated guesses

  • I don’t have a wifi problem – the traceroute timings to my router (first) hop are typically excellent at 2-3ms (btw if I was wired I would expect <=1ms) with 0% loss.  I say this because the first thing that your ISP will have you do, if you have any kind of problem, is to check your wifi
  • The second hop, on the other hand, is terrible, at 10-127ms (and considerable loss 6.1%), under normal conditions you can go all the way to Australia and back in 300ms). 
  • In fact the total time to the final hop (google.com) is not much more than the first hop.  So the chances are that that is where my problem lies.

So what’s going on?  Well the device (possibly/probably a router) that appears to be giving me problems is somewhere between my home router and Luton (a guess from the reverse DNS translation on hop 3 – about 12 miles away).  There are suggestions from googling (other search engines are also available!) that this might be a box in a cabinet “at the end of the road”.  I’m not sure, but it definitely seems like it is overloaded and/or misconfigured..

To find out more I asked a friend who lives about ½ mile from me and uses the same cable broadband supplier.  She says she’s not having any network problems. So I asked her to download pingplotter and use the same target – google.co.uk.

[NOTE – this is not exactly the same time of day as I did it, but still a very busy time during work from home]

Notice immediately that she is not getting a high second hop time, and also no loss, and her times to google itself are pretty good.  Also notice that the ip address of her second hop is not available and that her third hop has a different IP address (and name) to mine.  So she has a different “box at the end of the road” and our network connection probably only converges the cable company’s Luton facility.

So what can I do?  Report an overloaded, a misconfigured or broken device (I don’t know exactly which) to the cable company.  But no one is managing their call centres and their web based network test tool crashes (yes really) after completing 30% of it’s tests.  Also really what I need is for them to connect me to 3rd line support but that doesn’t seem to be an option either.

So I’m going to have to live with it, by:

  1. Changing my hours of work a bit to suit the network – I can do that at the moment
  2. Using my mobile phone with zoom and google hangouts meetings, reducing my load on the network and not having my audio break up
  3. Use my desk phone (VoIP) less and my mobile more
  4. Regretfully tell people on video conferences that I won’t be turning on my camera, to minimise my bandwidth
  5. Asking everyone else in the house (and we’re all home currently) to keep streaming down or stream quality down to minimize bandwidth
  6. Buy a 4G Router (with additional internal and external Antella options – just in case of poor reception, offering Ethernet and WiFi connection options,  and SIM (non contract or monthly contract)  and use this for my work internet connection (PC, VoIP phone etc).  I can’t use this for all internet in our house as the huge amount of streaming done by my family would eat my new SIMs mobile data allowance  in no time at all.

Option 6 currently works well because with more people at home using Broadband/WiFI the Mobile providers are generally less heavily loaded.  Here’s the ping plotter screenshot:

[My PC’s network experience with a 4G Router (using 4G with 3 out of 5 bars of signal) – You can see some big latency spikes but generally consistent – <50ms to google.com – No Loss! Ignore the 100% hop losses in ping plotter – a legacy of starting it on the broadband, whose routers are no longer in my path to Google]

 In the end I started with options 1-4, was too embarrassed to try 5 and finally settled on 6 and am pretty happy.  I check my mobile data allowance daily, and stop my PC doing unnecessary updates using my 4G service by plugging it back in to the main broadband overnight.

But how could companies accommodate for these conditions to ensure the highest level of customer satisfaction possible? How can products be optimised for these unforeseen events? How could companies prepare themselves for the erratic, degraded connections their products may be subjected to, either in their ordinary, day-to-day operational environments, or when an unpredicted event places greater strain on the networks they depend on? 

Look out for part two of our remote-working blog series, where I’ll be offering an analysis of iTrinegy’s Network Emulator ranges, and explaining how they can easily create any unexpected network conditions that your product may experience, to ensure that it can work in any place, any time, over any network