I’ve been using the same router for several years now. While an upgrade would be a good idea, I’ve not been very motivated to do so. The one I possess had not been causing any problem, and has all the functionality I need (not to mention I’m too cheap to buy one). I’m sure at some point I’ll be wanting to take advantage of higher bandwidth internet, but at that point I would want to tinker and build my own Linux-powered router. Mine has served its purpose for more than 5 years, handing things from personal computer traffic, hosting a Minecraft server, connecting cellphones and hand-held consoles, all without issue. Within the span of a week, I found three devices that did not play well on the network, and thus my troubles began.
I recently acquired a Microsoft Surface Pro 4 tablet as part of my employment, replacing a cheap Pentium desktop I had previously. The little beast works quite well (it’s refreshing to have a windows device with minimal bloatware pre-installed). Upon bringing it home and connecting it to my trusty router, I encountered strange behaviour. The device would connect to the network with no problem, and there certainly was an internet connection, but it was very spotty. Attempting to visit any web-page resulted in half-loaded disasters, and downloading files would cut out within seconds. This naturally lead me to the first thing to check:
1. Ping Test
Opening a command prompt (cmd), and running ping google.com let me check how poor the connection actually was. To my surprise, there was no packet loss. Even running it a second time as ping -t google.com, waiting a minute to accumulate a sufficient number of tests, then quitting out with Ctrl+c yielded the same result. This suggested the issue was not inherently a bad connection. Having seen a few different sort of network connection issues in the past, I was lead to a logical followup to attempt fixing the issue:
2. Update Network Drivers
This step can be, at times, one of the more frustrating for one simple reason: it’s difficult to acquire network drivers without the ability to download them. Thankfully I had a couple options here. I could either download them on a different computer and transfer it over via USB drive, or connect to the network while I’m at work (where there is no connection problem) and get it that way. Most of the time I’ve seen this fix network issues. Sadly, this was not the case in this instance.
At this point I was under the impression it was just one of “those weird issues”. I didn’t desperately need to use the tablet at home, and was tempted to leave it at that. Shortly after this, my room-mate discovered they had similar issues with their PlayStation and Xbox consoles. Both were, like the tablet, able to join the network, but were unable to download content or visit websites properly. So much for it being an isolated issue.
3. Reduce Sources of Interference
While I was not under the impression the problem was caused by the connection itself, it was still worth trying to improve the overall signal to the router. This meant doing things like moving the router, and changing the channel it’s using. There’s a great app called WiFi Analyzer which can graphically show which channels have the most signals from nearby networks. Sadly, this too did not solve anything. This lead me to my least favourite step:
4. Reset the Router
As I’ve previously stated, I had yet to have issues with the router across years of usage. I had also not made any recent adjustments to its settings (save for the ones to correct the problem), but I was running out of ideas. Depending on the make and model, there are essentially two types of resets for routers. The first, which I’ll call a soft reset, means doing a factory reset from within the configuration panel. In my case, I was able to backup and restore the settings through this menu. It should be noted that, before restoring settings, it’s worth testing the connection after the reset; it’s possible a pre-existing setting is causing the problem. This was not the case for me.
The second type of reset is what I’ll call a hard reset. This involves inserting a pin in the small reset hole on the router. Unlike the previous type, this one may restore older firmware to the system (again depending on the router). Sadly, this too did not fix my problem.
5. Adjust Firewall Settings
Some google-fu (duck-duck-fu in my case) lead me to explore the firewall settings of my router. It should be noted that these do greatly differ from one’s local anti-virus and firewall installed on the PC. Some routers have aggressive firewall policies (often when these are router/modem combos), which can block desired content. Mine on the other hand had few options, all of which I left to default. Something I cannot more strongly urge, should anyone follow in my footsteps: backup all firewall settings BEFORE changing them. This can either be by doing a software configuration backup, taking a screenshot of the page, or writing down all the settings. This is important for two reasons. First, you will know how to restore settings if you forget what the defaults were. Second, if a problem arises in the future, you’ll know what to look at to see what you’ve changed.
At this point, it’s a matter of doing a bit of research to identify what the settings are, what they do, and what (if any) notable changes should be expected when making adjustments. In my case, since there were few settings, I ended up finding the culprit: SPI (Stateful Packet Inspection). For whatever reason, this setting was blocking some (but not all) of the traffic for certain devices on the network. After disabling this feature, the issue does not appear to be present.
The following are some other steps one may investigate to correct network issues with routers:
Most routers have firmware updates available, but will not generally install them automatically. These updates can not only provide fixes for issues, but patch security flaws and such. It’s generally a good idea to update the firmware, even if there isn’t a major issue to fix.
Check Port Forwarding Settings
While this is more of an edge case, I’ve seen this happen on several occasions. At some point, a user on the network will attempt to apply port forwarding settings, either to solve an issue, or for a specific application (e.g. hosting a Minecraft server). When done incorrectly, it can cause seemingly blocked connections for certain things on the network. Removing unneeded (or unknown) forwarding rules can thus solve these issues.
Change Network Connection Type
Newer routers offer several different methods of connection. In terms of wireless, both 2.4 and 5.0 GHz connections may be options. Choosing one or the other may influence the results (5.0 is preferable for higher bandwidth). Apart from this, using a wired Ethernet connection is most preferable, as this eliminates sources of issues that wireless can cause (interference, encryption problems, etc.). There is also the bonus of a significantly reduced chance to experience packet loss, resulting in a more stable connection (and likely faster too).
Test on a Different OS
Sometimes the issue is a combination of factors, including drivers, installed software, bugs with the operating system, viruses and malware, etc. Testing the connection on the same device, using a different (or fresh) operating system can circumvent these issues, or at least help diagnose the problem. It’s very easy to boot a Linux distribution off a USB drive without the need to install it, and it should include functional network drivers.
This is actually something I tried, but left out earlier in this post since my lack of experience with the software left me without any useful answers. It should thus be noted that, as this is a more technical solution, it will likely not be useful to most individuals (not to mention those with lots of experience would have likely already tried this). Wireshark is a network packet analyzer, and can monitor all your network traffic. When used correctly, it can provide insight on just about anything one would want to know in regards to their network traffic. It also has a high learning curve, so it’s not necessarily the fastest solution.