Network Speeds and Limitations
In this video from ITFreeTraining, I will be looking at network speeds and limitations. This will allow you to understand the true speed that you will get out of your network connection and what limitations you may encounter. This will allow you to realistically determine what sort of performance you can expect from your network.
Bits and Bytes and Beyond
Before I start looking at what kinds of speeds you can achieve, I will first look at the basics of how data in a computer is organized. This becomes important later when you start attempting to work out what kinds of speeds you can expect from your network.
To start with, consider the smallest piece of data on a computer is a bit. A bit is stored inside a computer using the on or off state. So essentially it has two states, so it can be used to store a one or a zero.
If you group 8 bits together you get what is referred to as a byte. A byte is a fundamental unit of measurement that many other units of measurement are derived from.
Next, I will look at how data is measured by looking at the decimal system. The decimal system for measuring data comes from the international system of units often abbreviated to SI. It is based on a base of one thousand. As you move down the table, essentially a thousand is raised to a higher power. With each power, one thousand is raised, so there is also a symbol and name that goes with it.
To start with, you have one thousand bytes known as a Kilobyte. Going down the table you have; Megabyte, Gigabyte, Terabyte, Petabyte, Exabyte, Zettabyte and lastly Yottabyte. Later in the video I will give you an example of each of these to give you an appreciation of how much data each one of these stores.
As we have already covered, computers store data as either a one or a zero. This gives us two possible values. For this reason, it should be no surprise that this forms the basic building block for data inside a computer.
For this reason, data inside a computer is often grouped into 1024-byte blocks rather than 1000-byte blocks as shown. The binary system has a different naming convention. However, before looking at it, you should know that often, one system is used to calculate the number of bytes and the other is used to represent it. Without converting between the two systems, this will lead to some errors in the amount of data represented.
To better understand this, consider that using the binary convention, 1024 bytes would be a kibibyte. Using a decimal convention, a kilobyte would be 1000 bytes giving us a 24-byte difference. The problem is not so much that there is a difference, it is that the binary convention is rarely used. Often 1024 bytes will be said as a kilobyte. This means you essentially don’t know when someone refers to a kilobyte if they are talking about a kilobyte or kibibyte.
This small difference gets bigger as we go down to mebibyte, gigibyte, tebibyte and beyond. A perfect example of this is when you purchase a hard disk and it is sold as a certain size. When you format the drive, it is often reported by Windows as smaller in size then what it is sold as. This is because the hard drive manufacturer is selling it using the decimal convention and the operating system is reporting the size in the binary convention.
It would be good if the manufacturer reported the size of the hard disk using both the decimal and binary conventions, so you know what you are buying, however, I think it comes down to marketing and basically this is the way it has always been done. Something to keep in mind when buying a hard disk!
When you start looking at network speed, it becomes important to understand which convention is being used, because if you don’t convert between them when performing estimates, your estimates will be wrong. Let’s have a look at what effect this may have.
Comparison of Decimal and Binary Units
As I stated before, the difference between kilobyte and kibibyte is quite small. However, when we get to petabyte the difference is 13%. This starts to become important when you start looking at how much data can be transferred over a network. For example, if you are transferring a gigabyte over the network and you want to work out how long it will take, you can see that not converting between the two-unit conventions will add a 6% error to your estimate.
Later in the video we will look at where other errors in estimates can occur, but essentially if you don’t account for these errors, you will be providing estimates that are inaccurate. You don’t want to be in a situation where you are having to explain to management that you grossly underestimated how fast the network would perform.
Size of Data
Before I start looking at network speeds, it helps to have an understanding of how much data you are transferring over the network. A Kilobyte stores about a page of unformatted text.
A Megabyte in contrast, depending on what resolution you are using, will hold about one picture. Following this, a gigabyte will hold about one standard definition short movie. Your standard-length movie will be a bit bigger than a gigabyte, but you get the idea.
After this is a Terabyte. A Terabyte stores about 200,000 songs. So, you can see the amount we can store has gone up dramatically.
Next is Exabyte. An exabyte stores about 11 million 4k movies. If you were to attempt to estimate the total storage in the world, this could be measured in exabytes, if you could find a way to measure it.
Following this is a Zettabyte. It is estimated that in 2018 the amount of internet traffic per year had reached a zettabyte. This will continue to increase each year.
Lastly there is the Yottabyte. A Yottabyte contains so much data there is nothing currently that comes close to it. The total amount of storage and internet traffic in the world does not come close to this. To get an idea how much data we are talking about, a single Yottabyte holds about 45 million, million Blu-ray discs.
Now that we have an idea how much data exists out there, let’s have a look at how fast we can transfer it.
The next point to look at is how fast is your network performing? This is generally measured in bits per second for networks. The first one is Kilobits per second. This speed was used to measure the speed of modems in the old days.
Next is Megabits. Megabits is a very common measurement, with network cards being rated 10, 100, or 1000. However, a 1000-megabit network card will also be called a one Gigabit card. Essentially, they are the same thing.
The next speed you have is Terabit per second. There are commercial terabit lines available, but you won’t see them in the home market yet. Generally, these lines would be used for the backbones of the internet or special events like Dreamhack which had a 1.6 Terabit connection connecting the event participants to the internet.
The speed can also be measured in bytes per second rather than bits per second. This simply means you divide bits per second by eight. Giving kilobytes per second, megabytes per second, gigabytes per second and terabytes per second.
If you get confused which is which, remember that a lower-case b is for bits and an upper-case B is bytes. In most cases bits are used to measure how fast a network connection is and bytes will be used when you are performing transfers across the network.
Like before, bytes can be grouped in 1000 or 1024-byte groups. The same naming convention exists like before. However, as before, the decimal convention is sometimes used instead of the binary convention. If you are attempting to estimate how long a transfer will take, this can lead to misleading and inaccurate results.
Internet Speed Test
Now that we have looked at how to measure speeds, let’s now look at testing an internet connection’s speed. To do this, I will open up Internet Explorer and perform a Google search for “internet speed test”.
There are many different sites which offer speed tests, but at the time of the making of this video Google had a partnership with Measurement Labs to conduct speed tests. To start the test, it is just a matter of pressing the button “Run Speed Test”.
The speed test will first test the download speed. It does this by contacting a server and attempting to download data from the server. Once this is complete, the speed test will attempt to upload data to the server. This will give you an idea of how fast your internet connection is running. Before running the speed test, you should stop any applications that are using the internet. This also includes any other users who may be sharing your internet. If any data is traveling over the internet while the test is running, this may affect the results.
Once complete, you will get an indication of what speed your internet connection is running at. However, don’t expect it to always be running at this speed. Let’s have a look why.
The next concept I want to look at is bandwidth. Bandwidth is essentially the amount of throughput you get through a logical or physical communication path. A physical adapter would be like a network card and the bandwidth is a measurement of how much data you can put through the network card. A logical adapter may consist of multiple network cards. The bandwidth would be all the bandwidth of the logical adapters which is all of the network cards combined.
To understand how bandwidth effects communication, consider that you have a house connected to the internet. For home internet, the connection is divided into download and upload parts. For home connections, generally the amount allocated to uploads is less than for downloads. This is because home users generally download a lot more than they upload.
Consider that for this example, the home user is performing an internet speed test. Generally, the internet speed test works by connecting the user to a server that is geographically close to them. Since the communication is not traveling to far, it is less likely to go through a network with high congestion, thus giving the user a high transfer speed.
The internet speed test gives you an idea if the internet service provider has sold you the connection they promised you. Internet Service Providers have many customers sharing the same connections. If they have too many customers sharing the same connections, this is called oversubscribing and will slow down the connection. Generally, the cheaper internet service providers will do this. One thing to keep in mind is that the speed of your internet connection may also vary depending on the time of day that you use it.
The next point to consider is when you attempt to connect to other parts of the world. For example, if you attempt to connect to a server in a different country. Generally, business connections and internet backbone connections will have the same size for the download stream as the upload stream. This is because they tend to transfer a lot of data in both directions, unlike a home connection which generally is downloading more data than it is uploading.
When the computer attempts to download data from another country like this, the speed you receive can be a lot slower than what the internet speed test gave you. This is because, if there are any delays or congestion, this slows down the overall connection speed. There are many reasons this occurs. I will first look more closely at how different bandwidths can affect your communication.
To understand how bandwidth effects the performance of your network, consider that you have a network with five computers on it. Each of these computers is connected to one of the two switches on the network by a 100 Megabit connection.
The two switches are connected together and to a router by a one gigabit per second connection. The router is connected to the internet. The connection to the internet is 10 megabits per second.
There are many different ways to conceptualize network traffic. One common analogy is to use different size roads and vehicles. In this case, I am going to use water to demonstrate network traffic.
To do this, imagine that you are filling a bottle using a funnel. A funnel has a wide top and a narrow bottom. The wide top allows some liquid to pool up in the top. The amount of liquid that can pass through the funnel is determined by the size of the narrow bottom. If you put too much liquid in at once, it will spill out the top and you will lose some of the liquid.
The same applies to networks. Network devices have the ability to buffer a small amount of network traffic. The speed the traffic will pass through the device will be determined by which network adapter it leaves by. If too much traffic is transmitted at once, the buffer will fill and new traffic will be lost.
If I take this example, if one computer was to start accessing the internet, you can see the traffic, in this case water, will travel over the network to the router which has access to the internet. With only one computer accessing the internet at one time, the router can handle all the data. In other words, the router does not drop any packets and all the data makes it to the internet.
If a second computer starts accessing the internet, you will notice that this traffic travels over the network to the router. Even with two computers accessing the internet at once, the router is still able to accommodate both computers without dropping any packets. If you start adding more computers to the network you may start to have problems if you don’t upgrade your internet connection.
In this example, two more computers will start attempting to access the internet. You will notice that when the two computers are added the router buffer will fill up and start overflowing. In technical terms, the router will start dropping packets. If you think of the router buffer like a funnel, the funnel is full and thus the liquid will start spilling out. Just like the liquid being lost, the data traffic will also be lost.
To keep losing traffic like this is not desirable, and the router will send messages back to the computers telling them to slow their traffic down. In this example, I have slowed the speed at which the computers are transferring data to the router. You will notice that once the computers slow down their speeds, the router will drop less and less packets.
This is one of the ways the internet controls the speed of data traveling over it. If you have a point on your network that is slowing the rest of the network down, this is referred to as a bottleneck. Network administrators will attempt to eliminate these bottlenecks when deploying networks. This is why you will often see network equipment and backbones of the internet that are much faster than what is connected to them.
If you think of it like pipes, if you have ten houses connected to the same water system, if all the houses turn on their water at the same time, there will be a drop in water pressure unless the main pipe feeding all the houses is much larger than the combined size of the pipes going to each house.
Next, let’s have a look at what else can potentially slow down your traffic on the internet.
The next topic that I will look at is traffic shaping. Traffic shaping, otherwise known as packet shaping, is the process of delaying certain packets to optimize network performance. Many ISPs perform this practice; often the ISP will give as their reason for doing this, is that it prevents a small number of customers using a high amount of bandwidth which would reduce the experience for all the other users.
To understand this better, consider that you have a network stream. Video data like YouTube and Netflix is quite large compared with other data. For this reason, many ISPs will shape this data. Think of the shaping working like funneling data. Shaping will often delay data slightly in order to prioritize other data.
In some cases, the buffering may become full and packets will be dropped. If I use water once again to show network traffic, you can see the video traffic essentially is slowed down and the other traffic is allowed to pass through. This will prevent the users who are downloading a lot of video from slowing down all the other users.
Of course, when introducing systems like this, there is a tradeoff. Slowing down video traffic will slow down video downloads for all users. In some cases, packets will be lost. This is why in some cases, if a user were to create a connection out from their network using a VPN, in some cases to a different country, this would bypass the packet shaping. When you do this, you will get faster video downloads because the network is not slowing down the VPN traffic as it does for the video traffic.
You can start to understand where the arguments for net neutrality come from. Net neutrality is the argument that an ISP should treat all internet data equally and not prioritize data based on user or type of data. If your ISP uses traffic shaping to shape traffic like in this example, your internet connection will most likely never download video as fast as the internet connection speed that you were sold.
You can also start to understand the reasons why the internet speed test may not give you the same results you experience when using the internet connection for day to day activities. It is unlikely that an ISP would slow down speed test data as they want the speed test to show the highest result possible. You can begin to see why people are passionate about fighting for net neutrality, as essentially shaping data will mean the internet connection that they paid for does not work as fast as advertised. If the ISP removes the shaping, then this may slow down the experience for all the users.
There is an easy solution that will fix this problem – that is the ISP upgrades their network. This will allow more traffic to pass through and reduce the need for any traffic shaping. However, this will reduce their profits and make them less competitive. You can now see that when you start looking at a network, there are many places where a bottleneck can occur and for many different reasons.
Converting Between Decimal/Binary
Now that we have covered measuring network speed, I will next have a look at how to measure the length of time it takes to transfer data over a network. To start with, first we need to be able to convert between decimal and binary.
The easiest way to do this is to use Google. To demonstrate this, I will first open Internet Explorer. To convert something, it is as easy as simply typing in what you want to convert from and convert to. In this example, I will enter in ‘10 megabyte to kilobyte’. Note that Google is not case sensitive, so I don’t need to put a capital B which would be technically correct.
Notice that in the pulldown I can change the output displayed including selecting kibibyte. I can also change the amount if I wish.
If I select the top pulldown, I can also select other conversion options. In this case I will select the option “Data Transfer Rate”. This allows conversion between different data rates. For example, if I select “Megabits per second” and then enter in 10, this will show how many kilobits per second is equivalent to 10 megabits per second.
You will find Google will convert many different things by simply typing into Google what you want to convert. For example, you can convert from one currency to another by typing it into Google.
Online File Transfer Calculator
I will next have a look at how we can estimate how long transfers will take. To do this, I will use an online calculator. There are a few available online. The one I will look at has all the basic features required and is easy to use.
To use it, I will first open Internet Explorer and search for file transfer calculator. In this case, the first result will be the page I am looking for. If you have trouble finding it, a link for the web page has been included in the references section of this video.
Once the page has loaded, I will enter in one on the left-hand side and select gigabyte. This will represent the size of the file that I want to transfer. On the right-hand side, I will enter in 100 and select kilobytes. So essentially what I am asking is, how long will it take to transfer a one gigabyte file over a 100-kilobyte network connection?
On the far left-hand side, notice there is a pulldown to select either 1024 or 1000 for the calculation. In this case I will leave it on 1024. On the far right, notice that on the right-hand side you can select an overhead amount. A network connection will never work at its maximum speed, so using this setting lets you adjust the estimate so that it is closer to what the network connection is actually transferring at.
Once I press the Calculate button, an estimate will be created on how long it will take to transfer a one gigabyte file over a 100-kilobyte network connection. You will notice that it will take about three hours, 12 minutes and 14 seconds to complete.
Using tools like these are a quick way of determining how long it may take to transfer data over your network.
Before I finish this video, I will do a quick summary of the major points covered. When looking at network speeds or size of data, remember that lower-case b is for bits and upper-case B is for bytes.
Generally speaking, bits will be used for measuring network speed and bytes are used for storage. This tends to be the trend, however, of course you can use either for each.
When performing calculations, keep in mind the difference between decimal and binary. For example, Linux and Windows will show the size of data differently. You can see in this example with the same file on a Linux system and a Windows system. When you have a closer look at a Linux system the file is displayed in mebibytes, whereas on the Windows system the same file is displayed in megabytes.
Both systems are using the binary system to work out the result; however, Windows is displaying the result using decimal convention. Keep this in mind when doing your calculations. If a result is displayed using binary convention such as mebibytes in this case, it is most likely correct. If you see a result using decimal convention, it may or may not be correct. The binary convention was released in 2009 – long after the first Windows system was released. So essentially, Windows keeps using this standard, because this was the way they have always done it.
I hope you have enjoyed this video from ITFreeTraining and found it useful. Until the next video I would like to thank you for watching.
“Data-rate units” https://en.wikipedia.org/wiki/Data-rate_units
“Internet traffic” https://en.wikipedia.org/wiki/Internet_traffic#Global_Internet_traffic
“Why does Explorer use the term KB instead of KiB?” https://blogs.msdn.microsoft.com/oldnewthing/20090611-00/?p=17933
“World’s Fastest Internet – 1.6 TERABITS per Second” https://www.youtube.com/watch?v=WXt2gD4fS_k
“The world’s fastest internet speeds ever recorded will blow your hair back” https://www.dailydot.com/debug/fastest-internet-speed-ever-recorded/
“FILE TRANSFER TIME CALCULATOR” https://techinternets.com/copy_calc
“Dreamhack 2010 Behind The Scenes: A Sea Of Computers “ https://www.youtube.com/watch?v=Zwb8pQ337L8
Trainer: Austin Mason http://ITFreeTraining.com
Voice Talent: HP Lewis http://hplewis.com
Quality Assurance: Brett Batson http://www.pbb-proofreading.uk