Fix Slow Broadband When Uploading Photos / Videos

Learn why you don’t need ever increasing broadband speeds to get a solid connection for streaming or browsing. It’s probably your ISPs router that’s the problem!

fix slow downloads and game lag
Reading Time: 15 minutes

Here’s the scenario. You’ve been out for the day, you’ve took a bunch of photos on your phone and a couple of decent length videos. You walk in the door and your kids are on the PlayStation (or XBox, or whatever). And they start yelling at you because the game is lagging.

Or the same scenario but they yell at you because YouTube/Netflix/Amazon Prime (whichever!) starts buffering and stuttering.

Everyone blames the download speed. You’ve only got 24Megabits so it must be that right?

What if I told you it wasn’t your download speed?

Sort Your UPLOAD speed out

Great, so it’s my crappy upload speed that’s the problem then is it? Well that sucks because I can’t do much about that except install a fibre connection.

Hold it right there – that’s precisely what your Internet Provider wants you to do. And it won’t solve your problem, but now you’re paying more per month. It might mean the lag doesn’t last quite as long because your photos/videos will upload quicker and so the problem goes away sooner.

But there’s absolutely NO NEED for you to have to experience this lag AT ALL. Later in this post I’ll go into how you can fix it with a pretty straight forward router upgrade. Be aware though, it’s not a free upgrade – but it doesn’t have any ongoing costs once you’ve done it.

Internet Lag On EE / Vodafone / Sky Broadband

All the main Internet providers have the same issue. Virgin Media does too despite being fibre optic to the door in many cases. It’s because it’s not upload SPEED that’s the problem, it’s upload CONGESTION that’s the problem.

In technical terms it’s called Buffer Bloat and it occurs because your phone (or computer) is usually connected to the WiFi at a speed of at least 54Mbps (megabits per second). Your internet upload speed is likely to be at most 10Mbps (megabits per second). That’s at most. Many places will be lucky to see 3Mbps. And 54Mbps is considerably more than 3Mbps.

So, your phone throws data at the internet far far faster than your router can deliver it. So the internet data (also know as traffic) backs up. You can probably picture a more tangible real life example… Let’s imagine you’re happily travelling along a nice motorway at 70mph. You see a sign up ahead that indicates you’re approaching roadworks and that you’re going from 3 lanes down to 1, and with a maximum speed of 40mph.

This is how your photos see the internet upload speed.

When there’s not much traffic it doesn’t really matter. Sure, the traffic slows down to 40mph (well, somewhere close to that hopefully) from 70mph. But it continues flowing so long as there’s less traffic arriving at the ‘pinch-point’ than can merge in turn and go through. But when there’s more traffic arriving than can get through the only 1 remaining lane at 40mph then cars have to wait. And as cars have to wait, the whole thing slows down far more than the simple speed reduction.

This is known as congestion collapse. It happens when there’s too much traffic and the buffers on your router cannot empty out as quick as the traffic is arriving. And this happens every time you try to upload a few decent photos or videos.

Why Does A Large Upload Break My DOWNLOADS Though?

A very good question. The congestion is on the outbound side of your internet connection. It’s what we call ‘uploading’. The idea is that the cloud (ie, the internet) is high in the sky and you’re safe in your house on the ground. You upload to the clouds and download from the cloud.

But you’ve created congestion on the upload side of things. Your download is hardly being used – you’ve got a huge download speed and quite frankly you pay a bloody fortune for it, so why isn’t it working properly tonight?!?

The problem lies in the way the Internet protocols work – specifically TCP or Transmission Control Protocol. I’m not going into great technical detail because I only know the basics myself. But TCP is a ‘guaranteed delivery’ mechanism. TCP achieves this guaranteed delivery by expecting that after a certain amount of data has been sent, the sender expects an acknowledgement from the receiver. A ‘yep, got that’ kind of thing.

So your download speed is great, the sender sends a bunch of data (game positioning, Netflix videostream data etc) and then expects an acknowledgement. Your device sent an acknowledgement, seconds ago in fact. But it’s stuck in the congestion of your upload because your phone has sent masses of data that the router is buffering and can’t get rid of quick enough. It, like you when you ring your internet provider to complain, is stuck in a queue – on hold.

So I DO Need Faster Upload Speed?!?

Absolutely not. You need a router that will tell your device that’s flooding the upload link to just slow down a bit please.

Think of it like the traffic report. The M25 has large tailbacks and the radio lets everyone know on a 20 minute bulletin. This has the effect (sometimes) of people avoiding that route, or simply staying at home. They’ll go out later when it’s cleared up.

Your Internet router needs to tell your iPhone to back off and send data at 3Mbps instead of 54Mbps. If the source of the problem (your videos uploading) would just go at the speed the link can take, there’s no need for buffering, there’s no tailbacks because the router can clear the traffic as soon as it arrives.

And most critically, the acknowledgements that Netflix or the kids games are expecting can get out almost instantly too because they’re not stuck in a buffer since there’s no buffer needed. Everyone is entering the system in an orderly queue (how very British) and leaving in the order they arrived. Instead of a whole crowd pushing in. Very civilised. And how things should be.

EE, Vodafone, Sky, Virgin etc. Do Not Want You To Know This

They want you to take on a bigger broadband package. So they provide a router that simply doesn’t do any traffic control. They argue bigger buffers are the answer (they’re wrong – it just means the tailback on the carriageway is longer). They argue there’s nothing that can be done. They’ve argued this for years.

I’m here to tell you that something can be done because I’ve done it and the results are amazing. But you WILL need to replace the crappy WiFi router that EE or Vodafone or Sky provide you with. To be fair, the WiFi part of most of these routers is quite good these days. But it’s let down by having no proper traffic control.

Replace Your Internet Service Provider Router

You will need to get a little bit technical here. I’ll hold your hand as best I can though. If you’re on Virgin Media Broadband with fibre to your house, check this article about the best router for virgin media to get some idea of how it’s done on them. By the way, I’m still using that router today, and it’s been flawless with Openwrt running on it (which I’ll go into detail below).

If you’re using a high speed copper connection (ie, via your telephone line) you’ve a couple of choices. You can buy an all-in-one router from Netgear, D-Link or TP-Link and use the stock firmware – but in most cases the stock firmware won’t do what we want either. We need Openwrt – but Openwrt doesn’t deal with ADSL connections particularly well. There’s a couple of routers that are compatible with Openwrt but they’re hard to find.

The First Bit – A New BT Openreach Modem

Skip this bit if you’re on Virgin Media – instead read about the best router for Virgin Media to learn how to improve their connection. Then come back here if you want to know how to setup OpenWRT. If you’re on Virgin Media fibre optic you do not need to read this section as you already have a modem that can be used.

If you don’t have a router with built in ADSL, which the one I recommend doesn’t, then the BT Openreach Modem will be used to connect to the phone line. This modem will work with connections up to at least 100Mbps and possibly beyond which is probably as fast as most households will have. It may go faster, but I’m pretty certain I read somewhere that it will go at least up to 100Mbps. It’s in use on our EE Broadband at 40Mbps without any issues whatsoever.

BT Openreach VDSL2 / FTTC modem
BT Openreach Modem

The link in the previous paragraph will take you to the exact model on Amazon, it should look like the image above, or similar. There are second hand options available for a fraction of the price of a new one, and the one I got was a second hand one. Of course, with Amazon you can guarantee that if it’s not working when it arrives you can return it. You may find they’re even cheaper on eBay but there’s a risk associated with that of course. It’s up to you though 🙂

The BT Openreach Modem linked is a simple plug and play affair with no configuration needed and no configuration available. The only thing you will lose that you may not be happy with is the ability to see the synchronization speed. But it’s a small price to pay in the grand scheme of things.

The Second Bit – A New WiFi Router

The modem that Sky, EE, Vodafone et al provide is usually poor at regulating these upload problems. So we’re going to replace that with one that we can flash OpenWRT onto (because you won’t be able to do that onto your ISP’s router, they’re locked down).

The router I personally use, and have been using since the very beginning of January is the Netgear R6260 AC1600 WiFi router. When I first bought it I installed a ‘snapshot’ version of OpenWRT that I wouldn’t recommend to people unless you know what you’re doing. But the latest 21.02 version supports the R6260 properly and out of the box and is easy to install and configure.

The R6260 is available on Amazon and eBay, although I recommend Amazon because if you don’t get on with it, you can return it pretty easily. If you buy on eBay you may find it cheaper, but if you can’t get on with it you’ll need to sell it as a used item and you’ll potentially lose money.

I’ve rebooted the router twice since January – both times because I wanted to add something new to the software and had to reboot afterwards. It hasn’t skipped a beat except for that – and I run a LOT of extra things on it, including linking 3 LANs together in separate locations ( 2 in the UK and 1 in Germany ). This router, with OpenWRT on it, can give you enterprise level service, for a fraction of the cost.

The Third Bit – Install OpenWRT on the Netgear R6260

Now, I’m not going to lie, this is going to get technical. I’ll do my best to make it step by step for you. And I’ll link to the specific places on OpenWRT’s website where appropriate. I’m also going to assume that you have not unplugged your existing ISP router, because you’ll need an internet connection still.

You’ll need an ethernet cable and a computer with an ethernet port. You can potentially get away with doing it over the wireless but it’s not recommended because things can go wrong. The cable is the best way. If you’re using a laptop and don’t have an ethernet port you can pick up a USB3 ethernet adaptor fairly cheaply.

Visit OpenWRT’s website to download the firmware for the R6260. It’s available through the firmware selector. Choose the latest release that isn’t the SNAPSHOT release ( the rc releases are fine ). Download the FACTORY release onto your computer. This image allows you to upgrade to OpenWRT straight from the Netgear web interface. Easy huh?

Plugin the Netgear R6260 to the power, and connect the Ethernet cable (probably yellow) to your laptop ethernet cable or USB3 adaptor mentioned above. Plug the yellow ethernet cable into one of the yellow sockets on the back of the R6260. Switch on the R6260 with the power button on the back. You’ll need to wait a couple of minutes for it to boot up. Once it has, you should be able to connect to it using your web browser on http://192.168.1.1 and login with the default username of admin and default password of password – yes Netgear are that imaginative.

If the browser doesn’t connect to http://192.168.0.1 your R6260 might have been setup differently at the factory to mine. Try https://routerlogin.net instead. At the time of writing the manuals can be downloaded and viewed from https://www.downloads.netgear.com/files/GDC/R6260/R6260_UM_EN.pdf

We then want to update the router’s firmware – a more detailed guide can be found at https://www.downloads.netgear.com/files/GDC/R6260/R6260_UM_EN.pdf#page=135&zoom=100,86,86 but basically we go to ADVANCED > Administration > Firmware Update and then click the Browse button instead of having the router do an automatic update. Choose the OpenWRT FACTORY image you downloaded earlier and then click UPLOAD.

DO NOT TURN OFF YOUR ROUTER OR PC DURING THE UPDATE. YOU’LL BREAK THE ROUTER.

What To Do If The Update Breaks My Router

You turned it off mid-way didn’t you. You probably didn’t mean to. The dog pulled the cord. The power went out. Or it just broke by itself (it happens). And when you power it back on there’s nothing even after waiting 5 minutes.

DON’T PANIC! Seriously – panicking only makes shit worse… This is recoverable – I’ve done it. Head over to https://github.com/jclehner/nmrpflash and follow the instructions. Again, it’s not particularly easy and requires you to think a bit technically but it’s doable if you follow instructions. The page there doesn’t specifically mention the R6260 but I can confirm (because I’ve done it) that it does work for this model too.

Configuring OpenWRT

The OpenWRT installation procedure may not tell you when it’s finished. It might just silently reboot and upgrade without you knowing anything except that your connection keeps going on and off to the Windows Ethernet port. Give it a good 5 minutes to complete its task, and then try to visit http://192.168.1.1 – which is the default address for a router using OpenWRT.

The default login is root and there is no password initially so leave that box blank. Luci (the name of the OpenWRT web interface) will complain when you first login and suggest you set one immediately. It’s a good idea, so do it. You can do that under System -> Administration

Set up the WAN Interface (DSL Connections Via BT OpenReach Modem)

We then need to set up our interfaces. I’d start with the WAN interface which is the interface which will connect your router to your internet service provider via the BT Openreach modem. This differs for each internet provider and you may need to ring them or check their forums to find out your username and password for your broadband service. I’ll list how to find out the information for as many providers as I can at the end of this post (at the moment I can only speak for EE as that’s who I use at one of my locations).

Choose Network -> Interface and select the EDIT button next to the WAN interface. Then follow the following steps to configure the WAN interface (the interface which connects you to the world – via the BT Openreach modem).

  • Choose PPPoE for the protocol
  • Choose eth0.2 for the device
  • Make sure there’s a tick in the Bring Up On Boot box
  • Put your broadband username in the PAP/CHAP Username box
  • Put your broadband password in the PAP/CHAP Password box
  • Leave the other two boxes blank

Then click the SAVE button and then click the SAVE & APPLY button.

Set Up The WAN Interface (Routers with WAN Port)

If your ISP supplied router is a fibre router, such as the Virgin Media Smart Hub which connects to a coaxial cable that enters your premises, rather than a phone line copper DSL connection, then you’ll need to put your router into Bridge mode. Then you configure the WAN Interface via the same routine as above but instead of selecting PPPoE you can choose DHCP Client instead. Virgin users can read more about this in this post instead (but come back here to learn about the SQM settings you’ll need!)

Plugin The Gear To The Wall

Now comes the crunch time. You need to unplug your existing router and plugin the Openreach modem, and the router into your Openreach modem. The Openreach modem will use the same small DSL cable as your existing router. Plug the end of that cable into the Openreach DSL port. Plug an ethernet cable into the WAN port on the Netgear R6260 and the other end into the LAN1 port on the Openreach modem.

Power on the Openreach modem and let it boot up. It shouldn’t take long. Power on the Netgear R6260. If all goes well you should see your PPPoE interface in the web screen show an address next to the IPv4 line.

If it doesn’t, you’ll need to double check your PPP username and password (you may be able to find those details in your existing ISP provided router, or in the original order form from them, or via their tech support team). Also double check the ADSL cable is plugged in to the Openreach modem correctly and then double check that the ethernet cable from LAN1 goes to the WAN port on the Netgear R6260.

If all is well, and you’re still connected from your laptop / PC / Mac to the router via a cable, you should be able to browse the web and do everything you could originally. Yippee!

Configure Wireless

Next you’ll need to configure your wireless settings, or you can just use the default settings that OpenWRT came with. If you want to reconfigure this I’m going to refer you to the OpenWRT WiFi configuration page. That page will detail how to adjust your WiFi settings better than I can and will remain up to date.

Download And Install SQM

Finally we get to the piece you’ve all been waiting for. This, this is the bit that does the magic for regulating the speed of your uploads. I’m not going to go into great detail about how any of this works, for a demo by one of the blokes that came up with the solution to the problem (Dave Taht) you can have a look at this YouTube video. It’s relatively long and technical but in the middle you’ll see him demonstrate using people, how the principle works.

Dave Taht Demonstrates Buffer Bloat

To fix the buffer bloat problem we need to install some packages into the OpenWRT router. These are called ‘SQM’ packages, or Smart Queue Management.

To do this, login to the routers home page again, if you logged out. By default this is at http://192.168.1.1 in case you’ve forgotten. Navigate to System > Software. Click the button marked Update Lists then when it’s updated, type SQM into the filter field. Look for the software package named luci-app-sqm and hit INSTALL. This will install all the software you need to use Smart Queue Management on your router. The difference between your internet connection when you are uploading big files will be like the difference between night and day once we’re finished.

Once it’s installed, click the OpenWRT logo to reload the main page again. Then navigate to Network -> SQM QoS.

Put a tick in the box marked Enable This SQM Instance. Choose pppoe-wan for the interface. Change the Download speed to be about 5 – 10% less than your broadband line speed is. So, if you have a 40Megabit download speed line from EE – put around 37500 in this box. In the upload speed box, do the same but substitute your upload speed. So if you have around 4Megabit upload speed, put around 3750 here.

You can adjust those numbers by trial and error later (I’ll show you how to measure if it’s working or not) – they’re just a rough estimate at the moment. You’ll have to replace my figures with ones that are more suitable for your particular connection of course.

Finally click the Queue Discipline tab. Don’t worry, you don’t need to know anything about why or what we’re doing on this screen. Just make sure cake is selected for the top box, and piece_of_cake.qos is selected for the one below marked Queue Setup Script.

Click Save And Apply.

Visit http://www.dslreports.com/speedtest in your favourite web browser and follow the prompts to test your speed. You’ll probably want to use the DSL test, or possibly cable. To the left of the screen you’ll see a little box marked ‘Bufferbloat’ – under the blue and red boxes. The blue box will display your download speed, the red upload.

Watch while the test is running. You’ll see the bufferbloat gauge fluctuate around. The figure is the number of milliseconds each packet is delayed due to your internet being saturated. You shouldn’t see it go above about 40ms with the SQM scripts running. The upload bufferbloat should hover around the 2-3ms and generally not go above 10-20ms.

If you disable the SQM instance in OpenWRT and run the test again you’ll get an idea of what your bufferbloat was like before you made all these changes.

Now, if you’re happy with the throughput and numbers you can consider yourself finished. If you think you can squeeze some more speed or better performance you can adjust your download and upload speed in the SQM management screen. Reducing the speed will cap your internet connection to less than that speed, but will provide a better managed line with less bufferbloat. The sweet spot is to increase the speed until bufferbloat starts to go up, then back it off a couple of hundred.

Finding Your Broadband Password

EE Users

EE don’t advertise how to find your username and password for your broadband connection and talking to them on the phone often gets you nowhere. But you can find out by logging in to your smarthub (the details for that should be on a little plastic tab inserted into the back of the original router. This also has instructions for how to login to the web admin interface.

This post on the EE Support forum will give you the information you need to find out your broadband username and password. You don’t need to worry about the section about What are my advanced internet settings because OpenWRT will take care of all that for you the way we’ve set it up.

Equipment I Used For This

The BT Openreach Modem is needed if you have a DSL line. If you have fibre such as Virgin Media’s fibre, you don’t need one of these. If your router connects to the wall with a small plug marked DSL on the back of the router, you’ll need one of these Openreach modems.

The Netgear R6260 is a FAR better router than your internet providers router. It does not have any DSL capability though – hence the need for the Openreach modem listed above if you’re on DSL. If your ISP original router only has a WAN port with a connector that looks like an ethernet cable you probably do not need the Openreach modem.

OpenWRT – open source firmware for multiple different routers. This is what ultimately does the magic, enabling you to install more software and giving you far greater control of your router than the stock ISP provided router.

Conclusion

If you’re struggling with crappy internet connection speeds, particularly when somebody walks in who’s been out taking photos and videos all day, then you’re suffering with bufferbloat. Internet providers deny the problem exists, but it most certainly does and I’ve fixed more unstable online gaming connections than I care to remember by applying the information in this post.

It’s not easy to setup, and needs a few steps, as highlighted here. But it is definitely worth it. For less than £100 you’ll have control of your own router (which you don’t get with the stock broadband provider’s router). That might sound a lot, but considering you almost certainly do NOT need to buy a faster broadband package to cope with your household needs (unless you are on a proper slow < 10mbits line) then the monthly savings – and sanity savings could be worth it.

I think this post covers everything off for doing all this – but if I’ve missed a step or you want any assistance, please leave a comment and I’ll do my best to assist. Thanks for reading!

Featured Image by mohamed Hassan from Pixabay