Marco Arment and Dan Benjamin were discussing the merits of wired versus wireless networks on their podcast this week, Build & Analyze. Marco made some good points about how wireless networks are always going to be slower than wired networks because of factors like:
- interference from other devices that use the same spectrum, e.g. cordless phones
- the inverse-square law, where in free space the power of a radio signal decreases proportional the square of the distance from the source
- the fact that the speeds referred to by standards like 802.11g (54 Mbps) are theoretical maximums rather than a speed that can be achieved in practice.
Digging deeper when comparing wired to wireless networks, there are even more limiting factors to consider.
The first additional problem is that the marketing speed of a wireless network, like 54 Mbps, is even worse than just being a theoretical maximum. It’s the theoretical maximum speed per stream. With the older and still common 802.11g standard, one wireless access point (AP) can only handle one stream at a time, so 54 Mbps is the theoretical maximum bandwidth which needs to be shared among all your devices on the network.
Wired networks in theory have similar limitations per segment, but modern Ethernet networks always use dedicated segments between devices which allows each device to use the maximum possible speed all the time.
The latest wireless standard at time of writing, 802.11n, attempts to address this issue by increasing the number of supported streams per AP. This goes some way to fixing it, but doesn’t reach the ideal situation of dedicated full-duplex connections that Ethernet provides.
The next problem is how the network deals with collisions. On any network that shares a physical medium, like 10BASE2 Ethernet or wireless 802.11 networks, multiple nodes on the network can start transmitting data at the same time.
Old Ethernet networks like 10BASE2 used to work around this problem with collision detection where, when the transmitter detects another machine trying to transmit on the same physical segment, it would abort its transmission and wait a random amount of time before trying again1. However, these days Ethernet network segments are almost always a dedicated cable between a computer and a network device like a switch or router. This means collisions are not normally a problem on a wired network at all.
Unfortunately, collision management in wireless networks still a problem, and dealing with it is made much more complicated by two factors:
- Wireless devices can’t transmit and listen at the same time
- Wireless devices might not be able to “see” all the other wireless devices that are connected to the same AP.
To combat the first problem, wireless networks based on 802.11 standards use what is called collision avoidance. Instead of trying to transmit and noticing a collision, wireless clients have to wait for an idle period on the channel before transmitting any data. If the channel isn’t idle, the client must wait for a random period of time and check again.
To address the second problem, the 802.11 standards recommend using a request to send mechanism. Under this scheme, any device on the network that wants to start transmitting needs to send a “request to send” (RTS) message to the AP, then the AP will respond with a “clear to send” (CTS) message, which allows the device to transmit its data.
Because these collision avoidance algorithms are based on waiting rather than detecting actual collisions, because there’s the additional transmission of CTS/RTS messages, and because there can actually be collisions that require retransmission of data, there is a lot of additional overhead in shared wireless networks that aren’t present on a wired network.
Unfortunately there’s really nothing that can be done about this. Wireless networks are highly prone to collisions by their nature of communicating over a shared medium: the air.
A final additional problem with wireless networks is how the number of channels available is very misleading. Even though the 2.4 GHz spectrum used by 802.11b and 802.11g has 14 channels available, the majority of channels available on the spectrum overlap significantly with one another.
This diagram from Wikipedia demonstrates the problem well:
The three rings in black show that there are only three non-overlapping channels which can be used in the 2.4 GHz range. This is not just about signals which should be targeted at a specific frequency bleeding over either. The 802.11 wireless standards require the use of modulation techniques (OFDM, DSSS) which use a 20 MHz frequency range spreading above and below the target frequency for each channel.
The 5 GHz range which can be used by 802.11n devices was designed to have less channel overlap, but still has 10 MHz intervals between channels with a spectrum size of either 20 or 40 MHz. In the 40 MHz configuration, which provides the best performance, you’re still going to get some amount of overlap.
The thing to be aware of here is that your neighbours running their wireless network might interfere with yours, even if you’re using a different channel. Try to pick a channel that is far away from those used by other wireless networks operating in the same area. If you live in any kind of populated area, it’s probably pretty unlikely that you’ll be able to find an uncontested part of the spectrum, given how common home wireless networks are these days.
Shared bandwidth, collisions and channel overlap are three additional reasons why you should take purported wireless network speeds with a grain of salt, and consider whether a wired network would work better for you in your home or office.
However, I don’t want to discount the incredible technological development that has resulted in widespread wireless networking in the past decade. I still think it’s magical that I can walk around my house with a video playing on an iPad over my wireless network, streaming directly from someone on the other side of the planet. New developments in areas like MIMO transmission for wireless networks are going to continue driving this technology forward in amazing ways in the years to come.
All the research and opinions in this article are my own. So please let me know if you see any mistakes or notice any points where I could improve.
1 This simple algorithm used by Ethernet ultimately beat the more-complicated token-based algorithms for avoiding collisions on LANs. This is why you don’t see technologies like FDDI deployed very widely any more. ^