It’s easy to get lost in the complex world of networking. Based on years of experience, this guide is meant as an easy way for non-experts to learn how to increase internet speed.
Engineers like myself like to start troubleshooting by isolating the problem. We want to pare down a complex system (like a home network) into smaller chunks, so that we can test each one individually. For the purposes of diagnosing slow download speed or slow upload speed, there are generally three things worth considering:
The Internet Service Provider (ISP) — like Comcast, CenturyLink, etc.
The home network hardware (modem/router/switches) — the stuff that connects your computer.
The slow device itself (the computer, phone, gaming console, etc.)
The easiest problems to rule out are #3. If one device on the network is fast and another is slow, it is likely a device problem. Let’s start by running a simple speed test to determine how to increase internet speed…
If you try it on multiple devices, and at different times of the day, you can get a sense of what to expect from your internet speeds. Also, know that download and upload speeds tend to be very different (the latter is usually much slower). Right now, let’s focus on slow download speed (upload will come later), since that’s what’s used for most activities.
Under 1 Mbps: everything is painfully slow.
Up to 5 Mbps: internet browsing feels “okay;” music streaming works.
Up to 30 Mbps: video streaming or video calling works.
Over 30 Mbps+: downloads get faster and faster.
You should know: bits vs. bytes
One of the most confusing facts of measuring speeds is the difference between Mbps (megabits per second) and MBps (megabytes per second). A byte is 8 bits, so the former will be 8x the latter. Be careful that you don’t mix up the two; both are commonly used, and you don’t want to compare apples-to-oranges.
But that’s not the end of the story.
Likely, you’re sharing the internet bandwidth with other devices.In the vast majority of cases, slow internet speeds happen because of sharing the bandwidth somewhere along the way. When talking about networking, the analogy of water in pipes is often used…
Bandwidth is how “big the pipe is.”
It measures the theoretical maximum throughput, or how much can pass through the pipe at any point in time.
Every link between a device and the internet has its own bandwidth. For example, a WiFi card or ethernet adapter in a computer might be rated at 1 Gbps. But an ethernet cable might only be rated at 100 Mbps. Therefore, plugging a 100 Mbps ethernet cable into a 1 Gbps ethernet port will result in a maximum throughput of 100 Mbps.
All this is to say: the best place to start is simply to look up the specifications of each device in the “chain of devices” which are slow. If a single computer is slow, look at the manufacturer’s site to see what kind of network card it has in order to determine how to increase internet speed.
If multiple devices are slow, it’s time to look at the shared pieces…
The Difference Between a Modem and a Router
Users often do not realize the two are different.
Many internet providers (Comcast, CenturyLink, etc.) provide a modem+router combo. The modem is the part that actually connects to the internet (through the very same internet service provider, or ISP). But the device often also routes the data to the computers in the home.
The router allows more than one computer to access the internet.
You might connect to it via a cables, or it may provide a WiFi hotspot.
The distinction is important because they represent the two ways in which the internet connection might be slow. There is the internal network, and the external network (aka, “the internet”). They are frequently referred to in the following ways:
Local Area Network (LAN) = home network = router
Wide Area Network (WAN) = internet = modem
A simple way to see the difference between the two is to use the ping command to check the connection to both the router and to the internet. All modern computers (Mac, Windows, and Linux) should have the ping command pre-installed. Just open up a command prompt / terminal and type:
ping google.com
At the end of each line should be something like time=546 ms. This is telling you the total amount of time it took to reach the server (milliseconds). Now let’s contrast this against the connection to the LAN. Instead of pinging Google, you’ll need to ping another device on the LAN. In Mac OSX, you can open the network preferences pane to see the IP address of the router:
In this case, I ran a ping 192.168.0.1 and saw that the response time was 0.733 milliseconds. In other words, the vast majority of the time it took to connect to Google happened outside the local network (less than 1 millisecond of the 546 milliseconds were spend connecting to the router).
Running a custom router gives unprecedented insight into everything happening in a network. Building your own router with a a Raspberry Pi may be a little daunting, but it's surprisingly easy and rewarding to do... and the benefits are tremendous.
A more complete picture can be achieved with the traceroute tool…
Connected, No Internet?
Problems can happen at one of many different “hops” along the way.
The traceroute command (or tracert on Windows) works similarly to ping, except it shows each step (or “hop”) along the way. Usually, you’ll see a sudden increase in response times somewhere along the way:
traceroute to google.com (172.217.5.110), 64 hops max, 52 byte packets
1 192.168.0.1 (192.168.0.1) 1.118 ms 0.947 ms 0.695 ms
2 hlrn-dsl-gw06.hlrn.qwest.net (207.225.112.6) 422.011 ms 442.621 ms 495.525 ms
[...]
Notice that it was the second hop (right after the router) that suddenly jumped to ~400+ ms. This suggests that the first major slowdown happens in connecting to the internet provider. This makes sense, because we’re on DSL here at the cabin, which is notorious for high latency.
Ping and throughput both contribute to speed.
Each time you connect to the internet (which is done dozens of times to load even a single website), a new connection has to be established. The ping takes in to account not just the throughput, but the time it takes to actually negotiate the connection with the server.
Therefore, ping is a more complete measure of the ability to connect when determining how to increase internet speed. Throughput is a measurement of the speed of data transmission once connected. To find out why there is no internet access (or slow internet), looking at the hops can help show where the problem is. For example, when the internet may not be available, it means that the connection is being lost at some point along the path of hops to the final destination.
In other words, to be connected with no internet may mean several different things. But if nothing at all will load, the problem is likely “close to home.” One of the early hops, like (1) to the router or (2) to the ISP will fail. Whatever hop fails in the traceroute represents the problem. If the problem happens after your router, as with the above example, then you will need to contact your ISP.
For problems inside the home…
Slow Download and Upload Speed(s)
If you’ve confirmed that the slow download speed is not the fault of the ISP (#1 from the introduction) and not the fault of your computer (#3 from the introduction), then it’s time to look inside the home networking for how to increase internet speed.
“Slow” means “less than the ISP is providing.”
If you want to learn how to increase your internet speed beyond what the ISP can provide, look in to internet connection bonding:
We have a cell phone and a Mifi device we use to connect to our laptops for fast internet in the van (thanks to some speed-boosting tricks). But staying under the data caps for each was challenging, so we'd try to connect to Wifi connections whenever we could. But juggling all of this quickly became a problem (before I implemented "internet bonding") because we each have a laptop, plus there is a small computer in the van automatically recording data about our travels.
Slow download speed and slow upload speed may or may not happen together. Importantly, bandwidth applies to download+upload (the total amount of traffic through the “pipe”). The most simple way to determine how to increase upload speed (or how to make downloads faster) is to begin disconnecting devices to see if one of them is “hogging” bandwidth.
However, there are also much more sophisticated tools for determining why the download/upload speed slow(s) down. At this point, you should be confident that (a) the problem is inside the home network, and (b) that the network’s bandwidth is sufficient to support higher speeds. If both are the case, a network analyzer can help reveal which devices are “hogging” the bandwidth:
When trying to figure out why the internet is slow, it can be hard to learn exactly which device on the network is eating up all the bandwidth. Many solutions to this problem require software to be installed on every device to be monitored. Instead, I tried to build a custom Raspberry Pi network monitor.
In my experience, 99% of home internet problems come from outdated or misconfigured WiFi routers.
If you’re not already an expert, the only truly feasible solution to this is simply to buy a better WiFi router. Right now, the two major competitors are the Eero Pro and Orbi. Without getting in the technical details, both support advanced WiFi protocols that allow them to cover a greater space and provide a higher internet speeds:
This site began as a place to document DIY projects. It's grown into a collection of IOT projects, technical tutorials, and how-to guides. Read more about this site...
No silly gimmicks. This collection of home automation ideas will actually make your home more enjoyable for you and your guests. I've personally implemented many of the ideas in this list. These all came from our DIY Home Automation project...
Kodi is one of the most popular open-source media players. It can run on a wide variety of devices, from Raspberry Pis to Firesticks to laptops and servers. Installing Kodi is very simple, but the default installation does... almost nothing. What is...
Sharing files at home is easier with a shared network drive. A DIY NAS build can turn an existing server into a multimedia server with automatic backups—accessible from any computer or device on the network. Why Build Your own NAS? There are many...
Running a custom router gives unprecedented insight into everything happening in a network. Building your own router with a a Raspberry Pi may be a little daunting, but it's surprisingly easy and rewarding to do... and the benefits are tremendous...
DSL may be less common these days, but it is still a fact of life for some. Unfortunately, many DSL modem router combination devices are outdated and slow. This leads to many home owners being unnecessarily frustrated with the internet connection...
Pi Hole is a network wide ad blocker. It can protect an entire home from advertisements. It can even help to speed up the network. However, running PiHole Docker+Kubernetes poses a couple interesting challenges. This is one of several posts on...