- DaLANTech -
Download this article as a self-extracting text file
This article was originally published on and is posted with permission of DaLanTech.com
I think it's funny how numbers are used to influence our buying decisions. For some reason 99 cents looks better than $1.00 and 10 Mb (Mega bits) looks better than 1.22 MB (Mega Bytes) even though the two are exactly the same. In this article I'm going to cover bandwidth, both theoretical and effective, and explain some of the things that impact your performance on a network
The Numbers Game
For a long time I thought that the speed of networking equipment was reported in bits because all networks are serial devices - data is transmitted one bit at a time. So from an engineering standpoint it makes sense. Now, however, I think it's just marketing. 10 Mb just sounds better. After all, when I think of data and the ability to transmit it I want to know how many Kilo Bytes (a Byte is eight bits) that I can move per second, minute, or hour because that's how the data is reported to me when I look at the size of a file.
The marketing for network equipment won't change - if you see two Network Interface Cards (NICs) on a shelf and one could transmit 10 Mb per second (Mb/s) and the other 1.22 MB/s the choice would be simple. You would pick up the 10 Mb card, even though the two are rated at the same speed same. So, let's take a look at what you are actually getting for your money...
All of the transmit rates for networking equipment are listed in the maximum possible speed for the technology used. A 10BaseT NIC card is capable at transmitting data at a 10 Mb rate. Cat 5 cable can handle a 100 MHz signal without distortion. But the ratings are just the theoretical maximum that the equipment can handle - it has nothing to do with the actual performance that you'll see when you try to move data from one PC to another on a network.
Now we are going to get into the numbers that the marketing spin doctors don't want you to hear - the actual (effective) bandwidth of networking equipment. Let's start by taking a 10 Mb/s Ethernet LAN and convert bits to bytes:
10,000,000 / 8 / 1024 (the number or bytes in a kilo byte) = 1.22 MB per second. So far so good. Now let's try to move a 1 MB file across our 10 Mb/s LAN. Do you think it will take just a little more than a second? Hardly - it will take longer!
I'm going to assume that the NICs on our LAN are set to transmit data using the Ethernet Maximum Transmittable Unit (MTU) of 1500 bytes. Unfortunately some of that data gets consumed by the "packaging" necessary to get an Ethernet packet between two points. The transport layer adds source and destination port numbers as well as status bits and sequence numbers to our data. The IP layer adds a source and destination IP address. All totaled 40 Bytes are used to get our packet of data to the destination and to identify where the data came from. So for every 1500 Bytes of data that we want to transfer we have to subtract 40 as being used by the packaging. The number of packets needed to transmit our 1 MB file would be:
1,024,000 / (1500-40) = 702
The amount of bandwidth we lost due to TCP/IP packaging:
702 x 40 = 28,080 Bytes! Ouch! - and that's just for a 1 MB file. It gets worse, I haven't included the source and destination Medium Access Control (MAC) addresses - that would be another 12 bytes per packet. Plus 4 bytes for the Frequency Check Sequence (error detection) that is attached to every packet - but I think you get the picture. You're not going to see the rated speed of your network because of the overhead in getting your data from point A to B. But TCP/IP packaging isn't the only consideration.