There are a huge number of factors at play when it comes to determining just how fast, or how slow, a particular file will download. It seems that a lot of people think that when they download a file, it should always download as fast as their internet service provider (ISP) will allow. Which, maybe this is the ideal situation for the end internet user, but this is hardly what happens in the real world. Not only are there technical and practical limits to things, problems may occur at any point of transmission or receiving data. Problems you may not be aware of that, and in many cases, problems that are completely out of your control.
My hope here is to shed some light on this topic for the end user. While this isn’t an actionable article for the most part, for the curious, it can give some insight into the factors that determine how fast or how slow a file downloads from various websites or using certain services. Even though this post and site is focused mostly on multihoster services and premium account-type downloads, the factors listed below are geared towards general downloads and internet usage.
Full disclosure: I work for a small ISP and I have a vested interest in people using download services. That said, I think my 15 years of downloading files, network management and troubleshooting experience, website and server management and general technical competence allow me to have a pretty good grasp on what goes on in the background when you’re downloading files, and that’s the information I’m sharing with you today.
Factors that affect download speeds
Whether you’re using a multihoster service to download files, downloading directly from a filehosting site, streaming a video or just browsing some random website, the factors that affect download speeds are largely the same. Here are the most common problem areas (bottlenecks) as it pertains to downloading files as well as some of the factors that could play a role in that.
Potential problem points
Each of these components come into play when determining how quickly or how slowly you can download a file, stream a video or even browse a website.
- Your computer
- Your ISP
- The download server
- The download server’s ISP
- The physical distance between your computer and the download server
- The network path your traffic takes between the download server and your computer
- Intermediary services like proxy servers (popular with multihoster services, some ISPs) or CDNs (content delivery network – common with video sites, other popular sites)¹
¹ These factors are not necessarily present in all online communications, but if they are could potentially speed up access to sites, files or data. The reverse could be true as well.
For the most part, your computer being outdated or slow does not directly affect your download speed. That said, a poorly configured, low on resources or malware-ridden computer can cripple any type of online experience. For example:
- DNS settings affect initial load time for websites and each of their components (stuff embedded in a page like images, stylesheets, etc). If your primary DNS server is bad or you just use slow DNS servers, it can make everything you do online seem to lag. This shouldn’t affect transmission speed once a download starts, however.
- Outdated or conflicting web browser plugins / extensions / addons could affect your ability to stream video fluidly (stutter & stopping), or even cripple your online experience as a whole. For example, my son like to play games on the computer. However, some of these games install toolbars and buttons and extensions that effectively make browsing the internet in that browser nearly impossible, even with a solid internet connection and decent computer.
- If you’re downloading torrents and have a router or computer that limits your maximum number of internet connections to too low of a number, everything you do online will slow to a crawl. You may not even be able to load web pages in these cases.
- Malware and spyware can do damage in numerous ways. Pertaining to this article, they can use up resources on your PC, which, on an already-slow PC, can cause even more lag when you’re trying to do even basic things online. Furthermore, if you have spyware or a virus that uploads things to the internet and you have a low upload speed from your ISP, it can severely degrade your ability to download files or even browse the internet.
- Low CPU or too-low RAM in and of itself doesn’t affect download speeds, but when combined with other factors such as I mentioned above, it can ruin any type of online activities, potentially making even browsing simple websites very slow.
Your ISP is the first and last point of contact with any internet-related communication (meaning data transfer of any type) outside of your computer and easily plays a big role in how fast or slow you can download files or access the internet. There are a couple of major areas where ISPs might affect your ability to download files:
- Overselling – If your ISP is overselling bandwidth, meaning that they sell more speed to local customers than they have available if every customer was using their full speed at the same time, it can cause pretty big issues with your download speeds. Upload speeds, too. This is a big reason why some ISPs will be very slow at night or even during the daytime staring as early as 3pm-4pm local time. This can happen with DSL, Cable and Wireless internet. I’m sure it can happen in any type of system with shared resources, though.
- Low or poor upload speed – At least in the Midwestern US, most residential internet is asymmetrical, which that translates to upload speed usually being much lower than download speed. Especially if your overall speed is very low, any type of uploading can degrade or even cripple your ability to download files. From my perspective, this has more to do with your ISPs network and their capacity than your personal internet connection’s limitations.
The download server
To explain some terminology, a server is essentially a computer. It’s actually pretty similar to a home desktop computer tower except usually with better specs – more RAM, a powerful CPU, etc. A website is a collection of files stored on a server. These files are made available to your web browser through software running on that server, and that’s how you visit and interact with a website. Many types of larger or popular websites use multiple different servers for visitors for numerous reasons. For example, though these are extreme cases, Microsoft had 1 million servers in 2013. Now, not all of them pointed to Microsoft.com, but that was the entirety of the network for Microsoft-related services. I can’t tell you how many servers Google has, though here’s an estimate, but I can assure you that Google has multiple servers all over the world that point to the Google.com home page (or Google.co.uk, Google.es, etc).
Multihosters and filehosting sites (and video-streaming sites, etc) utilize multiple different servers to better-handle visitor traffic and usage. You might be downloading a file from Rapidgator, for instance, but it could actually be stored at server1.rapidgator.com, server2.rapidgator.com, server3.rapidgator.com and so forth. These are fictitious examples – I don’t know if these actually exist, but the premise is the point. These servers could technically be on opposite sides of the world, which absolutely comes into play as it pertains to your download speed. Furthermore, each of these different servers could be serving up files that you’re downloading simultaneously, meaning that your download speed could vary wildly from one download to another, even though you’re downloading files through one specific website’s services.
I do not propose that multihosters like Linksnappy or Zevera or filehosters like Uploaded.net have 1 millon servers, but 10-50? Maybe. Maybe more. Certainly any similar services utilize multiple different servers as the technology today does not exist, that I’m aware of, that could handle the number of users and internet throughput needed to accommodate their mass of users simultaneously from a single location. If it did, I don’t know that I’d be convinced that any of these services could afford it.
Download servers are largely limited in two areas:
- Available resources – Much like what would happen if you have a computer that wasn’t powerful enough to adequately handle the demand you and your software put on it, a download server will start to lag if overloaded. This point should not affect the download speed once you have a connection to the server, at least for the most part, but it can cause delays or lag of varying significance when trying to start a download or even trying to connect to the website.
- Available bandwidth – At least as far as the download server is concerned, bandwidth limitations are likely the biggest reason for slowdowns. A properly optimized content provider service with skilled programmers and/or lots of money (this is key) can mitigate bandwidth limitations and network congestion with load balancing, geo-targeting and so forth, but less-mainstream services like filehosters and multihosters, which Netflix and even Youtube are opposites (as Google has money and owns Youtube) are more prone to having too many users for the available bandwidth. A download server’s internet package works basically the same as any residential internet package – your ability to pass traffic / download files degrades once you get close to using all of your available speed.
The download server’s ISP or upstream provider
As it pertains to this article, the download server’s ISP plays the same role as your own ISP. The biggest differences are that locations that house servers (known as server farms or data centers) tend to have access to very fast internet and oftentimes have access to multiple different providers with very fast internet, which are ideally tied into a major internet backbone. From my viewpoint, it’s less likely that you’ll experience slowed downloads due to overselling by a major data center’s ISP, but slowdowns due to network and other congestion issues are still possible. Which, depending on the issue, it could slow your downloads down or completely stop your access to a download server for a period of time.
Your physical distance from the download server
The internet allows us to communicate with almost anybody, world wide, nearly instantaneously. Which, ‘nearly’ is the key here. As cool as it’d be, internet communication doesn’t work via some form of teleportation, rather it transmits data in a linear fashion, albeit at pretty fast speeds, from router to router until it reaches its destination, then back again to your computer. The physical distance between your computer and a web server affects how fast you’re able to access data from it, and this is pretty easy to demonstrate using a simple computer command.
I’m not going to do a ‘how to ping’ tutorial, but I’ll demonstrate what I mean here. I’m in the USA, and Google is known to use multiple different servers, which the server your computer communicates with is dictated by your location (in part), so google.com will be my local ping. I’m using Linux, but you can replicate this by opening a command prompt in Windows and typing ‘ping google.com’ without the quotes:
On the right-hand side, you can see where it says ‘time=4x.xms’ – this is the amount of time it took a small amount of data to go from my computer to Google.com and back again, which on average was about 44 miliseconds. Now, if we run that same test with a server that I know is further away from my location, such as a popular Chinese search engine – Baidu.com, you can see the differences:
Which, in this case, the average trip time for a small amount of data was 290 miliseconds, several times longer than is shown for Google.com. This is because, amongst other things, Google’s server is much closer to my physical location than Baidu’s server.
So, if you’re downloading files from a server that is geographically far away from you, that is going to play a role in the amount of time it takes to download that file.
The path your internet traffic takes
This is tied into the above point, but adds in several other points of failure or potentials for slowdowns into the mix. As I stated, internet communications travel in a linear fashion: from router to router to router then to a server, then back again through routers to your computer. Most computer users have the tools available to see the travel path of their communications to a given server by way of another computer command: a traceroute. Which, this is a tool that can show you ‘hops’, as they’re called, made by your traffic.
To not only demonstrate that internet communications take different paths depending on the originating location, but to reinforce the idea that proximity to a server can affect speed, I have traceroute tests from three locations to a popular Dutch news website: Nos.nl.
The first is my local connection, which is in the Northern Midwest US:
You can see the average ping time is 117ms, or milliseconds, which is shown towards the bottom of the screen. You can also see parts of the routes my traffic took aside from some hops blurred out for privacy reasons.
The second image is a from a server I have in the southern US. You will notice that the response or ping time, which the average is 121.6 milliseconds, is pretty close to the same as from my location, but there are fewer hops, plus the route to the same website is completely different:
The third image is from a server I have in the Netherlands. Notice that not only are there fewer hops, the ping time is substantially smaller, only averaging 2.9 milliseconds:
Each of these hops represent a potential bottleneck, or slowdown, for your traffic. The more direct the route between your computer and the download server, the lower the number of potential problem spots where your traffic could get held up. Now, closer and more direct doesn’t always mean better and faster, but generally speaking this is how this works.
A proxy server is a type of network connection (usually another computer) that acts as an intermediary for some or all of your internet requests. Some ISPs use proxy servers as a means to deliver cached content to users and some or many multihoster services use proxy servers to provide access to third-party services to their members. For the purposes of this article we’ll focus on the latter and how it might affect download speeds.
In this context, a proxy server is a go-between for your downloads. I’ll use my crude images from the multihosters and private downloads article to demonstrate. When you download a file normally using your web browser, you connect to the filehosting site (or whatever type of site is storing the download) directly, as such:
Your communications run back and forth between the download server directly. However, when a masking proxy server is in use, your downloads and transmissions look more like this:
Your computer communicates with the proxy server, which then communicates with the download server, then the download server to the proxy server, then back to your computer. A proxy server can afford you some extra privacy, but it is one more step in the download process which, again, is potentially another bottleneck.
Proxy servers are usually setup on computers, but can be run as applications on routers even. Which, routers are mini computers…. so, in any case – the same things that affect download servers can affect proxy servers, namely: being overloaded or having too little bandwidth for demand. However, they are, too subject to the rule of proximity and distance, not only to your connection, but also the download server. Unfortunately, even though proxy servers are generally in place to enhance one’s online experience somehow (caching or privacy, for example) in some cases their presence may actually degrade your ability to download files, browse the web or even access certain websites altogether.
How all this translates to download speeds
Using the internet in any capacity is a very complex process, much more so than the, “my stuff is working, this download / site isn’t working, so it’s your fault” mentality that is exceedingly prevalent conveys. This post is meant to be an informative piece, but also maybe to provide some relief, even some defense for download services, multihosters, filehosting sites, webhosting companies and even some ISPs – those who don’t control giant chunks of the internet’s infrastructure. Something to give you, the end user — the downloader — a better picture of what’s going on when you try to download a file or even access a website. The slow download you’re experiencing isn’t necessarily their fault. Maybe some of it is, maybe all of it is, or maybe none of it is — you can’t really know unless you look much further than how many KB/s or MB/s you’re able to download per second.
I know I’m guilty of this, even recently. I had an issue where one of my servers was reporting as offline on a local monitor and my first response was to blame the hosting company. “My internet is fine, great even, but I can’t access my sites — there’s something wrong with their service.” Most of us do this, and this way of thinking is flat-out presumptuous at best. Arrogant and dimwitted actually, at least it is for me as I should know better. Turns out, it was my hosting company’s ISP that was the issue – it had nothing to do with my hosting company’s service, my server was running perfectly fine, only I couldn’t reach it from my location because of a traffic issue in the route between my location and my server’s location.
I could give you story after story about false assumptions made by myself or others laying blame on people or services that were not to blame for my or their problems. Internet communications don’t rely solely on two or three components alone: your computer, a website and a hosting company or ISP – it is much more complicated than that. Sometimes it is the simplest answer that is the right answer (“it’s not me, so it’s you”), other times it’s not even close. It’s not my goal to steer people into advanced network troubleshooting, rather to, again, paint a better picture of what goes on when you’re out there doing things online.
I hope this does just that – gives you some insight into why download speeds are what they are, for better or worse. If you have anything to add or have questions, feel free to leave a comment below.