59

I was transferring a file from one computer to another. When my two computers were far from the router I was getting 1 megabyte per second, but when I had my laptop next to the router I was getting close to 3. However on Windows it says my Wi-Fi speed is 64 Mbit/s. Shouldn't that be around 8 megabytes per second? Shouldn't I be getting 3.5+ easily? Why am I getting sub 3?

I tried using an adhoc connection, and I was getting 3.5 Mbit/s when my laptop and desktop were next to each other. It is still much lower than 64 Mbit/s.

  • 4
  • 3
    For converting bits to bytes in networking it is better to use the formula of 10 bits = 1 byte instead of the traditional 8 bit = 1 byte. This is because in wired serial networking you sometimes literally have 10 bits for 1 byte, 1 start bit, 8 data bits, 1 stop bit = 10 bits. For more modern networking that uses larger frames you still have overhead of packet header. For wireless networking you'll have overhead of synchronisation on top of packet header. I've learned to use 10bits = 1byte to get a good rough idea of actual troughput. The quoted Mbps include things that are not your data – slebetman Jul 17 '17 at 15:51
  • 2
    Pay attention to whether the 'b' is capitalized or not. A capital 'B' indicates 'bytes' (8 bits). A lowercase 'b' indicates 'bits'. – Dan Esparza Jul 18 '17 at 19:16
  • Related, but Powerline-version: superuser.com/a/1213468/53108 – usr-local-ΕΨΗΕΛΩΝ Jul 19 '17 at 7:46
  • 1
    @DanEsparza: Or at least that's the idea, not everyone follows conventions. Eg. 1 Kb is likely to be 1024 bytes. – Oskar Skog Jul 19 '17 at 13:56
110

Wi-Fi is half duplex and has more overhead than Ethernet, so you never see TCP/IPv4 thruput even as high as 80% of your physical signalling rate (known as a "PHY rate").

Plus, when sending wireless to wireless, every packet takes up channel airtime twice: once from the source to the AP, then again from the AP to the destination.

So assuming both clients are getting a PHY rate of 64Mbps to/from the AP, first we divide that in half because of wireless to wireless (=32Mbps), then we multiply by, say, 0.7 to estimate 70% efficiency (=22.4Mbps), then we divide by 8.4 to roughly convert from megabits to MebiBytes, for an estimated TCP/IPv4 throughput of 2.66 MebiBytes/sec.

Add to that the potential protocol overhead of whatever you're using to copy your files (remote filesystem protocols like SMB are often inefficient), and it's almost a surprise you're getting much more than 2 MebiBytes/sec even assuming a constant PHY rate of 64Mbps.

  • 5
    Is "MebiByte" commonly used in the industry? I had always heard that by default, the term "megabyte" automatically refers to "mebibytes" except in hard drive advertisements or when otherwise clearly specified. EDIT: Per Wikipedia, "Despite its official status, the unit mebibyte is not commonly used even when reporting byte counts calculated in binary multiples". For this reason I always thought of "megabyte" as a de facto synonym for "mebibyte" outside of HDD ad contexts, even though it can be technically defined differently as exactly 1 million bytes. – Darren Ringer Jul 17 '17 at 20:24
  • 2
    It might be domain-centric when speaking of the "industry". While I know of the convention set by IEEE, I've never seen it used in the SW-development I've been part of so far, and was barely mentioned when I took my EE classes ages ago. More than anything, I would wonder more about who exactly is using the 1,000-bit kilobyte over the 1024-bit kilobyte to where the difference needs to be distinguished in the first place. – kayleeFrye_onDeck Jul 17 '17 at 21:39
  • 7
    @DarrenRinger Computer nerds have been abusing the clearly-defined, long-standardized SI prefixes for as long as there have been computers, but I think there is a movement afoot to end that archaic practice in the name of usability and correctness. The macOS Finder (filesystem browser) switched to using proper (decimal) SI prefixes a few years ago, for example. I'm seeing more file transfer tools list speeds in KiB/MiB/GiB. I think getting it right is good for users and good for accuracy in measurement/conversion/comparison. – Spiff Jul 17 '17 at 21:52
  • 4
    @kayleeFrye_onDeck It needs to be distinguished as I did in my Answer: network and bus speeds are almost always in proper (decimal) SI prefixes of bits, but disk and file I/O speeds are almost always in binary prefixes of Bytes. So converting "gigabits" to so-called "gigabytes" is a factor of 8.6, not 8. Note that to convert from gigabits to "gigabytes" (really GibiBytes), if you only want to use a single-digit conversion factor, 9 is a more accurate choice than 8, because 8.6 is closer to 9 than 8. :-) – Spiff Jul 17 '17 at 22:03
  • 3
    I always heard the argument against considering it an abuse of SI units as: bytes are a discrete quantity, and not technically SI units [which are specifically meter, kilogram, second, ampere, kelvin, candela, and mole - classically, all continuous quantities], and thus the use of "mega" and "kilo" in the context of bytes is not an invocation of SI prefixes at all. EDIT: I see you are now distinguishing about use cases to answer my original question about domain specificity. I guess when dealing with the huge number of bytes as in with modern networks they may as well be considered continuous. – Darren Ringer Jul 17 '17 at 22:29
3

Have you performed a network survey/scan to see if there are any other WiFi networks around you? You don't say what frequency your network is operating on, but if it's 2.4GHz then there are only three (sometimes fewer) channels that do not overlap.

If anyone else has a WiFi network close to the channel you are on, then sometimes their network will transmit on some of the same frequencies your network is using, causing interference. This results in the packets being resent, increasing latency and lowering overall bandwidth.

If their network is on the same channel as yours, then you will be constantly trampling on each others' traffic. A WiFi connection speed of 64Mbps is a little unusual (it's not a common speed), which suggests that there could be quite a bit of interference.

If you do a scan with a program (or phone app) that lists what channels each network is on then this might give you a hint about whether moving your network to another channel might improve your signal quality.

If you are able to move your whole WiFi network to 5GHz instead (and all devices you wish to connect work at 5GHz), then the larger number of available channels will give you much more breathing room.

  • My neighbors wifi changes channels. Usually mine (11 or 1 I choose it) has no or very weak signals. The test I got 3mega bytes per second had noone else on the channel and both devices (no router, adhoc) were in same room – user3109 Jul 17 '17 at 5:10
  • Unfortunately due to the way WiFi works, just having the two devices next to each other often isn't enough to drown out the interference from neighbouring networks. It's a bit like whispering to the person next to you at a concert - you might be close together but you can still get drowned out by the noise around you. Also when you say there was no one else on the same channel, don't forget the 2.4GHz devices you can't see - cordless phones, microwaves, baby monitors, etc. All of them can interfere with WiFi but they don't show up in a scan, so they can be much harder to identify. – Malvineous Jul 19 '17 at 7:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy