This is the story of my decision to change our home wifi from Apple's Airport to a Linksys Velop mesh network.

So what exactly is wifi? Who 'invented' it? What is its history? How to get the best out of my wifi network? This webpage is not just a 'quick-and-dirty' description of me plugging in another set of wifi hardware. I always try to go 'one-step-further' and aim to understand what underpins the technology. In this particular case I just managed to 'scratched-the-surface' before being hit by a barrage of new and obtuse concepts and a mountain of abbreviations. In any case I will warn the reader when I decide to drift away from specific topic of installing my new wifi network.

What we will discover on this webpage is that wifi (or more generally wireless) is a utility much like water and electricity. You can enjoy it just by flipping a switch, but behind the scenes there are a multitude of technologies and options that affects its overall performance (all mixed up with a massive amount of incomprehensible jargon). And as with water and electricity, when your wifi network is not working perfectly you may have to get your 'hands dirty'.

I will try to describe the technical basics needed to understand my migration from one wifi network infrastructure to another. However if you are interested to learn about these topics upfront have a look at these three videos:
Five Fundamentals of RF (radio frequency) You Must Know for WLAN (wireless local area network) Success - this 30 min introductory video has a kind of 'sales header' lasting about 3:50 min. which you can jump over if you want. Topics covered include RF basics, channels, measurements, interference, and analyses.
Configuring AP's (access points) for Optimum Performance - this 30 min. video covers channel configuration and dual-band issues, there is a 'sales header' from 1:17 min. to 4:27 min. which you can jump over.
This third video on '
Understanding RF Fundamentals and the Radio Design of Networks' is a more in-depth 1 hour introduction from Cisco.

Why change?

One of the things that bugged me constantly was the poor
wifi connection in one of my Apple-based set-ups. This was not so much an issue of bandwidth as of coverage to ensure good connectivity.
What do we call it, wifi, WiFi, or Wi-Fi (or even wireless LAN with WLAN)? Wi-Fi is actually a trademark of the Wi-Fi Alliance and the brand name for products using the IEEE 802.11 family of standards. And we know that e-Mail became eMail, and finally email. So I'm using wifi.

My original network set-up consisted of a
modem connected to Apple's 2TB AirPort Time Capsule (base station or router) on one floor and extension of the wifi network using Apple's AirPort Express on another floor. Each floor was about 80 square meters, and the distance between the AirPort Time Capsule and AirPort Express was probably no more than 7-8 meters, but diagonally through one solid cement floor with reinforcing, then through one load-bearing wall, and finally through 2 normal brick walls. The problem was to have good connectivity between the AirPort Express and my computers, iPads and iPhones on both floors. Example, connection between the AirPort Express and my wife's little internet radio was sometimes flaky (random disconnection/reconnection) over a distance of about 6-7 meters and through two brick walls and two light-weight doors, plus a wardrobe. To get some level of connectivity I had to put the AirPort Express in an odd and overly conspicuous location.

I had more or less decided to buy another AirPort Express in the hope that I could extend the wifi connectivity and make everything nicely hidden away. Below we can see a 'typical' AirPort network with an
AirPort Extreme (i.e. without the Time Capsule backup) connected to two AirPort Express units to 'extend' the network, and with one of them connected to an older version of the AirPort Time Capsule for backups.

Typical AirPort Network

The problem solved itself when Apple announced in 2018 that it was exiting the wifi router market (e.g. discontinuing its 'Time Capsule', 'Extreme' and 'Express' products). My AirPort Time Capsule was the version announced in 2013 as a duel-band 802.11ac, and as many observers have noted Apple had not really developed a new wifi technology since then (e.g. emerging standards such as 802.11ax have not been implemented). It must also be noted that the AirPort Express 'extender' unit actually only implemented an earlier standard, the 802.11n, from 2009. That meant that when connected directly to the AirPort Time Capsule I was using one standard but when connected to the AirPort Express I was using a different and less performant standard. However, my problem was not really bandwidth or speed, but connectivity.
Later I will describe in more detail what the 802.11 family of standards mean, but this video is a good general introduction.

Internet 'Heat Map'

Often problems of connectivity are best visualised using a 'heat map' as above (check out this video for a do-it-yourself heat map). In this example we see an apartment with an internet access point on the wall and we can see the strength of the wifi signal gradually deceasing as we move away from the access point. The red area indicates that the internet connection would be poor, and thus potentially subject to random disconnection/reconnection.
We tend to forget that devices such as iPad's or iPhones (as well as portables and most desktop computers) are all equipped with radio chips that provide both
IEEE 802.11-based internet and Bluetooth connectivity. There is a constant exchange between the internet connection and the various devices used in todays domestic environment. One of the surprises in moving to a new internet hardware configuration is the number of devices that needed to be re-configured to link with my new wifi network.
If you are interesting in understand more about site surveys and 'heat maps' check out these
guidelines on WLAN deployment.

So what to do now? Well, Apple is selling the
Linksys Velop Mesh Wi-Fi system on their website, and a 3-pack is quoted at £399.95. On Amazon UK it's quoted at £329.99, and on Amazon Germany it costs only €279.99 (as of 13 Aug. 2018). Even on the Linksys website the price is quoted at $499.99 (on the other hand it is the only place I saw the units in black as well as in white). Check out this video review of the Linksys Velop hardware.
Alternatives to the Velop are Netgear's Orbi (€314.99 for 3 nodes), the Amplifi HD (€343.99), and Eero (€394.09).

Network Topologies

What is a mesh?

It is one type of local network (LAN) topology that (according to Wikipedia) consists of nodes that "connect directly, dynamically and non-hierarchically to each other, … to cooperate with one another to efficiently route data from/to clients". The alternatives, for example with the old Apple AirPort, were the star/tree topologies. The mesh network has been around since 1997-98 and was initially developed for industrial applications ca. 2006, but now there are a number of domestic products available.

Linksys Velop
Velop Topology
Home WiFi Diagram

One point mentioned in one of the reviews was that users are not sure that the Velop adopts the mesh topology. Apparently it determines whether to use a point-to-point connection, a star arrangement, a mesh, or a tree topology, depending on where the routers are placed and if there's any interference from other networks. It automatically selects the least congested channel, and will dynamically change to suit changing network conditions. So it will move users and devices between nodes and bands based upon what it thinks is faster. The same review also mentioned that Linksys claimed that a 3-node system could cover 550 m2.

Relation between RSSI and distance in the free space propagation model

A different review confirmed that for a number of different single node wifi networks the performance dropped off significantly at 10 meters and was very poor or non-existent at 15 meters. Above we can see how the RSSI (received signal strength indication) drops off as a function of distance in free-space (i.e. air). They also noted that many single node systems had problems broadcasting through floors in the 5 GHz band. The range of a single node Velop was no better than any other system, but the 3-node Velop claims to solved all the problems (at least according to their sales literature).

Questions about moving to a
mesh include the compatibility of a mesh network with the backup function of my AirPort Time Capsule, and of course the real benefits in terms of bandwidth, speed and connectivity.

So first things first, what was
the 'speed' of my internet connection and wifi network? What is a fast or slow connection? How should I look at the problem of loss of connectivity?

Everyone uses one or more of
the free 'speed test' apps, which are all a bit different and will produce different results. And of course everyone does the test with different devices, mobile or fixed, - iPhone 7, a Samsung, iPads, PC's or MAC's, … And we often use different browsers …, and even leaving some tabs open in the browser is said to influence a speed test.

Just using Safari on my MacBook Pro I ran a series of tests with 10 different speed test apps. They registered download speeds of 27.75
Mbps, 27 Mbps, 16.5 Mbps, 23.25 Mbps, 21.6 Mbps, 18.18 Mbps, 10.8 Mbps, 24.7 Mbps, 21.5 Mbps, …and even a 2.6 Mbps.
There are numerous problems with using these speed tests. They all do the same thing, tag an outgoing message and analyse the return message. However, internet service providers (ISP) could prioritise requests from known speed test websites, and many people think that most of the speed test tools are written and owned by different ISP's, and therefore by definition are biased. Most of the free speed test apps provide limited functionalities and on top of that they do not describe how they work or what they are actually measuring. Also some of the tests are irritating with all the ads, and some even insist on deactivating ad-blockers.

Speed testing

I must admit I liked the look of '
speedtest' on sourceforge.net, because it does a lot of different tests and it explains what they mean (and it's an HTML5 implementation). One of the problems is of course that the more you are told the more you need to understand, and you quickly learn that it's more complicated than you first thought.

Basic Speed Test Screen

Round Trip Time

Round Trip Time - latency and jitter

We are told that the 'latency/ping' is a
round trip time (RTT) measured over websockets, and that lower values are better. We are also told that it is a close approximate to a ping. The basic idea is that some kind of message is time stamped and sent, and a return message is crafted which includes the original timestamp, thus yielding the round trip time. Ping dates from 1983 and is a test of your client connectivity to a host (a server somewhere on the network) over an Internet Protocol (IP) network. Ping uses the Internet Control Message Protocol (ICMP) which is typically used for diagnostics and control purposes and not for exchanging data between a client and a host. WebSocket was standardised in 2011 and is a communication protocol (for transmitting data) over a single TCP connection (e.g. like sending or receiving an email, or asking for and receiving a webpage). So ping is a command-line instruction whereas RTT using websockets is implemented in an app inside a web browser.

We should be careful to understand what we measure with speed test apps. What they test is the connection from a specific device over wifi and on through the internet (with your ISP) to one or more servers pre-selected by the speed test app, then back again. One immediate problem is that some speed tests will just connect to a server nearby, whereas others may connect to a family of servers distributed around the world. Now most people presume that given that the local wifi network is usually much, much faster than the internet link to the test server, we must be really testing the internet connection rather than the local wifi network. There is a lot of information available to suggest otherwise. Tests of back-end and front-end (everything after the HTML arrives) response times showed that desk-top machines were responsible for 85% of the delay until the requested webpage appears on the screen. In the case of mobile devices, they were responsible for 97% of the delay before the webpage showed up on the screen. It we turn to latency some studies measure the time it takes for a requested webpage from a content delivery network to appear on the users screen and they saw for desktop machines a variation of 65 ms to 145 ms (against the network claims of 20-30 ms for their backbone performance). Median latency for mobile devices was 190 ms but with a long tail suggesting that some mobile users are looking a latency of 900 ms or more.

Is an RTT of 77 ms good? And why does it appear as almost two different processes, one for a group of about 70 packets and a different one for the rest? You can see that an RTT of 77 ms is not representative of the 200 measurements.

For most domestic users an RTT of less than 50 ms is great, and anything up to about 150 ms is fine for most purposes (
gaming, streaming, browsing, etc.). People say that over 150 ms you might experience some 'lag' when gaming. Mind you, 15 years ago 200 ms was considered really good. Gaming appears to be the big test of RTT but we have to remember that in order that other players' movement and actions appear smooth on a gamers' screen there is a small buffer of time inserted anyway between when the gamer gets the information from the server and when it's shown on the screen, and this is normally around 50-60 ms. However longer delays can produce lots of problems with character movement, crosshairs not being on the right target, etc. RTT's of 300-400 ms can make some games unplayable, and pro players are always talking about their need for very fast networks.

So what about this odd jumping from a perfectly acceptable RTT of around 50 ms to a difficult to explain RTT between 80 ms and 270 ms?

Test One Test -two

RTT is affected by several factors, the network bitrate capacity (e.g. bandwidth can be affected by many different things including the physical type of cable used), the distance the packets have to travel to the test server and back to the client, the number of network hops, the time it takes to process the bits (or packets) in both the client and the test server (e.g. server response time), network congestion, and the time spent in buffers. In an ideal world latency should be determined by the physical distance the packets have to travel. However the communication protocol might involve several handshakes between the client and server, for example TCP involves a three-way handshake before data (TCP segments making up packets) is sent from a server to a client. Equally before a TCP session can be opened, applications have to look up the address of the destination server on a Domain Name System (DNS). Security parameters also need to be checked to ensure that the identity of the server is verified.
From the point of view of TCP when there are large delays that suddenly occur it has to assume that outstanding packets or segments were lost and it will retransmit them. An additional problem can occur when in fact the original segments have actually been transmitted and received, and the client then receives the same segments again in a retransmission. The client machine may well have transmitted the acknowledgement of receipt for the original packets, which the server may interpret as being an acknowledgement for the retransmitted segments (acknowledgements do not contain information on what they are acknowledging). The server may then start to transmit outstanding segments using a
slow start algorithm, but the client may already have received these segments. Naturally the server has paused the transmission of new segments, and the client has to workout what to do with all the duplicates and out of order segments, and so on … This is about the limit of my general understanding of how such networks function, but we can see that they are far more complex than we would first imagine, and that a single latency spike can generate quite a lot of confusion and tail-off before the transmission is resumed (even if we are still measuring delays in 100's of milliseconds).
On the gaming
blog sites they spend an inordinate amount of time talking about high RTT's. They uninstall and reinstall the software, check and clean the hard-disks, uninstall useless programs, update the graphic drivers, reconfigure the firewall, reset the router, disable security checks and switched off the anti-virus software, some will even change ISP. One particular report from Cloudflare showed how a web performance and security provider tried to work out the reason for just 5 latency spikes in a couple of hours of server operation. Other reports put the blame for latency spikes on the chipset in the modem or even simply on the distance to the base station (e.g. link outage). Yet others talk about a transmission power level being too high, or heavy internet traffic, or simply router congestion, or poor bandwidth, etc. Most hardcore gamers will drop using wifi and cable gaming machines directly to the router.

And the entire above discussion is all about a single latency spike occurring occasionally, and not a sequence of latency spikes occurring together. So really we are no more advanced in understanding the origin of the bunches of latency spikes I've been seeing.

In any case, we can see that an averaged latency of 77 ms, or 50 ms, or 80 ms hides a massive variation between 32 ms and 278 ms, and is in many ways not representative at all of the variations we see both within tests and between tests.

The other measure is '
jitter' which varied between 0 ms and 207 ms. Jitter is usually defined as the deviation from an expected value, but I think in this case it is the variation in latency as compared to the previous measurement. So basically it is description of how the network performance jumps around and is inconsistent. Now TCP is actually designed to deal with jitter and the way it impacts on communication. And network routers include buffers that can compensate for jitter and delays in the range 60-100 ms, or even up to 200 ms, but packets that exceed those delays will be lost and must be retransmitted. Network performance can be more or less good, but what is often a problem for gaming and VoIP (i.e. real-time applications) is having an unpredictable latency, or in other words a high jitter. Some gamers will complain about a jitter of 20 ms or more.
One major wifi network hardware provider recommends for enterprise networks that packet loss should be less than 1% and that jitter should be kept below 100 ms.

On a domestic level many people complain about
network congestion in the evenings, but what they really mean is a higher latency and jitter. Usually the answer given is that the internet is crowded because the same fibre connection is being sharing with the neighbours and everyone is watching Netflix at the same time.

Download Quality

Download Speed and 'Buffer Bloat'

This particular speed test appears to define download quality as average
download speed and so-called 'buffer bloat'. This is clearly just one part of Quality of Service (QoS), but a high download speed is what every client wants and what every provider (over)sells. Different tests taken at different times and in different physical locations confirmed that the average download speed of my Apple-based wifi network was in the range 25 Mbps to 28 Mbps. Buffer bloat is a delay caused by excess buffering of packets of data, and Wikipedia tells us this buffer bloat causes latency and jitter. My tests produced buffer bloat in the region 50 ms to 80 ms. As far as I can tell this is pretty good since it falls within the range 45 ms to 80 ms for a good fibre networks. Buffer bloat has been measured in the range 150 ms to 500 ms for the less performant service providers. There is a whole website bufferbloat dedicated to the understanding and reducing undesirable latency.
There is usually a lot of 'hype' about download speeds and we tend to forget that Apple recommends a minimum data rate of only 12 Mbps, and strongly suggests to enable 12 Mbps and 24 Mbps as two mandatory data rates as best practice for iOS and Mac devices on commercial WLAN's. So my network speed of 25 Mbps to 28 Mbps is pretty good.

Turning to buffer bloat, in the eyes of many experts this is the real cause of poor internet performance. It causes network congestion and even network collapse (what some people call 'congestion collapse'), but what does it really mean? Practically it means that you sit waiting for things to happen, and probably finally give up and do something else. Much of the way the internet works is on a 'best effort' and 'as fast as possible' basis. There is a risk that buffers fill up, cease to work as buffers, and then just cause delays. This 'buffer bloat' causes network latency. The experts think that buffers encourage network congestion because they adversely affect the congestion avoidance built into the network transport protocols. The networks are designed to deal with 'timely' packet drops due to congestion, but not (overly) large buffers filling up, staying full, and sending out delayed packets in an 'untimely' way. And given that memory is cheap, hardware manufacturers are always adding more and bigger buffers.
I've already noted that the time it takes for a message or a webpage (all in the form of data packets) to get to the client is made up of transmission delays, processing delays, and queuing delays. Given that the requested packets 'hop' across a variety of different networks there will always be a bottleneck (lowest bandwidth) somewhere. So the transmission protocols all try to fill the 'pipe' with as many 'packets in flight' as possible to keep latency down. Buffers are placed in front of the links just in case packets arrive when the link is in use. Obviously you try to put the buffers in the places where there bottlenecks. Not having buffers would require a transmission to be completely predictable and smooth, and that would require a global synchronised timing system that would be complicated, expensive, and at the end of the day highly restrictive (think of the old analog telephone network). So buffers are a key part fo the solution, and in fact the early internet was plagued by insufficient buffering. It was at this moment that '
slow-start' and congestion-avoidance algorithms were introduced. Take 'slow-start', what TCP tries to do is determine how fast the link is, and it controls the sending rate when it detects that packets are being lost. Buffers were introduced that could hold the same number of packets as the number that might be travelling on that particular link. But in reality the exact location of an actual bottleneck is unknown because networks are shared and conditions change along the path chosen for each transmission. So buffering was introduced everywhere to try to ensure an averaged transmission delay of less than 100 ms. Now buffers became part of the 'pipe' and naturally TCP filled them up as well as filling up the 'pipe'. The 'persistent full buffer' problem was recognised in 1989. Sending messages about packet queues so TCP could slow down was the answer, but it has never been consistently configured and enabled in routers. And because memory is cheap, hosts, router manufacturers, and switches have added more buffer space. The result is 'buffer bloat'.

It is interesting to see that initially people (experts) saw the network slowing down, so they stopped their work to try to find the reason. And the network speeded up again. Finally they figured out that their own network hogging work was the actual cause of their painful network performance. Transferring large files produced bursts of bad network behaviour. A network protocol analyser (that costs $100's) showed lots of duplicate acknowledgements, multiple retransmissions, and lot of out-of-order packets, all packed together, then followed by more or less normal network operation. You can begin to see what the problems are. Imagine a message (lots of packets) gets buffered at some intermediary point. The buffer fills up and packets are dropped. But the destination does not yet know that packets are missing, and it will only know that when the buffer has been emptied and the initial set of packets delivered. So the retransmission request will be sent out late, and the destination will be blocked waiting for the arrival of the late packets, and so on. In addition take the 'slow-start', because the buffer is storing packets the sender does not get a packet-loss message, and will keep sending packets until the buffer is full (thus grossly over estimating the bandwidth of the 'pipe'). It is only when the sender receives multiple packet drop messages does congestion-avoidance step in.

Conclusion is that TCP does not react quickly to congestion because slow hops are massively over buffered, and on top of that a competing hop could be starved of traffic. Studies in 2007-2010 showed that buffer bloat was endemic because of over buffering at the broadband edge, and that all broadband technologies showed excessive latency for both download and upload. When we talk about 'edge' we mean the users device, wifi network and router, and the local ISP, or even the queue on the distant host server. If you are interested check out the
original article.

I wonder if these problems of 'buffer bloat' are the cause of the schizophrenic behaviour of my network RTT and jitter?

You can see
Download Consistency quoted at 85.1%, but usually I have a figure of around 97% to 99%. I'm not sure that there is a clear definition of 'consistency' but it's all about having a good download speed and a good consistency of service (i.e. low latency, etc.). And figures of 97% to 99% appear to be very good.


The next part of the test is
Upload Quality, or how fast can I load data up onto the network. Download is about streaming video or browsing the web. Upload can be about backing up to the Cloud, sending someone a video clip, or real-time applications such a VoIP or video conferencing. Most comments suggest that you don't need that much upload speed, and they often quote a 1-to-10 or 1-to-5 ratio between upload and download, i.e. for me they would say that 3-6 Mbps was more than enough. Naturally highly interactive and real-time applications such as video conferencing or massive multi-user games would need more.

Ppload Quality

It is interesting to see that systematically in the tests my upload speed started out really high and then dropped significantly in the latter part of the test cycle. Buffer bloat was usually more consistently in the 40 ms to 110 ms range, the above example is an exception. Consistency was poor at about 45% to 70%.

overall conclusion of these tests is that in all configurations my network will support all the usual web services such as Netflix, YouTube, VoIP, Skype, and live streaming.

Before we move back to the installation of my new LinkSys Velop mesh network I tried to '
re-set' my existing network. The most common advice on how to improve the performance of a network is to (a) re-start all the hardware, (b) to remove as much hardware as I can from the network, (c) to close down running background tasks and open tabs in the browser. Re-testing my network showed that I still had the same problem of high latency and jitter.

So the next step is to look more closely at what is actually running on my network.

WiFi Scanning

I used the
WiFi Scanner app to get an idea about what was running in and around my network. Living in an apartment building I'm surrounded by wifi networks operating mostly in the 2.4 GHz band, but a few also in the 5 GHz band. There was a variety of technology being used, but I was the only one using Apple products. Placing my MacBook Pro near my AirPort Time Capsule, and using the 5 GHz network, gave me a signal strength of -57 dBm, a noise level of -92 dBm, and a signal-noise-rate of 35 dB.
We should also keep in mind that everything from my iPhone to car alarms and microwave ovens use the 2.4 GHz band.

Signal Strength

What does a
signal strength of -57 dBm mean? Firstly dBm means decibels relative to a milliwatt. Signal strength should be measured in milliwatts (mW) but it usually will end up with a lot of zeros, e.g. -40 dBm is 0.0001 mW. Secondly with dBm a signal of -30 dBm is stronger that one of -80 dBm. Also dBm is a logarithmic scale, so a -3 dBm different between say -40 dBm and -43 dBm is a drop of 50% in the signal strength, and a drop of -10 dBm (from -40 dBm to -50 dBm) is the same as a factor of 10 reduction in signal strength. So a signal strength of -57 dBm is really very good (and is better than the -65 dBm usually recommended for VoIP, streaming and support for mobile devices).
In fact one major wifi network hardware provider recommends an optimum cell edge signal for iOS devices of -67 dBm or better, whilst Mac computers could accept a signal strength of -72 dBm (always presuming that the SNR is better than 25 dB).

802-11ac Receiver Sensitivtiy

Signal strength is one thing but what is perhaps more important is receiver sensitivity (could be equated to minimum detectable signal), and where greater sensitivity means longer range. Experts will often talk about any user device as a receiver, or radio, or wifi client. Receiver sensitivity or signal strength is all about the ability of a receiver to decode frames. Now even here we have a new word 'frames', but what does that mean? Well, your computer will take your data and put a first header on it, this is according to the User Datagram Protocol (UDP) which includes a checksum for data integrity and what is called a port number. This first step creates a 'segment' or a so-called Protocol Data Unit (PDU). This type of 'segment' is not the same as a data segment or a network segment, so it is information that is transmitted as a single unit. Now that the data is ready to be transported, it moves to the internet. Here the Transmission Control Protocol (TCP) will put an IP header on the data (which now includes the UDP header). This protocol orders the data for sending, adds error-checking, and includes a way to receive notifications on the delivery of the data to the destination (so it includes information on the source of the data so that it can receive back acknowledgements). It is this data unit that is called a 'packet'. Now we have to send (or transport) the data, i.e. 'link' the data to a destination using wifi, Bluetooth, Ethernet, etc., and again a header and footer are added to make up a 'frame'.

Segment Packet FrameEncapsulation Payload

The segment, packet and frame, are part of the OSI model of computer networks, with 'segment' being in Layer 4 (the transport layer), 'packet' in Layer 3 (the network layer), and the 'frame' in Layer 2 (the data link layer). The image we should retain is of data inside an 'segment' envelope, then inside a 'packet' envelope, and finally inside a 'frame' envelope. To send data you have to wrap it in what looks a bit like a Matryoshka doll to protect its integrity, and when you receive data you have to unwrap it and check that none of it has been lost, damaged or tampered with in the trip. Check out this video on 'packets to frames'.
Returning to the ability of a receiver to decode frames, what we see above is mention of the
Modulation and Coding Scheme (MCS) Index Values which is a combination of "number of spatial streams + modulation type + coding rate" that tells us what the 'over the air' data rate of the link is. What does that mean? In the 802.11 set of standards and in particular with Multiple-Input and Multiple-Output (MIMO) systems can run up to 8 spatial streams (we may not have the hardware to do that in practice). Modulation is about the way the data (digital bit stream) is 'carried' by the carrier signal. The more complex the modulation, the higher the data rate. Keying is the way a digital signal is transmitted over an analog channel, and Wikipedia list four fundamental digital modulation techniques (two of which are mentioned in the above diagram, namely PSK and QAM). The coding rate describes how much of the data stream is being used to transmit usable (or non-redundant) data, the remaining part of the data stream is redundant. With the introduction of 802.11n the MCS now also includes channel width and guard interval as variables, and there are now 77 different types of MCS for both 20 and 40 MHz channel widths, eight of which are mandatory for the 20 MHz channel width.
The final detail in the above diagram is the so-called '
channel width'. We will look in detail at channels later on this webpage. For the moment we must accept that in the 802.11 family of standards a frequency band such as 2.4 GHz is actually a band operating between 2.4 GHz and 2.5 GHz, and is divided into 14 'channels' spaced 5 MHz apart, except for the 12 MHz spacing before the 14th and last channel. We have to remember that it is virtually impossible to transmit exactly one frequency. The hardware generates small variations and those variations vary as function of changes in the operating temperature of the electronics. And modulation (encoding of data for transmission) inevitably 'spreads' the signal around a specific frequency. So a default width of 22 MHz was originally given to each channel, and that means that channels inevitably overlap one another. To avoid interference specific 802.11 network protocols require 16.25-22 MHz of channel separation, so it is only possible to use up to 4 channels in the 100 MHz between 2.4 GHz and 2.5 GHz. The exact channels used and their width depends on the exact protocol and data rate selected, the electromagnetic environment where the equipment is used, and the specific regulatory regime (i.e. US, Europe, …). In Europe (and most of the world but not the US) the default channels for 802.11b are channels 1, 6, 11, and 14, each with a channel width of 22 MHz. But depending upon the standard protocol used this can change. For example, with 802.11g/n a 16.25 MHz sub-carrier is used, permitting the use of 4 channels (1, 5, 9, and 13), with a channel width of 20 MHz. Just to be complete, a channel width of 22 MHz corresponded to the early 802.11 standards, but newer standards use a channel width of 20 MHz.
For the understanding of the above diagram what we see is that the ability to distinguish a good signal from background noise depends upon the modulation and coding system (MCS) used and the channel width. Increasing the channel width increases the ability of your client device to decode frames for a given signal strength (relative to background). In simple terms if you increase the channel width (for the same MCS) you allocate more bandwidth, you increase the potential throughput of your device, and therefore the wireless network can operate faster. Some people draw the parallel with roads, the wider the road the more traffic (data) it can carry. But what are the problems with this? If you increase the channel width from 20 MHz to 40 MHz you must still ensure that channels do not overlap, so effectively you are reducing the number of usable channels in the 2.4 GHz band from 4 to 2. But this means that you increase the possibility that your wifi network overlaps with other wifi networks (or 'radio' emitters) operating in the same location and using narrower channels that now fall within you wider channel. You may have increased the bandwidth of your device, but it is now having to process more interference (more specifically so-called
co-channel interference). So our (data) road now has more cars on it, and there is a higher risk of traffic congestion. In addition, the client device will need a 3 dB increase in receive strength for the same MCS, this is the same as saying that you are reducing the operational range of you wifi network. And on top of all that increasing channel width will consume more power. The opposite is equally true, moving to a narrower channel will reduce throughput (bandwidth), but will also reduce interference, power consumption and increase operational range. Check out this cool little animation video on what the Open Systems Interconnection (OSI) model really means. And if you are interested in understanding more about channels and frequency bands check out this primer video.


What does a
noise level of -92 dBm mean? Noise on a wifi network is often interference being picked up from other networks, but it can also include noise from microwave ovens, cordless phones, Bluetooth devices, wireless devices such a video cameras or game controllers, and even from fluorescent lighting. Here the noise level is measured also in -dBm but in a range of 0 to -100. The closer the value is to -100 dBm the lower the noise level, e.g. -92 dBm is a lower noise level than -20 dBm.
Excessive noise can occur if the desired signal is too weak (left-hand chart), or if the noise level encroaches even temporarily on to the desired signal (middle chart), or if something has changed in or around the location of the router and/or the users device (right-hand chart).

Signal Too Weak Noise Too StrongGood and Bad Noise Levels

The data is sent in packets that remain intact, however the physical transmission uses an analog signal, and this signal can be significantly degraded in quality. The system will have to discard damaged or incomplete packets and wait for them to be resent, and the user will perceive this as a slowing down of the connection. Further degradation will result in a dropped connection. On the other hand if the signal is good, but the noise is excessive (possibly in the form of spikes), then this interference is probably from others sources of electromagnetic radiation that occasionally switch on/off. If the conditions change and we see signal and noise values as in the right-hand chart then you may need to move the router or relocate the users access device in relation to the router. It is also possible that there are too many wifi networks competing on the same channel.

Below we have an example of noise (interference) in channel 1 where the height of the peak describes its intensity and the colour described what might be considered its duration (blue would be rapid on/off and red something that continues for a while). Here the intense (red) interference peak turned out to the users own hands-free telephone headset. Check out the full video of this example.

Metageek Example

Signal-Noise-Rate (SNR)

What does an
SNR of 35 dB mean? Firstly we need to understand what signal-noise-rate (SNR) actually means. This should in fact be called 'SNR margin', and it is the margin by which a signal exceeds the noise level, and is measured in dB. In our example we had a signal strength of -57 dBm, and noise level of -92 dBm. So the different between the strong signal of -57 dBm against a background of -92 dBm, yielded a signal-noise-rate of 35 dB.
Apple noted that a signal-noise-rate (signal minus noise) of between 25 dB and 40 dB is very good, and above 40 dB is excellent.
Where we have to be careful is with
signal-to-noise ratio, because along with signal-noise-rate both are often simply called SNR which can be very confusing. In both cases a higher figure means that the signal is clearer, and there will be less interference from noise.

We were sitting near my AirPort Time Capsule, but
what happens when we moved downstairs? The wifi network was 'extended' downstairs using an AirPort Express. At about 2-3 meters from the AirPort Express the signal strength actually remained about the same at -58 dBm, with a noise of -95 dBm, and thus a SNR margin of 38 dB. We could see that when we were downstairs near the AirPort Express we were able to keep a good clean internet connection. If we were to disconnect the Airport Express, our internet connection would depend only upon the Time Capsule upstairs. The signal would have to work through one solid cement floor with reinforcing (attenuation of at least 8 dB), one load-bearing wall (attenuation 6-8 dB), and 2 normal brick walls (attenuation of another 3-4 dB per wall).

However if we look to my wife's small internet radio sitting in our downstairs bathroom then things changed considerable (for the worse). Despite being within 6-7 meters of the AirPort Express the signal had to go through two brick walls and two light-weight doors, plus a wardrobe. This explained the drop in signal strength to -74 dBm, against a noise level of -95 dBm, and thus a substantial drop in the signal-noise-rate to 21 dB. This SNR margin would be classified in the 'poor' or 'low' range 15-25 dB, and could amply explain the flaky connectivity.

WiFi channel congestion

The topic of wifi interference and specifically channel congestion is going to be important throughout the rest of the webpage, and as such I will first touch on the history of wifi, the development of the 802.11 family of standards, the importance of 'channels' and what does it all mean in practice.

The wifi scanner app provided the above information about my wifi signal, noise, and signal-noise-rate. But it also provided quite a collection of other data. What the scanner app does is to collect signals received by a client device (my MacBook Pro) whether from my wifi or from the detectable wifi networks of my neighbours. It identifies the
SSID (service set identifier) or network name (the name given to the wifi network by the owner or the default provided by the manufacturer) and the BSSID (basic service set identifier) more commonly known as the MAC address a unique 'media access control address' which is 'burned-in' to a device at manufacture. We can also see who was the wifi hardware vendor. The scanner also measures the signal and noise levels, the channel used, its width and the band, the mode adopted (according to IEEE 802.11), the type of security used, the maximum rated speed, and the last time that the wifi network was seen by the scanner.
For example, our apartment is next to a boutique hotel, and we can immediately 'see' their 'guest' network. The network hardware is from the US company Extreme Networks. We know that it is one of the older version because it is does not implement 803.11ac (only 803.11b/g/n) and thus only operates with a maximum rate of 144 Mbps. We can see that (in our downstair bathroom) its signal strength is -91 dBm against a noise level of -92 dBm, thus a very, very weak signal. In fact the signal is so weak that its detection comes and goes. We can also see that it operates in the 2.4 GHz band, and uses the default channel width of 20 MHz, but has been configured to operate in channel 6. The owners have implemented the default Wi-Fi Protected Access II (WPA2) security protocols, as recommended by the Wi-Fi Alliance (the same security protocol is used by all the networks I've detected). Wi-Fi Scanner also gives us a multitude of additional information, such as the fact that it had enabled the 20 MHz SGI, and disabled the 40 MHz SGI. SGI refers to a 'guard interval' which is simply a feature designed to place a small interval between the transmission of each packet so that echoes that fall within that interval are ignored and distinct transmissions do not interfere with each other.

We have entitled this sub-section 'congestion', more specifically network congestion or even more specifically 'channel congestion', which has some similarities to traffic congestion on our roads. We are going to have to delve a bit into the history of wifi and of the 802.11 family of standards in order to understand more about the way wifi networks compete for bandwidth and the way the standards try to minimise congestion and co-channel interference.

The evolution of wireless - you can hop over this section if you are not interested

We are interested in wireless communication, and oddly enough wireless communication was invented before wired communication. In fact most experts talk about smoke signals being the first wireless communication, followed by technologies such as the heliograph, signal flares and semaphore flags!
In the 1820's the basic features of
electromagnetism (called electrodynamics at the time) were discovered by by Hans Christian Ørsted (1777-1851) and André-Marie Ampère (1775-1836). Functioning versions of the electrical telegraph followed in the early 1830's, and in 1837 the first version of the Morse code was demonstrated. Strictly speaking the Morse code was a digital signal but not a binary code since there were five fundamental elements, although this does not mean that the Morse code could not have be represented as a binary code. Interestingly Jean-Maurice-Émile Baudot (1845-1903) developed the Baudot code as a different character set (a way to encode characters, i.e. letters, numbers, punctuation marks and white spaces). It is credited with being the forerunner of the ASCII character coding and as such is claimed to be the first binary code that was digital (the baud was named after Baudot). The baud (Bd) is the symbol rate or the number of signalling events or waveform changes per unit time (pulses per second) using a modulated signal.
In 1832 came the
telegram using an electric telegraph (post-1816) and the creator Pavel Schilling (1786-1837) was the first to put into practice the idea of a binary system for signal transmissions. In 1865 Caselli (1815-1891) demonstrated the Pantelegraph a forerunner of the commercial telefax machine. The fax was a device that scanned a document, converted the text or images into a bitmap, and transmitted it through the telephone system in the form of audio-frequency tones. In 1924 we had the radiofax, which was an AM radio transmission of a monochrome image of a weather chart. But it was only in 1966 that Xerox introduced the modern fax machine that could be connected to any standard telephone line (they had just invented the plain paper photocopy machine in 1959). Alongside the telegram and the telefax, the land-line based teleprinter was also being tested in 1849, and the coding system of Émile Baudot was adopted in 1874 (later several different coding systems were used, all based on a modified Baudot system). By WW II the teleprinter was the principle distribution method used by the news services. In many ways it was no more than an electromechanical typewriter but it could create punched tape as a form of data storage (and it was my first point of contact with what were back in 1971 mainframe computers).
We tend to forget that the first transatlantic
telegraph cable was laid in 1858 (it broke 3 months later and was replaced in 1866), but it was only in 1864 that James Clerk Maxwell (1831-1879) derived the wave form of the electric and magnetic equations and concluded that light itself was an electromagnetic wave. In 1880 Alexander Graham Bell (1847-1922) demonstrated the Photophone, a device for transmitting speech on a modulated beam of light. Initially sound was used to distort a mirror and thus 'modulate' a beam of light, however the basic concept finally found its place in the form of fibre-optic communication that became popular in the 1980's (a necessary component was the laser developed in the 1960's) . It was in 1888 that Heinrich Rudolf Hertz (1857-1894) conclusively proved that both light and 'electrical disturbances' (electromagnetic waves) were both forms of electromagnetic radiation obeying the Maxwell equations. In 1895 Guglielmo Marconi (1847-1937) demonstrated the first radio communication ('wireless telegraphy'), which was by 1901 being used for ship-to-shore and ship-to-ship Morse code. Marconi patented a complete wireless system in 1897, however we should not forget that Alexander Stepanovich Popov (1859-1905) also demonstrated the use of radio waves to transmit messages in 1896. The technique was very, very rudimentary, with a Morse code message sent by energising a rotating commutating spark gap (these transmitters are now illegal), and the spark would produce a brief burst of electromagnetic radiation which could be distinguished from the background noise in the receiver. It was more like a proof-of-concept, rather than a viable practical device, although there were systems that could produce up to 10,000 sparks/second. Next (ca. 1913) came the vacuum tube as an electronic oscillator able to produce continuous waves of a pure radio frequency (this was called radiotelegraphy). Using a simple telegraph key the continuous wave could be turned on and off (so-called on-off keying), producing pulses of different lengths ('dots and 'dashes' of the Morse code). The landline teleprinter had been introduced in 1849, and in in 1922 a radioteletype (RTTY) was used to print telegraphs between an airplane and a ground radio station. Services were introduced from 1931, and the US military adopted the so-called Frequency-Shift Keying technology and radioteletype was used during WW II. A radioteletype station consisted of a teleprinter, a modem, and the radio transmitter/receiver. The teleprinter was the keyboard, and later versions acquired the perforated tape reader, then a storage media such as a floppy disk, and later still a visual display unit (VDU). Initially the modem was a device that would connect teleprinters over ordinary telephone lines (instead of leased lines), and it was used during WW II before become a mass-produced item in the late 1950's (albeit in the form of an acoustic coupler).

For many years radio and wireless meant the same thing. The British called it wireless because the receiver was not linked by a wire to a transmitting station, and the Americans called it radio because the transmitting station radiated electromagnetic waves.

It is amazing that numerous transatlantic cables were laid (starting in 1858) but they were reserved for telegraph transmissions until 1927 when radio-based telephone services were tested. The
first transatlantic telephone cable was finally laid in 1955 and carried only 36 telephone channels. As an aside we often hear about the hotline established in 1963 between Washington and Moscow. The common 'image' of a red telephone never existed. Until 1986 the link was by teletype, and then it was by fax. Finally they moved to email in 2007.

'Radio' or 'wireless' is almost the perfect example of how deep theoretical concepts eventually become everyday artefacts. We start with Maxwell (1865) through to the
Nobel Prize winning Marconi (1897) where the concept of electromagnetic waves was developed and experimented. Then we have the technical development phase which was all about the vacuum tubes of John Ambrose Fleming (1849-1945) and in 1906 the amplifying vacuum tube (triode) of Lee de Forest (1873-1961), the man who claimed that he had made, then lost four fortunes. These were key technologies in the development of long-distance radio telephony. And finally came radio broadcasting and commercialisation. The earliest radio systems were continuous wave transmissions, however amplitude modulation (as in AM radio) was demonstrated for voice in 1900 and for music in 1906. WW I accelerated the development of radio for military communications, and vacuum tubes were used to build radio transmitters and receivers. After the war many of the first radio stations were classed as experimental radio-telephone systems or point-to-point communication to ca. 1920-21. Only then did some radio stations start to receive a broadcasting license. After that radio technology advanced quite rapidly to enable transmissions over longer distances with better quality, less power, and smaller, cheaper devices, first enabling public and private radio communications, then television, and more recently wireless communication.

In parallel with the development of the telegraph, telegram and telefax,
Bell (1847-1922) obtained a US patent in 1876 for the electric telephone. But we had to wait until 1983 for the introduction of the still analog cellular telephone, although hand-held mobile phones had already been introduced in 1973. The history of the telephone shows that the POTS (Plain Old Telephone Service) very gradually evolved from the rotary dial, to push-button telephones (1963), and from the first mobile phone call (1946) to the first GSM mobile phone network (1991). The original GSM standard is commonly called 2G (a digital cellular network) to differentiate it from 1G (the older analog cellular network). And yes there was also a 0G which was a pre-cellular system that used the public switched telephone network and became available just after WW II (and there was even a 0.5G which was the commercial equivalent of the 0G). For those who are interested in the evolution from 0G to 5G check out "Evolution of Mobile Wireless Technology from 0G to 5G".
Of specific interest to the history of wifi is the development of what is usually called '
mobile radio', wireless communication using radio frequencies and where the access devices are movable. The devices could be hand-carried (like a walkie-talkie) or vehicle mounted (or on aircraft, or ships, trains, etc.). The distinction between radiotelephones and two-way radio is blurred, with the radiotelephone for simultaneous talk and listen (full-duplex) over radio and interconnected with the public switched telephone network, whereas two-way radio is (or was) a push-to-talk (half-duplex) system for communicating with other radios rather than telephones (really one-way broadcasting instead of two-way conversations). There were many problems with early systems. For example, they needed high voltages for the vacuum tubes but were installed in vehicles carrying six or twelve volt power supplies. In addition they initially operated in AM bands which were particularly susceptible to problems of electrical interference. There was a gradual evolution where the idea was to extend the telephony services of fixed networks to mobile subscribers using mobile radio networks. The transition was through radio paging networks which were quite popular from the 1950's through to the mid-1990's (a good example was Eurosignal which operated between 1974 and 1997). In parallel with this came the cordless telephone (ca. 1987 for the earliest analog versions) and today there is huge installed base operating in the 900 MHz band, and newer versions operate in the 2.4 GHz and 5.8 GHz bands. I have already mentioned the cellular telephone which first appeared as a hand-held mobile phone in ca. 1973 (weighing 2 kg), but which was finally commercialised in 1979-81. Wikipedia is quite complete in taking us back to the so-called 0G services or pre-cellular mobile radio telephones developed ca. 1949 (and 1G was also an analog system). We had to wait until the deployment in 1991 of GSM, the European 2G system which was a digital, circuit-switched network for full duplex voice telephony. We would then have to wait until 2008 and 4G for a fully digital packet-switched mobile network. An important concept in cellular telephony is the cellular network. Some of the earliest services only allowed three customers in a city to make mobile telephone calls at the same time. With the concept of the cell, a wireless link is provided to the customer from a local hexagonal cell site, and where the honeycomb of cells together provide radio coverage over a wide geographic area. This concept provided higher capacity (through frequency reuse), requires less power from the mobile devices, and finally covers a larger area that a single terrestrial transmitter (no horizon limit, etc.).

1G to 5G

As the standards and handsets have evolved, so have the cellular networks, and in particular as the power output of the handsets has gone down so the cell size has shrunk.

Shrinking Cell Size

The transition from analog to digital

I found it incredibly difficult to find a coherent narrative between (say) the first commercial broadcast radio stations (1920-21) and the emergence of
mobile telephony and the internet in the early 1980's. And it does not help that the word 'analog' was first used as a technical term in the 1940's, but to define a class of computing technology. In fact analog (or analogue) derived from analogy, and was used to describe how a model could be used to map between two physical phenomena.
As we look at the emergence of wifi it is wise to keep in mind that alongside the gradual development of electrical, wireless and digital communications we have the invention of the first digital computer the
Z3 in 1941, and the first commercial digital computer UNIVAC I in 1951. We have the first commercial microprocessor in 1971. And we have the first digital audio recorders with reel-to-reel decks introduced in 1972, with the first music played by a computer (so a kind of digital audio recording) dating also from 1951.

When you look at the radio spectrum there are only two resources available, frequency and time. So you might approach the problem of multiple use by allocating part of the spectrum (division by frequency) or allocate access at different times (division by time). You might then consider ways to allocate the entire spectrum to more than one user all the time using some kind of identity code.

 In CDMA, each bit time is subdivided into m short intervals called chips. Typically there are 64 or 128 chips per bit. Each station is assigned a a unique m-bit chip sequence. To transmit a 1 bit, a station sends its chip sequence. To transmit a 0 bit, it sends the one's complement of its chip sequence. No other patterns are permitted. Thus for m = 8, if station A is assigned the chip sequence 00011011, it sends a 1 bit by sending 00011011 and a 0 bit by sending 11100100. 
 Increasing the amount of information to be sent from
b bits/sec to mb chips/sec can only be done if the bandwidth available is increased by a factor of m, making CDMA a form of spread spectrum communication (assuming no changes in the modulation or encoding techniques). In order to protect the signal, the chip sequence code used is pseudo-random. It appears random, but is actually deterministic, so that the receiver can reconstruct the code for synchronous detection. This pseudo-random code is also called pseudo-noise (PN).

Certainly one key moment was when early electrical communications started to use a single telegraph cable to carry multiplexed signals sampled from multiple telegraph sources. Time-division multiplexing was invented already in 1853, and was developed by Émile Baudot in the 1870's, but it was only in 1962 that digitised voice calls were multiplexed for transmission over copper-wire trunk cables. Each telephone call was encoded into a constant bit rate of 64 kbit/s, and multiplexed in to a 1.544 Mbit/s digital signal. Pulse-code modulation (PCM) was invented by Alec Reeves (1902-1971) in 1937. This modulation method digitally represents amplitude sampled analog signals, and in one form or another is still the standard for digital audio. Today a lot of effort has gone into compressing signals to reduce transmission bandwidth and storage requirements. Audio coding formats such as mp3 are well known to most people interested in audio compression, and anyone using a computer will one day or another come across the term codec, the software that encodes and decodes digital signals. One variation of PCM, called Adaptive Differential Pulse-Code Modulation (ADPCM), is used for VoIP.
Initially PCM was used in telecommunications applications, and only later did it appear in the recording and broadcasting domains. The first commercial
digital recording was released in 1971, the first all-digitally recorded album came out in 1979, and I remember buying a Sony CD player in 1982 when the first compact discs appeared (my music collection is now in the Cloud). PCM was first used in the transmission of speech by digital techniques in 1943. SIGSALY was a secure speech communication system used during WW II. It is said that this system was the first to transmit quantised speech, the first to encrypt telephone messages, the first to use PCM, the first to use speech bandwidth compression, and the first to use Frequency Shift Key (FSK is a way to transmit digital information through discrete frequency changes (so FM) of a carrier signal). SIGSALY was not the first application of the modem, however it did used a vocoder to digitise speech before encrypting it and encoding it as tones using audio FSK, and this was probably the reason why the acoustic coupler became the first mass-produced modem. Initially they operated at 300 bit/s, and with full-duplex operation (simultaneous in both directions) introduced in 1972 they were upgraded to 1,200 bit/s. Next came direct-connect modems that did not need the acoustic coupler, and in 1981 the 'smart' modem was introduced (always at 300 bit/s). In the 1980's the 'high-speed' modems managed 2,400 bit/s, using Phase-Shift Keying. With the development of echo cancellation speeds of 9,600 bit/s and 14,400 bit/s were achieved in the early 1990's. Mentioning the 1980's and 1990's implies commercial availability at accessible prices, because you could have bought a 9,600 bit/s modem in 1968, but it would have cost you $20,000.

It was in the 1980's that telephone companies started to focus more and more on the mobile subscriber. The cellular concept for frequency reuse had been successfully introduced in the 1970's. These analog systems provided operator-assisted calls (no handover) and used Frequency Division Multiple Access (FDMA) as a channel access protocol. This was one of the first ways to allow more than two devices to transmit and share the same communication channel (i.e. sharing the same network capacity).
This webpage is focussed on wifi and in particular my migration from one wifi configuration to another. Had I wanted to focus on the evolution of analog to digital communication technologies I could well have adopted the channel access protocols (or so-called media access controls) as the main descriptive narrative, since they are all about allowing more than two users to share the same network (wireless, bus, ring, point-to-point, etc.), and the protocols would take us right up to the modern-day TCP/IP model, and even beyond with wireless sensor networks. But it is a minefield of abbreviations and jargon, just check out below one of the simplest diagrams I could find.

 Basic Channel Access Taxonomy

We can now jump forward to 1992 when Europe introduced the 3rd-generation (3G) GSM for digital cellular telephony. The reason for spending a few moment here is that 3G focussed on topics of direct relevance to wifi, specifically improved data rates, greater end-to-end security, and an evolution towards an all-IP network infrastructure using advanced wireless technologies such as MIMO. The result was 4G which became commercially available in 2009.

The reason I keep mentioning cellular telephony along with wifi is that 4G and wifi are now two sides of the same coin, 'wireless internet access'. Today I can access the internet from my home computer or use my smartphone. I can access my home wifi with my smartphone, and I can buy a tablet with a phone subscription. Both are access technologies (edge-network technologies), both wireless, and both provide fast secure internet access. Both use similar connection and transmission support infrastructure. 4G goes through a wireless link to a cell-based station, and then on to a carrier backbone to the internet. WiFi goes to a base station, on to a wire network, and then on to a carrier backbone to the internet. Both support broadband data services, e.g. real-time voice, data, and streaming media. Both provide 'always on' connectivity. There are differences (beyond the hardware), with 4G using a licensed spectrum and wifi an unlicensed shared spectrum. Cellular telephony can enforce Quality of Service, keep interference in check, and it can adopt centralised congestion management strategies. WiFi imposes strict power limits of access devices, and users can't control interference from other RF sources that share the spectrum.

Digital broadcasting, where the analog audio signal is digitised, compressed using something like MP2, and transmitted using a digital modulation scheme,

The 802.11 family of standards

When you start looking at the 'history' of wifi you almost always see either the mention of 1971 and ALOHAnet in Hawaii, or just the mention of 802.11 first introduced in 1997.

We have already mentioned wifi and Bluetooth, but there are in fact three broad types of wireless networks. Firstly, there is the Wireless Personal-Area Network (WPANs) including technologies such as Bluetooth, ZigBee, and IrDA (Infrared Data Association). Although a class 1 Bluetooth device transmitting at 100 mW can have a range of 100 meters, most Bluetooth headsets and headphones are class 2 devices transmitting at 1.5 mW and have a range of up to 10 meters. Secondly, there is the Wireless Local Area Network (WLANs), of which Wi-Fi is the best known and can have a range in free-space of up to about 50 meters. Thirdly, there is the Wireless Wide-Area Network (WWANs), which appears to be a slightly more generic name for the 2G, 3G and 4G cellular networks, but also includes WiMAX.

Networking Overview

We should note here that WPANs are not Wireless Body Area Networks (WBANs) or Near-Field Communications (NFC), nor Wireless Near-Me Area Networks (WNANs). And we have in addition other types of wireless networks such as the Wireless Sensor Network (WSANs) which is a form of wireless ad-hoc network and has been applied for everything from street lighting to military 'on-the-move' communications. Many of these different wireless networks are part of the same IEEE 802 family of standards, with WLAN (802.11), WPAN (802.15), Bluetooth (802.15.1), ZigBee (802.15.4), WBAN (802.15.6), and WiMax (802.16). 802 is not just for wireless standards since it also includes Ethernet (802.3) which is a common feature in LANs, MANs and WANs (a MAN or Metropolitan Area Network sits between a LAN and a WAN in geographic coverage). The mobile phone is conditioned by a completely different set of standards, as are NFC and RFID.

802_11 Timeline

Above you can see the 802.11 timeline as published by the IEEE in 2016, and for a really detailed timeline of all published standards, superseded standards, and standards in 'process', check out this official IEEE 802.11 timeline. As I've already mentioned 802 is not the only standards organisation and we can see below that an important part of the day-to-day work of a standards working group is coordination with other standards bodies. If you want to know more, check out this article on 802.11 standardisation trends.

802_11 with other Committees

ALOHAnet and Ethernet

As we have already mentioned radio waves can carry digital information, either as a stream of bits or in packets of bits. And in fact '
packet radio' in many ways was a direct descendent of telegraphy, the teleprinter with Baudot code, and the fax. Packet radio adopted packet switching to transmit digital data via wireless, i.e. the same basic concept of a datagram that is used on the Internet.
In the 1960's people began to look at using existing telephone networks for
remote access to computer systems for terminals, and even in some cases hardware sharing. But by the late 60's it became evident that the existing circuit-switched telephone network architecture was not well suited to this new requirement. So ALOHAnet was conceived as a way to use radio communications as an alternative (see the ALOHAnet history). In 1971 they were the first to develop a packet radio network and use it to connect a central hub computer to several access points on five different Hawaiian Islands (it used a nascent Ethernet cable network and satellite links). Because radio is inherently a 'simple' broadcast technology (many nodes sharing and randomly accessing a network using the same frequency) they had to develop ways to control who could 'talk' at what time, and acknowledgement and retransmission procedures to deal with collisions and data loss.

There is a whole jungle of
channel access methods, i.e. ways to allow more than two terminals to connect to, transmit over, and share the same transmission medium. Just looking at wireless you can of course have a fixed wireless access with a dedicated wireless link between two fixed locations (point-to-point communication).
You can also include some kind of
'reservation' scheme. For example a token can be passed around the network nodes and only the node (transmitter) possessing the token may transmit (this was the early 802.4 standard now discontinued). The Multi-Slotted Alternating Priority (MSAP) and the Broadcast Recognition Access Method (BRAM) are examples of token-based multiple access protocols.
Another option is some form of
polling where a central computer send messages to terminals or nodes, all nodes listen but only the node that is polled replies by sending its message.
None of these options involve the node making a request to transmit. On this kind of fixed access link you can use a method such as
Time-Division Multiplexing (TDM) for routing multiple transmissions over a single transmission line. It involves synchronising switches at each end of the transmission line so that each signal is allocated only a fraction of the connection time. You can also use Frequency-Division Multiplexing (FDM) where the bandwidth available is divided into a series of non-overlapping frequency bands, each used to carry a separate signal. A third option is Code-Division Multiple Access (CDMA) which employs spread spectrum technology and a coding scheme (each transmitter has a code) to allow several transmitters to send information over a single shared band of frequencies. CDMA was one of the key technologies used in 3G and some texts refer to CDMA as the 'air interface'.


One writer compared these standards to a cocktail party. FDMA is when you have several different groups chatting in the room, each group separated by a certain distance. TDMA is when everyone is in the same group but only one person can speak at any time, and each person has to wait their turn. CDMA is when everyone can talk at the same time, but each is using a different language (or code) and can only be heard and understood by those who speak the same language.

A quick look at Spread Spectrum - you can skip over this section if you are not interested

Spread spectrum is where digitally modulated signals transmitted with a particular bandwidth are deliberately spread in the frequency domain, resulting in a signal with much wider bandwidth than would be needed to transmit the underlying information bits. Code-Division Multiple Access (CDMA) involves multiplying a users data signal by a fast code sequence so that multiple users can share the same portion of the radio spectrum and the codes are used to distinguish their transmissions. The advantage is that a large number of codes can be generated, and so a large number of users can transmit without any centralised control. In addition the codes provide some level of confidentiality and the signals are quite robust against interference.
According to the US Patent Office a form of 'spread spectrum' was first registered in 1924, but as a technology it came into its own during WW II as a
jamming avoidance technique for radar. You can try to produce false targets using chaff, corner reflectors and decoys. I've read that the Allies were consuming 2,000 tons of chaff per month near the end of the war. Or you can use electronic jamming by radiating interfering signals towards an enemy's radar, and spectrum spreading was developed for 'jamming avoidance'. It was in 1980 that the US released spread spectrum into the non-military world, and this fascinating and extensive article from 1982 summaries the early development of spread spectrum, and in particular the military involvement in and around WW II.
The basic idea is that you start with a narrow-band signal (one that occupies a narrow range of frequencies), with a high power density and a low spread of energy. This type of signal can be 'easily' jammed and can be subject to interference. Before transmitting you spread the signal (and the energy) over a much wide frequency band. So the signal (data sequence or information bits) now occupies a bandwidth well in excess of the minimum bandwidth necessary to send it. Now the spread signal (power spectral density) is essentially buried in the
noise floor of the radio band, so it can easily co-exist with narrowband signals in the same frequency range (they will see the spread signal as just more noise). In the example below we can see that the original signal (dark blue) occupies a narrow bandwidth and overrides the noise floor, making it easy to find, intercept and jam. As we can see, as we spread the carriers over a wider range of frequencies the signal will become increasingly difficult to locate. Spreading the signal over thousands of carriers will literally 'bury' the signal in the noise floor.

Spread Spectrum

But what about your receiver? To spread the signal you needed to adopt a spreading sequence for the carrier, and the receiver will need also to know what that spreading sequence was. To do that the transmitter and receiver will need to be correlated, and this requires that the transmitter and receiver are synchronised. The receiver will listen for signals over a much wider bandwidth but only extract correlated signals, i.e. those signals that have been subjected to the predefined spreading sequence. All other signals in the bandwidth will be considered as noise. In very simple terms the input goes through a channel encoder and a modulator connected to a spreading generator. The receiver signal then goes through a demodulator using also a synchronised de-spreading generator and then through a channel decoder. A very popular way to generate the spreading sequence is to use a fast code that is independent of the data message. Code-Division Multiple Access (CDMA) is a way to allow different users to share the same portion of radio spectrum by using different codes to spread their transmissions (within the limits of cross-correlation). There are five types of spread spectrum techniques. The two dominate techniques are Direct-Sequence Spread Spectrum (DSSS or DS-SS) and Frequency-Hopping Spread Spectrum (FHSS or FH-SS). The remaining three techniques are Time-Hopping, Chirping (pulsed FM), and various hybrids of the different techniques.
In DSSS the message signal is used to modulate a bit sequence or
Pseudo Noise code (pseudo-random binary sequence). The below diagram might look a bit complicated, but we can see that the original signal (bit sequence) is multiplied by the pseudo noise code (called 'chips'), and then transmitted on the carrier wave. The signal looks a bit like white noise, but naturally the receiver is equipped with the same pseudo noise code and can reconstruct the original signal.


FHSS is another way to 'spread' the radio signal by switching a carrier among many frequency channels, again using a Pseudo Noise code known to both the transmitter and receiver. The frequency band is divided into sub-frequencies and the signal rapidly 'hops' from one to another in a predetermined order. So interference will only affect the signal for a short interval, before it hops again. In popular literature 'frequency hopping' has a special place because of the vital contribution made by the 1940's Hollywood diva Hedy Lamarr who, with George Antheil, received in 1942 a US patent for a secret communication system (check out this article on the history of spread spectrum and frequency hopping).

So the essential feature of a spread spectrum implementation is that it is an unpredictable wide-band signal. It is random in appearance but reproducible by deterministic means. Also the two major application formats, Direct Sequence and Frequency Hopping, don't overlap and one system cannot detect the other format. So spread spectrum systems have a low probability of interception, they are very difficult to jam, the carrier modulation of a transmitter-receiver pair acts as a kind of encryption, and the different formats support multiple access.

A quick look at Coding Schemes - you can jump over this section if you are not interested

We have mentioned 'coding' in
Code-Division Multiple Access (CDMA) but what exactly does that mean? We learned above that CDMA employs spread spectrum technology and a coding scheme to allow several transmitters to send information over a single shared band of frequencies. We also learned that CDMA is one of three ways to multiplex signals, the other two being either time or frequency based, and that one of the coding scheme is a Pseudo Noise (PN) code.
CDMA has been intimately associated with the development of mobile phone technology. As such we must remember that migration from
1G (analog) to 2G (GPRS) through 3G (UMTS) to 4G (LTE), and now on to 5G (IMT), has been driven since the mid-80's by the phenomenal growth in subscribers. Every technological development has aimed to manage traffic congestion as we squeeze more users into the same small bit of the radio spectrum. Here we have the US radio spectrum frequency allocation table, and below we just have the small bit reserved in the US for mobile telephony.

US RF Spectrum

On top of trying to squeeze more out of the same bandwidth there is a continuing need to offer new media rich services, better privacy, smaller and lighter handsets, better battery autonomy, as well as features such as soft handover, etc. which make handsets easier to use. CDMA came into its own in 1993-95 and was integrated into the 2G standards. My understanding is that Qualcomm's Interim Standard 95 (IS-95) was the first CDMA-based cellular technology, and was adopted in 1995 as a standard by the TIA (Telecommunications Industry Association). Two of the key features for the implementation were the need to assign each user a unique code and the need to synchronise the network.
I (again) found the conceptual basis and jargon difficult to grasp at time, so my excuses to all readers who detect errors, etc. Much of the available documentation is either too general or far too detailed. I'm going to focus on the early IS-95 as a way to introduce the concept of signal coding. In very simplistic terms 2G combined
frequency division, pseudorandom code division and code division multiple access by orthogonal signals. The idea was to have a system with multiple layers of protection against interference, allowing many users to co-exist in a cell with minimum mutual interference.
In Europe the 'forward' and 'reverse' links operated at 925-960 MHz and 880-915 MHz respectively (the equivalent GSM-type standard in the US worked at slightly different frequencies). The 'forward link' or 'downlink' is when a call is sent down to a users' mobile phone and the 'reverse link' or 'uplink' is when a call is sent up to a base station. The same frequencies are used in all the cells because various signals are sorted using the spread spectrum technique and not by frequency discrimination.

The aim of CDMA is to squeeze more users into the same frequency band than is possible using FDMA or TDMA. The idea is to code signals coming from and going to individual users in such a way as to guarantee perfect
orthogonality, i.e. perfect auto-correlation and zero cross-correlation. Perfect auto-correlation means that a signal compares perfectly with a time-delayed version of itself (i.e. the auto-correlation function would be a delta function). In practice due to reflection, attenuation and scattering time-delayed versions (so-called multi-path propagation) of the original signal will never be perfectly auto-correlated (and as you would expect as the delays increase the auto-correlation gets worse). Let's take a simple single square pulse and compare it with another identical square pulse. As one starts to overlap with the other the auto-correlation will increase. When they perfectly overlap it will be 1, and as they again move apart it will go down again. When the two pulses do not touch the auto-correlation will be 0. As the two pulses overlap they create a so-called auto-correlation function that goes up from zero to one and then back down to zero. So auto-correlation is the similarity between the observation of two examples of the same signal as a function of the time lag between them. Whilst auto-correlation defines the correlation of a signal with copies of itself, cross-correlation is about the correlation (or lack off) between two different signals. Just to make life that bit more interesting auto-correlation is the cross-correlation of a signal with itself.

Cross and Auto

Above we are looking at the correlation between two signals. We move one signal relative to the other and multiply the two together, then integrate under the curve, thus producing one value of the correlation function. Repeating this for a variety of relative positions builds the correlation function. Correlation will be maximum when two signals are similar in shape and are 'in phase' with each other (as in the auto-correlation mentioned above). If we take the case of random noise then even a shift of one 'chip' will mean that they become uncorrelated, so the correlation function of random noise with itself is a single sharp spike at shift zero. Periodic signals go in and out of phase as one shifts with respect to the other. They show a strong correlation when the peaks coincide, and the auto-correlation function of a periodic signal is itself a periodic signal. So the auto-correlation function of a noisy periodic signal will be a periodic function with a single spike containing all the noise power, and thus the noise is easily distinguished from the signal. The cross-correlation (correlating a signal with another signal) can be used to detect and locate a known reference signal in noise. You can look for a correlation between a signal mixed with noise against a known reference signal. The higher the correlation, the more likely the unknown signal is similar to the reference signal. The 'classical' example is radar or sonar. A 'chirp' signal is emitted and bounces off a target. The reflected 'chirp' will be buried in noise, but correlating with the 'chirp' reference will reveal when the echo occurred, and thus will give a range measurement. In sonar 'reference chirp' signals for different vessels are used and the highest correlation is the most likely match. The 'chirp' is also used in the spread spectrum technique.
Let looks at a slightly more realistic signal and how it would be processed. What we do is shift the pattern (p) across the signal (s) spectrum. We can see that the starting point is placed at about 99, so for the point 99 we look at the p and s values for each point from 99 to 129 (i.e. in a window of 30). We multiply the values s(99) x p(99) and add it to s(100) x p(100), and so on through to s(129) x p(129), and attribute that summation to the location 99. We then move to the location 100 and repeat, building a graph of the correlation function. The two peaks in the final graph are clearly identified.


So how do we pick a code-family? CDMA involves applying a code that is independent of the data signal contents. Longer codes will allow more users but will require more bandwidth. Codes which are not perfectly orthogonal mean that different users may interfere with each other, i.e. cross-correlate. For example, the
near-far problem is were a strong signal makes it difficult for a receiver to detect and separately identify a weaker signal.

Starting with a few basics, in CDMA each time bit is subdivided into shorter intervals called '
chips', which are rectangular pulses from a code generator. They are called 'chips' to avoid confusion with message bits. We have already mentioned CDMA is a spread spectrum transmission, but it also comes in two particular versions. One version is called Direct-Sequence CDMA when the users' data signal is simply multiplied by a high bandwidth code sequence. One commonly used code sequence is called a Pseudo-Noise (PN) code, also often called a 'chip' sequence and/or a spreading code.


The other popular version is the Frequency-Hopping CDMA which changes in a periodic way the carrier frequency of modulated signal. In most texts the PN code is mentioned as determining the spreading sequence. i.e. the way the signal is hopped from one frequency to another in a way that can be predicted by the receiver. Below we can see below how a bit sequence can be represented by Binary Phase-Shift Keying (BPSK) a specific form of Phase-Shift Keying often used to modulate DS-CDMA, by spreading the signal over 6 frequencies, and by frequency hopping.

Spread and Hopping

This cool little
YouTube video captures the basic idea, and as we can see below the four peaks have been rapidly jumping (hopping) all over the available spectrum. All you have to ensure is the receiver is 'hopping' to the same frequencies at the same time. There are fast and slow systems. Fast hopping is where one bit is transmitted over several frequency slices, whereas slow hopping is where several bits are transmitted over one frequency slice.

Grequency Hopping

There are a number of popular code sequences, '
maximum length' (ML), Walsh-Hadamard, 'Gold' and 'Kasami'. Some writers call PN codes and 'maximum length' codes the same, whilst other consider PN codes a broader class and include ML and 'Gold' sequences in that class. Some writers don't even mention the type of codes used, others don't mention that several codes are used, and yet others do not distinguish between the way handsets communicate to base stations and base stations to handsets. Some writers simply divide spreading sequences into orthogonal and Pseudo-Noise (PN).
The easiest way to look at the question of 'codes' is to consider that the Pseudo-Noise (PN) code sequence is used for spreading the signal, and the Walsh code is used for maximum orthogonality (i.e. to separate other codes in use in that cell). Typically PN codes are very, very long and have excellent cross-correlation characteristics.

The maximum ideal capacity of a cell will be just the number of orthogonal codes that can be created (i.e. with zero cross-correlation).
Synchronous CDMA employed for the downlink can ensure that all the codes used are different (perfectly orthogonal), but multi-path reception can still destroy the time alignment of signals travelling to the users' handset over different paths (so practically cross-correlation will be non-zero). Asynchronous CDMA is when the uplink (mobile-to-base) cannot be precisely coordinated due to the fact that handsets are highly mobile. It is not possible to create unique signature sequences for each handset that are both orthogonal for arbitrarily random starting points and which make full use of the code space. So unique PN sequences are used that appear random but can be reproduced in a deterministic way at the base station. The aim is to find PN sequences that have a low correlation between them, the 'Gold' codes are suitable for this purpose. Low correlation means that there will be some interference between different users, so the aim is to minimise this interference. Signals encoded with different PN sequences will appear as noise, as will signals that encoded with the same PN sequence but with a different timing offset. The best situation would be that all the signals received from all the different handsets in a cell are at the same power level. In this case interferences will be just proportional to the number of users at any given moment. With synchronous CDMA all the signals received by a particular handset are more or less of the same power level, and in any case the handset can reject arbitrarily strong signals which use different codes, time slots or frequency channels. With asynchronous CDMA the base station can be faced with 'unwanted signals' that are much stronger that the 'wanted' signal. To try to ensure that the signals received at the base station all have about the same power level, the base station uses a fast closed-loop power-control scheme to tightly control each handsets transmission power.


If we look at TDMA, FDMA and CDMA, each tries to efficiently use the available spectrum, and each has its own challenge - power control for CDMA, timing for TDMA, and frequency/filtering for FDMA. TDMA needs to carefully synchronise the transmission times so everyone is in the correct time slot. Since this is not possible each time slot is surrounded by a guard time, reducing possible interference but also reducing the use of the available spectrum. FDMA also installed guard bands between adjacent channels, because moving handsets produce signals with an unpredictable Doppler shift. Synchronous CDMA, TDMA and FDMA have respectively a fixed number of orthogonal codes, time slots and frequency slots, thus in each case the number of users in limited. However traffic on a cell is usually very bursty with many transmitters generating a relatively small amount of traffic at irregular intervals. However, synchronous CDMA, TDMA and FDMA cannot reallocate under-utilised resources to a variable number of users. On the other hand asynchronous CDMA has no formal limit on the number of users that can connect to the same cell, although practically bit errors from interference will increase as a function of the number of users.
One of the less well known features of CDMA is its resistance to multi-path interference. Delayed versions of the transmitted pseudo-random (PN) codes will correlate poorly with the original code. One 'chip' delay is enough for the PN code to appear as simply another user, and be ignored.
The frequency band available is a limited resource and must be reused across all cells. However with FDMA and TDMA it is important that the frequencies used in adjacent cells do not interfere with each other. With CDMA the same frequencies can be used in every cell, and the planning must simply try to ensure that the same PN sequences are not used in adjacent cells.

The '
maximum length' (ML) code is just a way to generate a long series of 0's and 1's, which is periodic (i.e. repeats itself). The 0's and 1's are the 'chips' mentioned above. The sequence is often called Pseudo-Noise (PN) or spreading code. This type of code is not orthogonal, however one of its most valuable features is that it has excellent auto-correlation features (i.e. narrow auto-correlation peak) which enables a receiver to recognise the difference between a specific received code and an identically generated code from another handset. Equally the receiver will also see little interference from multi-path signals (i.e. delayed waves from the same emitter). This is particularly useful if the multi-path signals have a large delay spread. We will see below that the 'rake receiver' can exploit this particular feature.

As we have already mentioned the desire for an optimal code to avoid interference in the way a base station or cell links to mobile users led to the development of another type of coding sequence. These codes are perfectly orthogonal (zero cross-correlation) if perfectly synchronised by the base station. The idea is to derive the code sequence from a binary 'code tree' which is seeded with a unique code given to each user. The binary tree is created using a
Hasamard matrix, or more exactly a specific type of square matrix termed a Walsh matrix. These are also called 'spread codes' and 'spread' a single data bit over a longer sequence of transmitted bits (again these are the 'chips'). To do this the chip rate is usually measures in megachips per second and is significantly greater than the data bit rate. The addition of the spread code bits to the data bits is then modulated onto the carrier (higher bit rates occupy more bandwidth). This spreads the signal over a much wider bandwidth than would be normally required. Doing this (using unique user identification) allows many users to use the same channel without interfering with each other. What the receiver sees initially is just 'white noise' but it processes the signal using the correct descrambling code it can extract the original data. Take a trivial example, our data is 1001 and our spreading code is 0010.
Data to be transmitted 1 0 0 1
Chip or spread code 0010 0010 0010 0010
XOR output 1101 0010 0010 1101

Incoming signal 1101 0010 0010 1101
Chip or spread code 0010 0010 0010 0010
De-spreading 1111 0000 0000 1111
Recovered data 1 0 0 1

The actual spread code is usually 64 or 128 bits long. Using a different spread code to de-spread would produce an 'uncorrelated' data stream usually indistinguishable from noise. There are several types of codes that can be used to provide the spreading function.The Walsh codes we mentioned above are specifically selected to be
orthogonal, which means for our purposes that the data from a specific spread sequence can be properly decoded from a received signal that is the linear addition of many signals from many users.

We have already noted that the aim of the codes is caller identification, so the code selected should not correlate to other codes being used in the cell or time-shifted versions of itself (i.e. multiple versions of the same code cause by signal refection, attenuation or scattering). We need perfectly orthogonal codes that have perfect auto-correlation features and zero cross-correlation. The reality is that this combination does not exist. The Walsh codes are perfectly orthogonal when perfectly synchronised, but have poor auto-correlation when not perfectly synchronised (i.e. when there is a slight different between two versions of the same signal due to multi-path considerations). What this means is that the coding sequence does not have a single, narrow auto-correction peak, it has a number of 'secondary' correlation peaks. For this reason it is vital that the codes issued by the transmitter are highly synchronised. This is possible for transmissions from a based station or cell, but not for signals transmitted by the mobile handsets inside a cell. In addition the Walsh codes do not spread the signal uniformly over the spectrum. The energy is spread over a small number of discrete frequencies. The ML (i.e. PN) codes do a much better job distributing the power over the whole available frequency spectrum. Below we can see the auto-correlation and cross-correlation for both the Walsh and Gold sequences.

Walsh and gold Sequences

We can see that the the orthogonal Gold sequence has reasonable cross-correlation and auto-correlation properties (much better than for Walsh sequences). The Pseudo-Noise (PN) sequences are binary and exhibit random properties similar to noise. There are a number of different representation of PN codes, e.g. the 'maximal length' (ML), Gold and Kasami sequences (all are generates using a Linear Feedback Shift Register). A 'simple' ML sequence has good auto-correlation properties, but its cross-correlation properties are poor compared Gold sequences. Gold sequences can be generated by combining one ML sequence with a delayed replica of another ML sequence. Kasami sequences are combinations of Gold sequences. This is all about finding a coding sequence that retains good auto-correlation features and at the same time improves the cross-correlation features.

The option taken in our example (IS 95) is to create a user code consisting of a unique Walsh code modulated (spread) by an PN sequence. Forward (downlink or synchronous) links multiply the message by Walsh codes unique for every user within a specific cell. So the signal is multiplied by both PN and Walsh codes. The Walsh code is easily decodes by the handset, plus it provides a good degree of error correction for low bit corruption (up to 1 in 4 bits corrupted). It is often said that Walsh codes are used for 'canalisation'. With the reverse link synchronisation (handset uplink to base station) the Walsh codes lose orthogonality, but PN codes still work. PN codes have poor auto-correlation so it is more difficult to identify different versions of the same signal, but their cross-correlation is good so they can identify signals coming from different handsets (i.e. some 'echos' of a signal from a specific handset will be rejected by the base station as coming from different handsets). So every message from a handset has to use PN codes and Walsh coding is just retained for error correction.

I found it very difficult to pull together a single easy to understand narrative of how the different coding schemes work together and are actually implemented. You may have guessed this from the above text. My last attempt before 'moving on' it to look at the basic circuit elements.

So lets try to run through what happens when you
receive a call on your mobile phone. It looks like the Qualcomm standard had some 30-odd 'blocks' in it, but I'm just going to mention just a few that I can put a sensible description on. What we see below is one example of a much simplified forward link (downlink), also called a synchronous CDMA because it receives a synchronisation signal from the base station.

Forward Link Channel

Firstly there is a so-called vocoder (a particular voice codec) which will have compressed the audio signal by sampling within a narrow band of frequencies (usually at 9.6 kbps).
The sampled and compressed audio signal is broken in to blocks (e.g. 20 ms each) and passes through a
convolutional coder. This adds information to the blocks to ensure that they can be properly decoded upon delivery.
Now the data goes through what is called a block interleaver. This is to counter any errors that might occur when message bits are transmitted through noisy channels. Errors can be random, i.e. occurring at any random time and are totally uncorrelated. Or errors can come in bursts, i.e. affecting successive bits. The block interleaver loads row by row of bits into an array and interleaves them with a sequence of codes. It does this in a way that tries to ensure that a burst of noise will only affect one bit in any block. This essentially makes burst errors look like random errors, and the random error decoder is more likely to be able to correct a single error rather than a burst. So interleaving is an error control coding technique for bursty transmissions, and it does this by randomises burst errors. This is part of what is called '
forward error correction' (FEC).
The 'long code sequence' is created from a
Pseudo-Noise (PN) sequence and is used for channel spreading and scrambling of the 'reverse' channel (uplink) and for 'forward' channel (downlink) scrambling. Specifically the 'long code sequence' is used for the 'reverse' channel (i.e. making a call) and a so-called decimated long code sequence is used for the forward channel scrambling (i.e. receiving a call). One description mentions that the long code is periodic with a period of 241 - 1 'chips' and is based upon a specified characteristic polynomial. This is generated using a 42-bit initial state parameter and a 42-bit mask and the mask value results in an instantaneous shift in the sequence output with respect to the unmasked long code generator. The decimated version is just a truncation of the long code sequence. All base station digital transmissions (forward channel or receiving a call) are referenced to GPS time (set to 00:00:00:00 January 6, 1980) and all start with a 1 followed by 41 consecutive 0's. This state reappears every 41.45 days, and all base stations receive a common time reference by satellite. A GPS clock drives the long code generator. So all base stations and mobile devices are synchronised. Another description mentions using 242 - 1 'chips' which repeat once every 100 years. A long code mask is used on the long code, and the masked long code is then decimated down to 19.2 kbps. It is them XOR'ed with the voice data bits. For the forward channel (receiving a call) the long code is not used to spread the signal bandwidth, in this case the long code is decimated down to a lower rate after the user's unique long code mask is applied. Decimation is selecting every 64th bit out of the long code data stream, so reducing the data rate from 1.2288 Mbps to 19.2 kbps. This matches the data rate of the voice data with which it is XOR'ed. The user (receiver of a call) will need to know when the long code chip used for scrambling begans (i.e. sequence offset), what the mask of the generated long code was, and the system time, so the user device receives a so-called long code synchronisation message on a sync channel.
Now the 'new' data blocks are modulated using a
Walsh code which is an error detecting and error-correcting code. An analog signal would normally be added to a higher frequency sine-wave carrier and transmitted. With a digital signal the sinusoidal carrier is replaced by the Walsh functions, an orthonormal set of binary square waves with a frequency of 1.2288 Mbps. Given that the data signal is also binary, the time multiplication of the two signals is just a simple 1 when one of the signals is 1 and the other 0, and 0 when both are either 0 or 1. The 'usual' option is a 64 x 64 matrix with the first line a string of 0's and the other lines are of uniquely different combinations of 0 and 1. The Walsh code is unique for every user connecting to a particular base station, and each user will multiply the received signal by its own unique Walsh code. In CDMA each mobile user takes one of the 64 sequences of rows as a spreading code, i.e. each cell can handle 60 uniquely identified users (4 channels are used for the 'pilot', for synchronisation and for 'paging'). Given that Walsh codes of all the users in that cell are orthogonal, one particular user can only decode its own messages. This is specifically the case for users receiving data from the cell, because the base station also transmits a synchronisation signal. This synchronisation signal does not exist for calls being made to the base station (in any case all signals must be decoded), however the Walsh code does retain its error correcting feature.
The PN sequence is a pseudo random noise sequence, i.e. a binary sequence which though deterministically generated appears to be statistically random. Since the frequency of data is much less than the PN sequence used, users are able to decode the data back by multiplying the encoded message by the same PN sequence.
We then see that the data is split into two bit streams (channels I and Q), each has a different but well defined so-called 'pilot' PN sequence from 15-bit shift registers added to it. This code repeats itself every 26.6 milliseconds.
The I and Q channels are filtered (
finite impulse response filters) and the mapped onto four phases of a quadrature modulator, before being RF modulated onto the cellular radio band in use.

Not seen in the above diagram is the so-called
rake receiver. In most cases a single signal does not arrive intact at a receiver, it is subject to multi-path fading. So there could be an original 'line-of-sight' signal and the same signal could also be subjected to attenuation, scattering and reflection producing delayed copies of the original. Users could be moving so the amplitude, phase and delay of the various paths can vary with time and place. But each of the multi-path signals contains the original information. So reception is actually performed by 'fingers' or several 'sub-receivers'. Each finger independently decodes one of the multi-path components, and then the components are added coherently to improve overall information reliability. Modern systems have 'diversity' technology to cope with time diversity, frequency diversity, and space diversity. For example the rake receiver handles signals with different time delays. Also handsets now include more than one antenna, and during handoff handsets will search for the base station providing the strongest signal.

Below we have the 'reverse link' or when a user initiates a call. The channel is first spread with Walsh followed by long code modulation to spread the spectrum. We can also see that the Q channel PN sequence is delayed by half a PN chip as compared to I channel PN sequence.

Reverse Link Channel

Before we move on we should take a closer look at the CDMA
power control mechanism. Inside a cell we have multiple handsets all moving around and many transmitting to the base station at the same time using the same bandwidth. With different handsets having different locations in the cell, the power levels of the signals received will be different. The different can be substantial, up to 100 dB. The near-far problem is all about multi-user interferences. If we do nothing signals emitted near the receiver will swamp signals coming from handsets further away. Transmitter Power Control adjusts the senders (handset) transmission power to ensure that all signals arrive at the receiver with the same power level. Given that the CDMA uplink capacity is strongly limited by interference, managing properly power levels actually increases the number of terminals that can be supported within a cell. The simpler approach is the so-called open loop power control. This technique sends one bit of information (adjusted by 1 dB steps) to a terminal to adjusting the incoming signal to meet a desired signal strength requirement. A more complex approach looks at packet error and tries to adjust the terminal signal strength to reduce packet loss to below a target figure. As you can imagine as terminals (handsets) move around this power control must take into account many factors and it must also rapidly adjust the power outputs. Even a 1 dB change if improperly applied can produce up to a 60% performance degradation in a handset. Another related problem is inter-cell interference from neighbouring cells, which can represent up to 6% of the interference detected in a cell. We see a number of differences between voice and data packets. Delays are not acceptable for voice services, but if too much power is required to deliver a data packet to a terminal the transmitter can 'back off' and wait. Data introduces a different trade-off between power consumption and delay constraints. Newer power control algorithms take into account the nature of the packet.

As I've already mentioned in this sub-section, I found coding sequences a tricky topic to grasp, and I'm not sure I done a good job with the above text. Perhaps one day I will revise it based upon reader feedback. I've added a few references below that might be of interest to the passionate reader.
Introduction to CDMA
Code Division Multiple Access
CDMA - Code Division Multiple Access
Code Division Multiple Access (CDMA)
Principles of DS-CDMA
Spread-Spectrum Technique and its Application to DS/CDMA
IS-95 North American Standard - A CDMA Based Digital Cellular System

Back to ALOHA

Returning to
ALOHAnet we have already mentioned that FDM involves one transmitter sending multiple signals from a single location to one receiver. So FDM is a way to share or multiplex signals coming from the same terminal or node, and is often described as a way to share the 'physical layer'. It does this by modulating each signal on to a series of carriers with different frequencies. The receiver is then 'tuned' to isolate and demodulate the signals. The patent for FDM was actually taken out by Marconi in 1900. Frequency-Division Multiple Access (FDMA) is 'just' a way to allow sources and their respective modulated carriers to emanate from different transmitters, usually located in different places. FDMA is more complex because it needs to carefully control carrier frequencies, and all the more so when the signal sources (users) are moving (frequencies will change due to the Doppler effect). However FDM and FDMA are the only multiplexing and multiple access techniques which can handle both analog and digital transmissions (TDM and CDMA only handle digital sources).

Time Division Frames and Slots

Already in the 1950's TDM was used to multiplex several parallel data streams generated in the same location into one serial data stream, it was essentially a parallel-to-serial converter. Time-Division Multiple Access (TDMA) is the same but now there are several transmitters connecting to one receiver. Each transmitter only uses the channel during predetermined slots. This means that the data stream is divided into 'frames' (the basic protocol data unit) which are divided into time slots, and each user or transmitter is allocated one slot. Often TDMA is combined with Time Division Duplex (TDD) so that transmission and reception do not occur simultaneously, but during different slots. TDMA first emerged in ca. 1964 as a multiple access technology for geosynchronous satellite networks used for trunking digital traffic. TDMA guaranteed that only one transmitter signal was received at any instant so it was preferred for the early low powered satellites that needed large dish antennae. TDMA was one of the key technologies used in 2G. With mobile transmitters uplinking to a base station there is a need to align all the transmitters to the same time so that one transmission matches the gap in the transmissions from it peers (e.g. done through a feedback loop with timing information). The key here is that multiple users share a single carrier frequency, and that slots can be assigned on demand (for the so-called dynamic TDMA).
Initially FDMA was too power hungry, but with the introduction of
Very Small Aperture Terminals (VSAT) in the 1980's a kind of hybrid FDMA/TDMA became the preferred technology for providing between 50 and several hundred FDMA carriers. CDMA, also developed in the 1950's, does not isolate user signals by time or frequency slots, but by unique underlying codes. Because of its inherent resistance to jamming it was the preferred choice for military satellites in the 1970's and 1980's. It came in to its own when the geosynchronous orbit space became more crowded and earth antennae smaller and with a wider aperture, and it also was used with the newer generation of low earth-orbit (LEO) satellites. For terrestrial mobile cellular telephony it started with analog modulation in the 1980's and moved to digital modulation in the 1990's, and then when CDMA became standardised in 1993 it gradually became the preferred technology. This was really all about picking the best multiple access technology that could serve the most subscribers per base station in the allotted frequency band. Checkout this article from 1990 on the history of multiple access.

So both TDMA and FDMA are the earliest channel access methods (another name for multiple access) allowing more than one user (node, terminal) to share the same transmission medium (cables, air). FDM and TDM provided multiplexing on the physical layer (OSI Layer 1), whereas FDMA and TDMA provided the multiple access protocols and control mechanisms, and are generically called media access controls (MAC), which in the OSI 7-layer model is the data link layer (Layer 2). The MAC address is actually a unique serial number assigned (or hard-wired) into network interface hardware (PC, TV, modem, router, smartphone, tablet, etc.) when manufactured.

Above we mentioned some of the simplest ways to assign access to radio resources to a set of users. There are systems that involve a more dynamic form of 'reservation request' to transmit, thus trying to optimising bandwidth use. One way is to use a
bitmap routing table which enables the central computer or routing device to tell each node when to transmit (yet always avoiding collisions). An alternative is the Packet Reservation Multiple Access (PRMA) where terminals wishing to transmit data packets compete for access in any free slot. If it successfully 'captures' the base station the terminal gains a reservation for those slots, and can transmit its frames until it releases the reservation. This was a wireless version of a satellite telephony technologies, and has often been called 'TDMA with the slotted ALOHA reservation system' (which we will learn about below). Another way is to use the Distributed Queueing Random Access Protocol (DQRAP) which is an attempt to manage high loads on a network using a reservation system, but provide immediate access at light loads (i.e. a network with 'bursty' stations). The basic idea is to divide the channel time into data slots, each with a small number of control mini-slots which are used to provide extra feedback in order to reduce the number of empty or collided slots (check out this article from 1990 for more details). This approach was used in the development of Ethernet (the de facto standard for cable connection) and later still wifi.

First we had 'conflict-free' access, where scheduled or highly controlled access transmissions do not interfere with each other and the transmission is always successful. The alternative is some form of
random access to a broadcast channel. When you have a dedicated link (point-to-point) all you need is some way to stream or break up the message into logical blocks and control that it was delivered intact. Multiple access controls are needed when multiple transmitters can access a broadcast channel simultaneously. We have already mentioned the controlled access or 'reservation' methods such as polling or token passing. Then there are the so-called circuit mode and channel access protocols such as FDMA, TDMA and CDMA (these are also sometime called 'fixed access'). In their simplest forms one of the problems is that receivers (and switches, etc.) spend their time processing messages that are not intended for them. And the bigger and more complex the network becomes, the more this is a problem. As an example, with FDMA the entire frequency band is divided into bands each of which serves a single user. Transmitters have predetermined frequency bands and a 'receiver' for each band. In TDMA the slots are predetermined and the users are synchronised to know exactly when and for how long they can transmit. In both cases no coordination or synchronisation is needed among users, because there is no interference. If load is uneven, one user cannot share their bandwidth or time slots with others. If load variations are predicable, you could eventually pre-divide the frequency ranges unevenly or pre-allocate multiple slots in the same frame to particular users. For few occasional users FDMA performs slightly worse than TDMA, but is easier to implement because it does not require synchronisation between users. For high throughputs both perform equally badly, and when usage is asymmetric the channel (or part of it) is left idle even if some users have data to transmit. Dynamic channel allocation protocols are designed to overcome this drawback. For example, TDMA is a specific example of what many call the Mini-Slotted Alternative Priority (MSAP) protocol. This is a dynamic conflict-free protocol where the slot is divided into a data transmission period and a number of reservation mini-slots. We are still in a conflict-free mode so information is collected about which users have requested a channel allocation. There are a variety of arbitration algorithms used to decided how to allocate priority within a set of users. The slot actually has reservation mini-slots and mini-slots informing users of their priority. CDMA does allow overlapping transmissions in the frequency and time domains, but because of the use of unique individual codes it is also a conflict-free scheme. We mentioned earlier the bitmap protocol (a kind of improved MSAP protocol), and what this does is to exploit the reservation preamble (mini-slots) to schedule more than a single transmission. It is still conflict-free but it is dynamic in that it tells all the users what the reservation schedule is and can change the schedule based upon changing demands. The Broadcast Recognition Access Method (BRAM) does a bit better in that a bitmap is used to reserve channels but not all mini-slots are allocated, so a user can look to see if a transmission slot is being used and if not can start their own transmission.

Some writers divide networks into 'reservation', 'fixed access' and 'random access'. Others prefer the distinction between 'conflict free' and '
contention' multiple access protocols, i.e. just another way to talk about users able to transmit data at any time (first come-first served). In this model 'conflict free' means either 'dynamic allocation' ('reservation' or token passing) or 'static allocation' (FDMA, TDMA and CDMA). And 'contention' access protocols depend upon the way conflicts are resolved, with either static resolution or dynamic resolution.

Contention-based or random access schemes differ in principle from conflict-free schemes since a transmitting user is not guaranteed to be immediately successful. The protocols must prescribe ways to resolve conflicts so that all messages are eventually transmitted successfully. These resolution protocols consume resources, just as conflict-free protocols also consume resources. For networks with many users conflict-free schemes are impractical and what we need are contention (random access) schemes where the idle user does not consume any portion of the channel resources. Just as there were static and dynamic ways to provided conflict-free access, so there are static and dynamic ways to provide contention-based random access (i.e. with conflict resolution).

ALOHA protocol was the first random access technique introduced, and many of todays protocols are just sophisticated variants of the ALOHA protocol family. ALOHAnet was operational in 1971 but it was only in 1974, with a major overhaul after the appearance of the first microprocessors by Intel, that the network protocol could be implemented in software. Also during this period ALOHAnet was connected to ARPAnet, which had sent its first successful message in late 1969, and by 1974 had Interface Message Processors (IMPs) in 46 locations. Robert Metcalfe, co-inventor of the Ethernet in 1973, studied the ALOHA network for his PhD also in 1973 (I think the name came from the idea to use the coax cable as 'ether' or luminiferous aether). It was Metcalfe who coined the phrase 'packet broadcasting' and his first Ethernet implementation was called Alto ALOHA Network (after Xerox Palo Alto).
Conflict-free protocols ensure that a scheduled transmission is guaranteed to succeed. ALOHA protocols belong to the contention or random transmission protocols in which a successful transmission is not guaranteed in advance. A collision can occur on a channel and the data can become corrupted, so packets must be retransmitted until they are correctly received. Wireless networks can also be subject to
fading and interference from other devices emitting RF signals.
The simplest protocol is
Pure ALOHA. Each user transmits when they are ready. If there is a collision then the transmission is unsuccessful and every colliding user is informed to re-transmit. They will do so at a random time in the future in order to avoid the same packets re-colliding indefinitely. Technically this is a single-hop protocol with several users trying to communicate with the same receiver, and collision occurs when two or more users try to transmit to the receiver at about the same time. The problem is that as more and more users try to transmit the system become unstable. As the load increases, collisions increase and re-transmissions increase. But re-transmissions experience collisions, and an avalanche of re-transmission attempts occur. The backlog of unsuccessfully transmitted packets grows beyond the buffer capacity of the nodes, and data is lost.

ALOHA and Slotted-ALOHA

Next came the Slotted-ALOHA in which transmitters can only start at the beginning of a time slot. As the Wikipedia article points out this protocol was successfully used for numerous low data rate applications. Equally the physical arrangement was a star topology with a central network node home to most of the communication functions connected to simple low-cost user terminals. The reality is that as the number of users increases so does the number of collided packets, and this cannot be stable. What was needed was a way for the systems to take into account the actual state of the system, i.e. the re-transmission probabilities must somehow adapt to the state of the system. One idea might be to provide some coordination to backlogged users prior to each slot, allowing some to transmit and telling others to remain silent. This could be adapted as a function of the number of backlogged users. You could adjust re-transmission rights as a function of the allocation in the previous slot and how successful that was in decreasing collisions (e.g. dynamically adjusting the re-transmission wait time as a function of collision frequency). Other alternatives could involve changing the packet lengths (Dynamic Frame Length), or ensuring that the receiver captures the strongest signal (power 'capture'), or the first packets emitted might get priority for 'capture'. There is a family of Busy Channel Multiple Access (BCMA) protocols of which CSMA described below is one of the best known. The Inhibit Sense Multiple Access (ISMA) is another where the receiver transmits a busy signal on an outbound channel to inhibit all other terminals from transmitting as soon as an inbound packet is detected. Yet other alternatives involve casting an idle tone rather than a busy tone, i.e. instead of stopping transmission with a busy tone they only allow transmission if the channel is idle. Buffers could be installed at the users so that signals queue for transmission, but then you have queueing problems between different users.

Here we have a first-hand account of the creation of ALOHAnet.

One writer called Pure ALOHA and Slotted-ALOHA 'blind' and another writer called them 'impolite', in that users transmit without consideration for other users. You could imagine a "listen before you talk" (a nice idea at our cocktail party), with users listening to see if the channel is in use before they transmit. If a user is already using a channel then a new users' transmission will not be successful, and they will interfere with the user already on the channel. Surely it is easy to listen, since every emitter is also a receiver. On top of that the user does not have to receive a message, they can just employ '
carrier sensing', i.e. sensing that a carrier signal is being sent. These protocols are called Carrier-Sense Multiple Access (CSMA) and just mean that users send packets the moment they detect that the transmission channel is idle. Of course two users could both 'sense' that a channel is idle, and both could start transmitting 'concurrently'. All the variations in CSMA are about how to detect that a collision has occurred, and how and when to retransmit the packet. Some systems deal with collisions in the same way they deal with busy channels, they wait a pre-defined time and then try again. An alternative is just a bit different, and that is to simply wait until the channel is idle and then start transmitting. Some experts call this persistent carrier sensing, so the other alternative is non-persistent carrier sensing.

Slotted protocols (Slotted-ALOHA) in their simplest form have mini-slots in front of the data packets that are long enough that every user can detect that a transmission is taking place before the actual data packet is transmitted ('
mini-' because they are shorter than the time required to transmit a packet). A user will wait until it detects the mini-slot and then senses if the channel is free. If the channel is not free the corresponding CSMA protocol is applied. This still does not completely solve the problem of interference of concurrently transmitted packets. The next step is Carrier-Sense Multiple Access with Collision Detection (CSMA/CD). Here the idea is a kind of add-on to CSMA, if a user starts transmitting and detects that a transmission is already taking place it aborts the transmission of its own collided packets.

So what to do if a collision is detected? Firstly, the receiver is continuously informing all transmitters about the incoming signal. If a collision is detected all transmissions are aborted immediately thus rapidly freeing up the channel. So when a collision occurs all other users wait until the collision is resolved. Then the receiver just picks one of the users and lets them re-transmit in the next slot, making the others (so-called 'backlogged user') wait until the first one has finished. If several users were involved in the collision the receiver will need to resolve the problem creating a 'stack' with the next user to be transmitted on the top.

Detecting collisions is fine, but avoiding collisions is better. Collision Detection (CD) is the ability to detect that a collision has occurred. The node stops transmitting, and tries again after a random 'backoff time'. This happens at the emitter, node, or user side, but '
contention' or Collision Avoidance (CA) must happen at the receiver. Why is this important? If we look at a situation where two nodes want to transmit to the same receiver. Both use carrier sensing to determine that the channel is free, and one node start emitting. The other emitter might not be within the range of the first emitter and therefore it will not know that the first node has already started emitting. This is the 'hidden node problem'. One way around this is to use a 'handshake' with one node asking for a 'request to send' (RTS) and receiving a 'clear to send' (CTS), which also alerts all the other nodes in the range of the receiver. The message also includes a transmission duration, so the other emitters know how long they will have to wait. Once the transmission is completed the sender waits for the acknowledgement packet indicating reception and that the checksum was correct. If it does not receive an acknowledgement it will assume a collision has occurred, and it will enter what is called a 'binary exponential backoff' prior to attempting to re-transmit (see also Distributed Coordination Function). This is the basis of Carrier-Sensing Multiple Access with Collision Avoidance (CSMA/CA), which was adopted in the original wifi standard (IEEE 802.11 legacy mode) in 1997-1999. CSMA/CD as a LAN access method was adopted in 1982 as part of the original Ethernet standard IEEE 802.3. And an ALOHA random access protocol was used in GSM call set-up (I'm not sure what protocol is used today).

You can guess that even Collision Avoidance does not in fact avoid all collisions. So there is still a need to resolve conflicts that occur. There is a Wikipedia article on
TCP Congestion Control in which the focus is on congestion avoidance, i.e. how a system should react once a collision is detected so that continued congestion is avoided. The question remains as to how a system should treat those emitters who have lost data packets. We have already mentioned the stack algorithm which orders the transmitters in a priority list, and the top of the list receives a 're-transmit-now' signal and the others are told to wait. In fact as far as I understand the technology, receivers are always building a stack or dynamic table of parsed wireless packets with addresses, etc., so that it can send out acknowledgements, etc. With this it is not difficult to build a priority list for re-transmissions. In fact 'scheduling disciplines' is a generic term used for algorithms for managing simultaneous and asynchronous requests on distributed resources. For example when first-come first-served queuing needs to be temporarily suspended to cope with collision re-transmissions on packet-switched networks. Another approach involves a tree-splitting algorithm (or more generally a contention-tree algorithm) which interactively splits a group of contenting devices into smaller sub-groups to reduce collisions. For example one sub-group can be dynamically defined as those transmitters causing collisions in one particular frame, and that sub-group can be prioritised for re-transmission in the next frames. That particular sub-group would then disappear when all the devices in the sub-group have successfully transmitted their data packets. This approach can also be used to set priorities for a sub-group of devices that are pre-programmed to transmit data at specific moments in time, thus avoiding unnecessary collisions with other devices that randomly might transmit at the same time.

It must be said that whilst
Explicit Congestion Notification (ECN) is a recognised extension to the Internet Protocol (IP) and to the Transmission Control Protocol (TCP) it is usually not enabled. Still today most systems appear to just drop packets, and the transmitters are left to detect lost packets and simply re-transmit. The reality is that most wifi systems are set to the simplest default conditions,

If you are really passionate about the mathematical foundations of multiple access protocols, check out this

The objective in introducing ALOHAnet and the broader topic of multiple access protocols is to provide the basic understanding needed to introduce the 802.11 wifi standard.

However wireless communications has become an invisible part of everyday life. We are increasingly surrounded by wireless connected devices, sensors, or just 'things' (e.g. Internet of Things). And the multiple access protocols have adapted and evolved accordingly. To understand the basics of 802.11 and the operation of my home wifi we do not need to delve too deeply into the technicalities. But it is important that the reader is made aware that those 'technicalities' exist. For example, in Collision Avoidance we wrote about two nodes trying to connect with a receiver. Hidden in the solution is the assumption that both nodes have an equal probability of accessing the wireless channel irrespective of channel conditions. But in the real world one node might be operating in good channel conditions (e.g. line-of-sight), whilst the other in poor conditions (i.e. dependent upon local scattering producing signal attenuation and delays). You might want a protocol that favours the node with better channel conditions. But you might also need a degree of fairness so as not to starve the node with poor channel conditions. Have a look at
ExOR and MORE as early examples of ad-hoc routing protocols.

Before moving on to 802.11 we are going to just peak at the future. Machine-to-machine networks will be increasingly connected to a large number of physical devices (e.g. sensors, actuators, etc.) that interact with their local environment. These networks will be connected to the Internet so that monitoring and control apps can be remotely run. Many of these devices must operate autonomously for years with no or limited access to energy (e.g. asset tracking with RFID's and Automatic Meter Reading are examples of what are called Wireless Sensor Networks). In most cases the traffic load from one device will be low but there could be 10,000's of devices on the network, and at any time a number of devices might want to transmit data. Inefficient collision avoidance requiring excessive numbers of re-transmissions will be expensive on the energy efficiency of the remote devices. Many network access protocols use a centralised schedule based upon a deep understanding of the network topography. But these smart grids could also include a huge number of mobile devices looking to transmit at random moments. ALOHA and CSMA do not require knowledge of the network topography, and their simplicity of operation makes them perfect for simple energy-constrained devices. But if the traffic load jumps for some reason, collisions will increase, performance will degrade, and energy consumption will increase. The point being made here is that different access protocols and different queuing algorithms and different collision avoidance schemes all impact differently on the energy consumption of devices. Given that the different can be a much as 80% between one approach and another, it is increasingly important to optimise access protocols based upon energy consumption (and thus optimised collision avoidance) rather than just on pure throughput or simplicity of operation.


With the development and commercial introduction of (cabled)
Ethernet in 1980 interest in what was a low speed wireless network alternative trailed away. In 1985 the US Federal Communications Committee authorised the use of the Industrial, Scientific, and Medical (ISM) frequency bands for wireless LAN products. The 802.11 standards apply to the 900 MHz, 2.4 GHz, 3.6 MHz, 4.9 GHz, 5 GHz, 5.9 GHz and 60 GHz bands, and most touch or overlap with the ISM bands. The key here was that LAN vendors did not need to obtain a licence to operate in these bands, but it was not until the creation of the family of 802.11 standards that the market started to develop (even given the limited data rates and small footprint).
In parallel with the evolution of wifi we also had the evolution of cellular telephone systems. One report defined the evolution of cellular systems as 'glacial'. The request for spectrum for cellular services in the US was made in 1947, but the technology was only field tested in 1978 (this was the famous G1), and finally the spectrum was granted in 1982. One problem was that marketing research suggested that cellular telephony would be reserved for doctors and the very rich! Moving from analog to digital changed everything (G2) with higher capacity, lower costs, higher speeds, and better power consumption figures. With expanding market potential came a proliferation of standards, better still incompatible regional standards.
Hardware (phones) needed to be cheap, lightweight, handheld, have small batteries that did not need frequent charging, and be able to handle voice, images, text, and video. The transmission and reception characteristics of handsets would have to deal with movement and changing reflections and attenuation from surrounding objects. Analog cellular systems had no security, but the new digital cellular systems needed to implement some level of encryption.
Wireless is fundamentally unpredictable. Much of the processing needed to be built in to fixed sites, and the network had to be able to locate a given user wherever they were amongst billions of other users. They needed to create a link and route calls to users moving at more than 100 km/h. And they needed do it in a fair and efficient manner. On top of all they needed to connect with wired networks, internet, cable systems, and other older wireless networks, all having different performance characteristics.

The first accepted
802.11 standard was 802.11b using 2.4 GHz and with a modulation scheme known as Complementary Code Keying (CCK), but also supporting Direct-Sequence Spread Spectrum (DSSS) from the original 802.11 standard. DSSS is a spread spectrum technique design to provide greater resistance to both unintentional and intentional interference. The maximum data rate for 802.11b was 11 Mbps. At the same time there was 802.11a using a different modulation technique, Orthogonal Frequency Division Multiplexing (see the OFDM tutorial), using the 5 GHz band and with a maximum data rate of 54 Mbps. The 802.11b caught on because the chips were easier and cheaper to make. These standards came out in 1991, but in 2003 a new standard 802.11g offered maximum raw data rates of 54 Mbps in the 2.4 GHz band. Then came 802.11n in 2006 which was specifically designed for a maximum data rate of 600 Mbps using both 2.4 GHz and 5 GHz. One key feature was its backward compatibility with legacy standards, and another feature was the implementation of MIMO (check out this MIMO tutorial). Then came 802.11ac, published in 2013 it has often been called the Gigabit WiFi (and VHT for Very High Throughput and even so-called 5G) because it's rated at 1 Gbps minimum, and up to 7 Gbps. This 5 GHz standard was supported by the Apple Airport series and the MacBook Pro from 2013 and the iPhone 6 from 2014.

WLAN (wireless local area network) or wifi operates over a limited space and with users moving around at pedestrian speeds. The 802.11 family of standards covers 7 different distinct radio frequency bands, but the most commonly used are 2.4 GHz and 5 GHz bands. As I have pointed out these bands are the so-called ISM bands originally designed for industry, scientific and medical purposes other than telecommunications. The advantage is that they are unlicensed bands (one report called it a 'ghetto'), but the disadvantage is that wifi networks have to cope with interference from primary users and of course from other wifi networks. An example of a primary user might be microwave heating which was an industrial process used in curing rubber when the ISM bands were established in 1947. It is important to remember that working at 2.4 GHz network hardware providers must expect interference and find ways to work in those 'hostile environments'. In addition, today there are a number of additional technologies that now also use the 2.4 GHz band, namely Bluetooth and ZigBee (IEEE 802.15.4 for Personal Area Networks).

Video 802.11 WLAN or Wi-Fi Channels and Frequency Bands


Different Types of 802.11 Modulation Types


Antennae are Everywhere

You can find a lot of information about wifi networks, but we tend to forget that user devices (computer, iPad, iPhone) are themselves nodes in the wifi network (in fact you can setup your iPad or iPhone to be a Personal Hotspot). However, Apple is particularly parsimonious about how their devices work and what you find inside them. Just as the AirPort implemented IEEE 802.11ac (or in the case of the AirPort Express IEEE 802.11n), so does my MacBook Pro. You do have be careful since for example the iPhone 5 and 5s did not implement IEEE 802.11ac, although they did implement the 5 GHz band in addition to the 2.4 GHz band.
In the commercial world Apple's strongly recommends using only the 5 GHz (802.11a/n/ac) wireless network for its iOS and Mac devices. In fact Apple's iOS devices (iPad, iPhone) are expected to roam more seamlessly than their Mac devices (such as my MacBook Pro), and they
implement a number of additional 802.11 standards such as 802.11k, 802.11r and 802.11v.

WiFi Antenna MacBook Pro

What you see above is an antenna unit similar to the one found in the screen lid on my 2017 MacBook Pro. This small component is home to four antennas for wifi and Bluetooth, and, with the camera, is connected to the body through the hinge. What this does is support Apple's use of 3x3 MIMO in the new MacBook Pro as opposed to the 2x2 MIMO still found in many laptops (and in the older 13" MacBook Pro). As Wikipedia tells us MIMO is an essential part of various wifi and 3G/4G standards and it multiplies the capacity of the radio link (so 3x3 is better than 2x2). Basically it allows more than one data signal simultaneously over the same radio channel. This is quite a complex issue, but we first have to know that IEEE 802.11ac exists in two 'flavours', Wave 1 (2013) and Wave 2 (2016). In very simple terms Wave 1 added more RF bandwidth and used SU-MIMO (single-user) to address multiple clients sequentially, using beam forming to direct the signal preferentially to each client. Wave 2 supports a higher number of connected devices and implemented MU-MIMO (multi-user) to send data to up to four client's simultaneously. Both support data rates which far exceed those provided on domestic internet connections, e.g. 100's of Mbps or in some cases Gbps.
What MU-MIMO does is to transmit a signal to client devices attached to the network. Each client sends back a message that includes the channel state information based upon the signal it received (this is done every 25 ms). The 'access point' or router takes this information and computes a phase and signal strength for each transmit antenna, then combines the data streams to be transmitted to (up to) four user devices relying on the fact that the client devices are in different places (in techno jargon "spatial differences in reception") so that it can keep the data separate and that each client antenna sees a different signal from each of the 'access point' transmit antenna. In the home environment this works even if different client devices are separated by only a few centimetres. In IEEE 802.11ac MU-MIMO only works for the downlink to the client. However, network technology is always progressing, and the
IEEE 802.11ax (to be approved in 2019) should include uplink MU-MIMO and should be able to handle peak data rates for a single device in excess of 10 Gbps. The router will look a bit odd, because a dual band version able to handle 4 different devices simultaneously will have 16 antennae. In a domestic environment these developments are all about several family users accessing simultaneously different high bandwidth applications such as internet TV and video services on different types of devices in different places in the home. This sounds a bit 'over-the-top' but in fact a report from 2015 claimed that a household of three or more people had at least five devices simultaneously connected to the internet, and 42% of them said they suffered from performance issues.

iPhone 6_WiFi Antenna

We will close this little side-step in to antenna design and MIMO, and quickly have a look at the iPhone 6 wifi antenna which is attached to the top of the logic board. The iPhone 6 has a back made up of aluminium and two thin, plastic-like bands running across the top and bottom of the device. The antenna sits behind the plastic-like band at the top of the phone and it is believed that this provides a clean escape route for the signal to get through the case (in fact the iPhone 4 had a glass back and the iPhone 5 had glass sections on the back possibly for the same reason). Just for completeness the iPhone 6 implemented IEEE 802.11ac but there is some confusion about MU-MIMO. Some reports say that the iPhone 6 did not support MU-MIMO, but it is possible that it does have the wifi chip from Qualcomm which does support MU-MIMO (but it may not have been implemented). And finally on the iPad Pro the 2 antennae sits behind the screen one behind each of the speakers. The iPad Pro supports IEEE 802.11ac and SU-MIMO for up to 866 Mbps (whereas a non-MIMO iPhone 6 would be 'limited' to 280 Mbps).

Understanding WiFi and Interference

We have mentioned that my old AirPort network worked in the both the 2.4 GHz band and the 5 GHz band. But what does that mean?
IEEE 802.11 is a set of specifications for both the media access control (MAC) and the physical layer for a wireless local area network (WLAN more commonly known as wifi) which operates in five frequency bands including 2.4 GHz and 5 GHz. When we talk of 2.4 GHz we are actually talking about the frequency of the carrier, and the actual signal carrying information is modulated onto the carrier.

Modulation and interference

Readers can jump over this bit if they want. We are going to look at interference (more specifically electromagnetic interference) and we will start by rapidly delving into 'modulation' which most people will have seen mentioned on their radios with FM (frequency modulation in the frequency range 87.5-108.0 MHz) and AM (amplitude modulation in the frequency range 525-1705 kHz). Both of these are analog modulations (a time varying signal) where the audio signal (sound) is modulated onto a continuous wave carrier with a much higher frequency than the message signal. At the receiver the message signal is extracted from the modulated carrier by demodulation. In many ways FM and AM radio work in the same way, the difference being the way the carrier wave is altered (modulated or varied) to carry the signal. AM changes the amplitude or overall strength of the carrier to include the sound information. In FM the frequency of the carrier signal is varied.

AM FM Waves

With AM the changes in amplitude introduce static, whereas with FM the amplitude changes are ignored, so virtually no static, and thus a better quality listening experience. However AM carries over longer distances and requires less bandwidth so it can have more stations available in any frequency range. The lower frequencies of AM means longer wavelengths that can travel further because they are less affected by solid objects, also AM is reflected from the Earth's ionosphere and under the right conditions can travel surprisingly long distances. However, more AM broadcast stations with larger geographic footprints means more interference from neighbouring stations. FM broadcasting is affected by physical barriers (solid objects) so carries over shorter distances, but has a higher bandwidth and thus a better sound quality. FM requires less radiative power, and because it operates over a smaller geographically well defined service area there should be less interference from neighbouring stations. Usually FM stations in the same region will not be licensed on adjacent frequencies, so whilst it is possible to allocate up to 100 bands normally licenses will be issued for only 25-30 station transmitters (i.e. FM requires large interference protection). And we should not forget that AM receivers were inexpensive, but the transmitters needed to be highly linear and were expensive to build and on top of that they consumed a lot of power. On the other hand FM delivers such a substantial improvement in audio quality that still today it is the predominant form of audio broadcasting, and it is used for stereo transmissions.


As the signal travels from the emitter to the receiver it will be prone to interference since most natural sources of radio waves are AM-like and the receiver is unable to differentiate between natural AM waves and the broadcasts by radio stations. For example the Sun's magnetic storms are a big source of natural AM waves as is lightning and snow and dust storms. Over the last 30-40 years man has become a major producer of electrical noise. For example power lines and associated hardware produce unwanted radio signals usually from sparks or arcing, as does most types of large power-consuming equipment (e.g. X-ray machines, arc welders, some types of DC motors, third-rail contacts on electric trains and trams, street lighting, etc.). Many household items can cause interference, e.g. door bell transformers, electric blankets, refrigerators, washing machines, microwaves, old TV monitors, battery chargers, touch controls and light dimmers, and amplified antennas used for TV and stereo systems. Much will depend upon the frequency of the interference, how much power is released, and how near it is to the receiver.

This is not a history lesson, but to understand wifi we need just
a little bit more history! When we talk of AM or FM we think of analog data represented by continuously variable, but measurable, physical quantity such as length, pressure, voltage or frequency, like audio stored as variable data (waves) within the groves of a vinyl disc. But we can of course use AM or FM as a binary (digital) media, simply by deciding that certain amplitudes or frequencies represent 0 and others represent 1. In fact both analog (continuously varying signal) and digital (discrete, sampled values) are just two different ways of encoding a real-world original such as the sound from a musical instrument. Both are analogous to the original sound. When we listen to music we listen to sound, not signals. Analog or digital is irrelevant, what is important is the implementation. You can capture and encode the same sound as both analog and digital signals, so the choice today is largely dependent on cost and what is most logical given the required usability characteristics.

Let's have a look at the kinds of
interference that could occur in the 2.4 GHz band. Bluetooth devices are frequency hoppers, so the can impact all channels. However they are relatively low-power and hop very quickly, so have a limited impact on wifi devices. Cordless phones can occupy the same place (constant spike) or frequency hop. Microwave ovens are usually used for fixed times such as 1 minute, so they can be easily identified. Wireless security cameras usually create three constant spikes that don't change channels. ZigBee are all situated around the same frequency and are for low-rate wireless communication. Some wireless mice operate in the 2.4 GHz band, but they have a minimal range. Some headsets use 2.4 GHz so that they can link into Personal Area Networks, and they tend to change frequencies to avoid other wireless devices. Radar motion sensors use 2.4 GHz radar to detect motion, and they can certainly disrupt wifi networks. Some audio systems use 2.4 GHz to transmit music to wireless speakers, and they can cause large dead-zones in a wireless heat-map. A subset of these systems is the wireless sub-woofer which create 1, 2 or 3 narrow spikes. Analog microphones or guitars can create constant interference. Video baby monitors also use the 2.4 GHz band and can cause wide ranging interference. Lastly, we have other 802.11 compliant networks.

The two methods for radio frequency modulation in the unlicensed 2.4 GHz ISM band are frequency-hopping spread spectrum (FHSS) and direct-sequence spread spectrum (DSSS). Bluetooth uses FHSS while WirelessUSB, 802.11b/g/a (commonly known as Wi-Fi), and 802.15.4 (known as ZigBee when combined with the upper networking layers) use DSSS. All of these technologies operate in the ISM frequency band (2.400"2.483 GHz), which is available worldwide
(Figure 1 below).
The primary motivation for Wi-Fi is data throughput. Wi-Fi is typically used to connect computers to the local LAN (and indirectly to the Internet). Most Wi-Fi devices are laptops that are recharged daily or wall-powered access points and are therefore not power-sensitive.
Wi-Fi uses DSSS, with each channel being 22 MHz wide, allowing up to three evenly-distr
ibuted channels to be used simultaneously without overlapping each other. The channel used by each Wi-Fi access point must be manually configured; Wi-Fi clients search all channels for available access points.
802.11 uses an 11-bit pseudorandom noise (PN) code known as a Barker code to encode each information bit for the original 1 and 2 Mbit/s data rates. In order to achieve higher data rates 802.11b encodes six information bits into an eight-chip symbol using complementary code keying (CCK).
There are 64 possible symbols used in this CCK algorithm, requiring each 802.11b radio to contain 64 separate correlators (the device responsible for turning symbols into information bits), which increases the complexity and cost of the radio, but increases the data rate to 11 Mbit/s.


Figure 1: Signal comparison of wireless systems operating in the 2.4-GHz band.

The focus of Bluetooth is ad-hoc interoperability between cell phones, headsets, and PDA's. Most Bluetooth devices are recharged regularly.
Bluetooth uses FHSS and splits the 2.4 GHz ISM band into 79 1 MHz channels. Bluetooth devices hop among the 79 channels 1600 times per second in a pseudo-random pattern. Connected Bluetooth devices are grouped into networks called piconets; each piconet contains one master and up to seven active slaves. The channel-hopping sequence of each piconet is derived from the master's clock. All the slave devices must remain synchronized with this clock.
Forward error correction (FEC) is used on all packet headers, by transmitting each bit in the header three times. A Hamming code is also used for forward error correction of the data payload of some packet types. The Hamming code introduces a 50% overhead on each data packet, but is able to correct all single errors and detect all double errors in each 15-bit codeword (each 15-bit codeword contains 10 bits of information).

WirelessUSB has been designed as a cable cutter for computer input devices (mice, keyboards, etc) and is also targeting wireless sensor networks. WirelessUSB devices are not recharged regularly and are designed to operate for months on alkaline batteries.
WirelessUSB uses a radio signal similar to Bluetooth but uses DSSS instead of FHSS. Each WirelessUSB channel is 1 MHz wide, allowing WirelessUSB to split the 2.4 GHz ISM band into 79 1 MHz channels like Bluetooth. WirelessUSB devices are frequency agile, in other words, they use a "fixed" channel, but dynamically change channels if the link quality of the original channel becomes suboptimal.
WirelessUSB uses pseudo-noise (PN) codes to encode each information bit. Most WirelessUSB systems use two 32-chip PN codes allowing two information bits to be encoded in each 32-chip symbol. This scheme can correct up to three chip errors per symbol and can detect up to 10 chip errors per symbol. Although the use of 32-chip (and sometimes 64-chip) PN codes limits the data rate of WirelessUSB to 62.5 kbit/s, data integrity is much higher than Bluetooth, especially in noisy environments.
ZigBee has been designed as a standardized solution for sensor and control networks. Most ZigBee devices are extremely power-sensitive (thermostats, security sensors, etc.) with target battery life being measured in years.
ZigBee also uses a DSSS radio signal in the 868 MHz band (Europe), 915 MHz band (North America), and the 2.4 GHz ISM band (available worldwide). In the 2.4-GHz ISM band sixteen channels are defined; each channel occupies 3 MHz and channels are centered 5 MHz from each other, giving a 2-MHz gap between pairs of channels.
ZigBee uses an 11-chip PN code, with 4 information bits encoded into each symbol giving it a maximum data rate of 128 Kbps. The physical and MAC layers are defined by the IEEE 802.15.4 Working Group and share many of the same design characteristics as the IEEE 802.11b standard.
2.4-GHz Cordless Phones
2.4 GHz cordless phones are becoming increasingly popular in North America and do not use a standard networking technology. Some phones use DSSS; most use FHSS. The phones using DSSS and other fixed channel algorithms typically have a "channel" button on the phone allowing users to manually change the channel. FHSS phones do not have a "channel" button, because they are constantly changing channels. Most 2.4 GHz cordless phones use a channel width of 5 to 10 MHz.
Collision Avoidance
Along with understanding how each of the technologies work, it is also important to understand how each technology interacts in homogeneous and heterogeneous environments.
Wi-Fi's collision-avoidance algorithm listens for a quiet channel before transmitting. This allows multiple Wi-Fi clients to efficiently communicate with a single Wi-Fi access point. If the Wi-Fi channel is noisy the Wi-Fi device does a random back off before listening to the channel again. If the channel is still noisy the process is repeated until the channel becomes quiet; once the channel is quiet the Wi-Fi device will begin its transmission. If the channel never becomes quiet the Wi-Fi device may search for other available access points on another channel.
Wi-Fi networks using the same or overlapping channels will co-exist due to the collision avoidance algorithm, but the throughput of each network will be reduced. If multiple networks are used in the same area it is best to use non-overlapping channels such as channels 1, 6, and 11. This allows each network to maximize its throughput since it will not have to share the bandwidth with another network.
Interference from Bluetooth is minimal due to the hopping nature of the Bluetooth transmission. If a Bluetooth device transmits on a frequency that overlaps the Wi-Fi channel while a Wi-Fi device is doing a "listen before transmit", the Wi-Fi device will do a random back off during which time the Bluetooth device will hop to a non-overlapping channel allowing the Wi-Fi device to begin its transmission.
Interference from 2.4 GHz cordless phones can completely stop a Wi-Fi network, even if the cordless phones use FHSS as opposed to DSSS. This is partially due to the wider channel (5 to 10 MHz) compared to Bluetooth (1 MHz) and also due to the higher power of the cordless phone signal. An FHSS cordless phone that hops into the middle of a Wi-Fi channel can corrupt the Wi-Fi transmission, causing the Wi-Fi device to repeat its transmission. 2.4 GHz FHSS cordless phones will most likely cause interference with all Wi-Fi devices in close proximity; therefore, these phones are not recommended for use around Wi-Fi networks. If the cordless phone is DSSS the channels used by the cordless phone and Wi-Fi access point may be configured to not overlap, thus eliminating interference.
Handling Interference in Bluetooth
In Bluetooth, interference from other Bluetooth piconets is minimal, because each piconet uses its own pseudo-random frequency-hopping pattern. If two co-located piconets are active the probability of a collision is 1/79. The probability of a collision increases linearly with the number of co-located active piconets.
Bluetooth originally relied on its frequency-hopping algorithm to handle interference, but people have realized that a single active Wi-Fi network can cause heavy interference on 25% of the Bluetooth channels. Packets lost due to overlap have to be retransmitted on quiet channels, thereby greatly reducing the throughput of Bluetooth devices.
Bluetooth specification version 1.2 addresses this issue by defining an adaptive frequency hopping (AFH) algorithm. This algorithm allows Bluetooth devices to mark channels as good, bad, or unknown. Bad channels in the frequency-hopping pattern are then replaced with good channels via a look-up table. The Bluetooth master may periodically listen on bad channels to determine if the interference has disappeared; if so, the channel is then marked as a good channel and removed from the look-up table. Bluetooth slaves, when requested by the master, can also send a report to the master informing the master of the slave's assessment of channel quality. For instance, the slave may be able to hear a Wi-Fi network the master cannot. The Federal Communications Commission (FCC) requires at least fifteen different channels be used.
The AFH algorithm allows Bluetooth to avoid channels occupied by DSSS systems such as Wi-Fi and WirelessUSB. 2.4 GHz FHSS cordless phones may still cause interference with Bluetooth since both systems are hopping over the entire 2.4 GHz ISM band, but since the Bluetooth signal is only 1 MHz wide the frequency of collisions between the FHSS cordless phone and Bluetooth is significantly less than the frequency of collisions between Wi-Fi and FHSS cordless phones.
Bluetooth also has three different packet lengths that translate into different dwell times on a given channel. Bluetooth has the option to reduce the packet length in an effort to increase data throughput reliability. In this scenario it is better to get smaller packets through at a slower data rate than losing larger packets at the normal data rate.
Handling Interference in WirelessUSB, ZigBee
In WirelessUSB, each network checks for other WirelessUSB networks before selecting a channel. Therefore interference from other WirelessUSB networks is minimal. WirelessUSB checks the noise level of the channel at least once every 50 ms. Interference from a Wi-Fi device will cause consecutive high noise readings causing the WirelessUSB master to select a new channel. WirelessUSB peacefully co-exists with multiple Wi-Fi networks, because WirelessUSB is able to find the quiet channels between the Wi-Fi networks
(Figure 2).


Figure 2: Diagram showing the frequency agility of a WirelessUSB design.
Interference from Bluetooth may cause WirelessUSB packets to be retransmitted. Due to the hopping nature of Bluetooth, WirelessUSB retransmissions will not collide with the next Bluetooth transmission because the Bluetooth device will have moved on to a different channel. Bluetooth networks will not cause enough consecutive high noise readings for the WirelessUSB master to change channels.
ZigBee specifies a collision-avoidance algorithm similar to 802.11b; each device listens to the channel before transmitting in order to minimize the frequency of collisions between ZigBee devices. ZigBee does not change channels during heavy interference; instead, it relies upon its low duty cycle and collision-avoidance algorithms to minimize data loss caused by collisions. If ZigBee uses a channel that overlaps a heavily used Wi-Fi channel field tests have shown that up to 20% of all ZigBee packets will be retransmitted due to packet collisions.
What Can Be Done?
When developing Bluetooth, Wi-Fi, or ZigBee, designers must use the methods provided in the specification. When developing a proprietary system based on 802.15.4, WirelessUSB or other 2.4 GHz radio, designers can use lower-level tools to create frequency agility.
DSSS systems have the most to lose because of the danger of overlapping with another DSSS system. But there are things DSSS systems can do to obtain the frequency agility of FHSS systems. One approach is network monitoring. If the DSSS system uses a polled protocol (where packets are expected at specified intervals) then the master can switch channels after a number of failed transmit attempts or bad received packets.
Another approach is to take a reading of the energy level on the air if the radio has this capability. A receive strength signal indicator (RSSI) can be used to proactively measure the amount of energy on the air and if that level is too high over a period of time switch to a clearer channel. A period of time is taken into account so as not to change channels if a FHSS system is passing through.
Network monitoring and RSSI readings assume that both radios are transceivers — they can transmit and receive packets. In a DSSS system, in which one side is a transceiver and one side is a receiver, a multiple transmit approach can be used to obtain frequency agility. The transmitter sends the same packet at multiple frequencies and the receiver cycles though the receive channels at a much slower rate. This system works when the receiver is connected to power and the battery-powered transmitter is used less frequency. A wireless remote might use this approach.
Wrap Up
Each of the standard 2.4-GHz networking technologies has made design tradeoffs to mitigate the effects of interference or to avoid it altogether. Designers can create their systems to be frequency agile either by using the procedures provided by the standard being implemented or by building their own protocol using the methods mentioned here in conjunction with radio features like RSSI when available. While it will never be possible to completely eliminate interference from outside 2.4-GHz systems, designers can create their systems to be frequency agile and give their product the best chance to survive in today's hostile 2.4-GHz ISM band environment.


Co-channel interference

Cisco and Apple recommends the use of 40 MHz channel widths in environments where throughput performance is required, and 20 MHz for high AP/Client density deployment environments. To allow for an efficient 40-MHz wide deployment the use of DFS channels may become necessary in order to achieve optimal frequency re-use, and reduce the likelihood of co-channel Interference. Without DFS channels enabled in an FCC regulated domain, 4 - 40MHz channels are available. By enabling DFS channels, the number of 40MHz channels available increases to 12 (in the USA).
Although using 80 MHz wide channel bonding may at first seem to boost an individual client performance, in a high AP density environment, the co-channel interference due to limited spectrum availability can potentially reduce the overall network performance.
It is therefore not yet recommended to use 80 MHz channel width design. If necessary, it should only be considered for low AP density deployments where co-channel interference can be easily avoided.

Removing my old wi-fi network

I could have just 'pulled the plug' on my old wifi network, but by breaking it down systematically I was also trying to understand how it worked, and why I saw a schizophrenic behaviour in the RTT and jitter.

First I closed down the wireless connection for the TV stereo system, then I pulled the Chromecast. Removing these produced no discernible different in the performance of my wifi network.

Then I pulled the plug on the downstairs AirPort Express. So I was now connected to wifi network provided by my AirPort Time Capsule upstairs (diagonally through one solid cement floor with reinforcing, one load-bearing wall, and 2 normal brick walls). What happened is that for some reason my MacBook Pro lost access to the 5 GHz network, so I had to revert to the basic 2.4 GHz network. However, having said that I saw no real discernible effect on network speed (it dropped from 25 Mbps to 22 Mbps). Nor was the schizophrenic behaviour of the network RTT and jitter affected.

Moving to the location where my wife has her internet radio, I saw a major change in wfi network performance. The average 'ping' rose to 136 ms with a maximum of 486 ms, and an average jitter of 50 ms but with a maximum of 374 ms. The average speed dropped to an average of 10 Mbps and with a buffer bloat of 210 ms, but with a range of 49 ms to 794 ms. Consistency was only 50%. Oddly, upload did not appear affected. In terms of functionality, the connection was still adequate for most services. It was not immediately apparent why my wife's internet radio should have such an inconsistent or flaky connectivity.

The final step before closing down my old wifi network was to reset my MacBook Pro, my AirPort Time Capsule and my modem. This did not make any difference. I had more or less the same speed, and the same schizophrenic behaviour of the network RTT and jitter.

Installing the Linksys Velop mesh network

As is usual today the box came with an ultra thin setup guide, just telling me (in 25 different languages) to download the Linksys app.

There was also a pointer to
www.linksys.com/app, which then tells me to go and download the Linksys app.

I found a 384 page Linksys Velop User Guide as a pdf
here, and it also told me to go and download the Linksys app.

Now if you (as I did) open the App Store on my MacBook Pro there is only one app and its called Linksys Viewer, costing € 3.49. It is a MAC viewer for IP Linksys cameras, and has nothing to do with installing and setting up a Velop mesh network.

But if you (like me) have an iPad you can go to the App Store and see the Linksys utility, the Linksys+ Viewer for iPad, the Linksys++ Viewer for iPad, and something called uLinksysCam.

So it is evident that
you need an iPad or iPhone to install the Velop mesh network.

But first, the
Velop User Guide is found on a Linksys support webpage for the Velop, and if you look carefully there is not only the possibility to download the user guide and to download firmware updates, but also there is a 'support toolbox' providing access to a whole series of additional webpages on the product, how to setup and install the Velop, etc.

So before looking at the installation what can we learn from these '
support toolbox' pages?
We learn that we
need a mobile device for setup, and the Linksys app is the only way to set up the Velop system.
There is a video on
how to log in to the Linksys Velop web interface.
The Velop is a
tri-band network following the 802.11 ac standard (i.e. the same standard as followed by my 'old' Time Capsule).
features of the Velop are (I quote) next generation AC2200, MU-MIMO technology, intelligent mesh WiFi technology, seamless roaming, 2x2 spatial streams, full speed everywhere, cross-channel solution, Spot Finder Technology, beam forming, guided setup, guest Wi-Fi, parental controls, speed check, notifications, and two gigabit ethernet ports.

Velop Mest Functions

Let's just compare that to my old AirPort Time Capsule. According to Apple's description my old Airport Time Capsule was a duel-band (2.4 GHz and 5 GHz) implementation of the 802.11 ac standard. Beam forming, setup assistant, and built-in firewall, are mentioned as key features. Earlier systems also could be 'extended' to increase coverage, but each 'extender' had its own network name (SSID) and users would have to manually switch sources on their devices, the Apple AirPort did this automatically which at the time was a major improvement.
Firstly both the AirPort Time Capsule and the Velop implement the same IEEE 802.11 ac standard. AC2200 is just one commonly used specification of the rated speed of the 5 GHz band which is (I think) 866 Mbps, MU-MIMO just describes the way several wireless terminals can communicate with each other, and mention of the 2x2 spatial streams is probably just another way of saying 2x2 radios (which I think is inherent in the AC2200 spec.). And 2x2 radio just means each unit has duel antennas and radios and is able to communicate via two streams of transmit and receive (and we have to remember that iPads, iPhones, etc. only have a 1x1 capability, in part to save on battery autonomy). The latest MacBook Pro (with the Touchbar) has a 3x3 MIMO spec'ed at 1.3 Gbps, as does my 2017 MacBook Pro.
The Spot Finder Technology is a kind of help function during setup that helps the user find the 'right' place for each Velop node. I found it very useful.

It is interesting to note that the AirPort was a duel-band network working over the 2.4 GHz band and the 5 GHz band. Whereas the Velop claims to be a trip-band network, but I could never find a specific mention of the bands used. My understanding is that Velop is really a duel-band in that, as with the AirPort, users and devices connect to the network using eirther the 2.4 GHz or 5 GHz bands. However it has a second 5 GHz (so the third band in the tri-band) which is dedicated to communication between nodes, which means it does not 'leach' bandwidth from the other 'access' bands. Apparently it can also tap into the this other 5 GHz band for '
backhaul' if needed.

The key feature is always the 'mesh' technology, a mesh of modular wifi nodes that work seamlessly together. The idea is that the mesh will choose the best path to route the data between a client and the internet. One node connects to the modem and serves as the hub. Check out the description of FAQ on the Velop mesh.
An interesting option is that you can
link Linksys with Alexa, and can then use the trigger words to ask question of Linksys, e.g. "Alexa, ask Linksys …. what is my password?" There are a number of requirements, including an active Linksys cloud account.

There is an
FAQ for the Linksys app. The app allows me to monitor and manage my Linksys Velop system.

Velop downloadable hardware versions
Velop documents
Velop user guide

To use the Velop properly I needed to
create two different passwords. A wifi password, and a Linksys app and Linksys Smart WiFi password (for the Cloud server).

Velop Setup

Now back to the installation using the Linksys app.

I followed the instructions in the Linksys app. The User Guide covers much more than the setup, in fact it does not fully explain the setup routine in the Linksys app.

I found two or three 'bits' in the set-up that could be improved.
Firstly, it is probably a good thing to keep the setup iPad or iPhone near the first node during set up. And you should expect to have to go through quite a number of different steps, and the whole setup took longer than I had expected.
Secondly, the setup initially uses a Bluetooth connection between the first node and the setup iPad or iPhone, and it would be better to switch Bluetooth on right at the beginning.
Thirdly, at one point in time it told me to switch on the wifi on my iPhone. Which I did, to no avail. What they meant was to switch on the wifi on my setup computer, in my case an iPad Pro without a phone connection.


The fourth point is a little bit more complicated. Once the first node is setup, the app will go on to the setup of the second and third nodes. Linksys has something they call the Spot Finder Technology, which helps position the additional nodes. My initial idea was to setup the node, then position it. During the setup the app told me that the second node was too near to the first. So I moved the second node to the place where I had originally installed my old AirPort Express, and of course I had to run through the setup procedures for the second node again. This time it told me that the second node was too far away. So I moved it again, and it still told me that it was too far away. At this point in time I was worried that I had simply bought a network that was worse than the one I already had. With the old AirPort network the AirPort Express 'extends' the network so you install it to get near to the second or third locations where you are likely to use your computer, iPad, or iPhone, etc. With the mesh (and in particular a 3-node mesh) you have to think to cover a surface. And of course you need a spare socket. So (a little by chance) I installed the second node in a different corner of the living room, and now I could complete the nodes setup. The third node again I installed in the bedroom with the idea to 'extend' the network, but again the app told me it was too far away. Yet it was only 4-5 meters away from the second node. The important point in a mesh is that all the nodes communicate so what the software should tell me is that the third node was too far away from the first node. Moving the third node back in to another corner of the living room, I could finish the installation.

The key point with the Spot Finder Technology is that it forced me to think about locating the node in a different places in the downstairs living room. Having found the good place for the second node I suddenly realised that the path from the first node to the second no longer went through one solid cement floor with reinforcing, one load-bearing wall, and 2 normal brick walls. Compared to the combination AirPort Time Capsule to AirPort Express the second Velop node was further away from the first, but the key was that the signal only had to go through one solid cement floor with reinforcing. And in addition the link between that node and my wife's small internet radio was just through one normal brick wall. Had the Apple used a similar help tool to position the AirPort network I might wee have found a different way of positioning the AirPort Express and I might eve have achieved the same result.
Still all is not lost. The Time Capsule will go back on the Velop network for my backups, and the AirPort Express will be moved to a different network in a different home.

This 3-page review, not always positive, provides a very good overview of the Velop hardware and network installation and functionality.

Connecting devices to the wifi network

iPad's and iPhones to the new wifi network was just a simple process of selecting the network and inputting the correct password.

I started with my
Canon printer. Initially I thought it would be a simple process of telling the printer the new wifi network, and then logging in to it with my network password. Despite seeing the network and inputting the correct network password, the printer never made the connection with the main (and nearest) Velop node, despite it being in the same room. So finally I found a webpage on the printer setup for Velop using WPS, and the connection was made within 2-3 minutes.

The next thing I re(connected) to the wifi network was my wife's small
internet radio. Unfortunately the model is no longer made, but I did find the original software on the internet and could reconfigure the internet connection.

Linksys Community

There exists a
Linksys Community

Run reporting diagnostics

Testing Velop

It seems reasonable to test my new Velop using the same speedtest on SourceForge, and make a 'before-and-after' comparison.

Round Trip Time (RTT)
Ping Average - Before 77ms (range 32 ms - 278 ms) - After 34 ms (range 27 ms - 67 ms)
Jitter Average - Before 26 ms (range 0 - 187 ms) - After 5 ms (range 0 - 36 ms)
Download Quality
Speed Average - Before 22 Mbps (range 20 Mbps - 25 Mbps) - After 28 Mbps (range 16 Mbps - 28 Mbps)
Buffer Bloat Average - Before 79 ms (range 43 ms - 184 ms) - After 40 ms (range 32 ms - 64 ms)
Upload Quality
Speed Average - Before 28 Mbps (range 15 Mbps - 41 Mbps) - After 12 Mbps (range 7 Mbps - 22 Mbps)
Buffer Bloat Average - Before 65 ms (range 40 ms - 194 ms) - After 69 ms (range 43 ms - 209 ms)

Firstly, a small but noticeable improvement in overall download speed, but a decrease in upload speed. I'm not sure that this will be felt in everyday use. All application such as Netflix, Youtube and VoIP worked well before the change, and work just as well after the change.
Secondly, a noticeable improvement in the RTT with a major improvement in buffer bloat and resultant latency. As we can see below for before and after, the
schizophrenic nature of my RTT appears to have disappeared.

Before after

Thirdly, performance in the living room is still excellent with an average download speed of 27 Mbps, low buffer bloat and and an average RTT of 35 ms with an average jitter of 7 ms.
Finally, at the worst case location (my wife's internet radio in the bathroom) the average download speed had dropped to a still acceptable 13 Mbps, average buffer bloat was 128 ms with an average RTT of 43 ms, and above all an average jitter of 6 ms.

So far my wife has experienced no intermittent breaks in radio reception through the wifi. She is happy, I'm happy.

It is interesting to understand better what buffer bloat is. We have seen in the above data that with the Velop buffer bloat has been reduced considerable, and thus latency has also been reduced. And the schizophrenic nature of RTT has disappeared. Buffer bloat is about the local router buffer (we have change the router from the AirPort to the Velop) filling up, then overflowing and dropping packets, so the download or upload stalls, the buffer empties, and the process continues. The browser buffer can also have an influence in the early part of the test.

But, delving deeper (as is my
wont) people have questioned the reliability of the speedtest on SourceForge (and the 'pro' community considered them 'persona non grata' but that may change now that they have been bought by BizX). It is possible that the speedtest itself freezes occasionally producing a false packet loss spike. Some data centres (I.e. running in the 100's Mbps) complained that this speedtest produced odd upload figures, and appears to underestimate download speeds. On the other hand some complain that it significantly over estimates download speeds.


I have now come across
DSLReports, a broadband information and review website, which also has a speedtest.

Below we have a discussion of the results from the DSLReports speedtest.

Speed Profile and Grades

So we see a download speed of 29.2 Mbps and an upload speed of 10.07 Mbps, which compares reasonably well with those given by SourceForge's speedtest.
The buffer bloat was graded as A+, meaning less than 5 ms (as an addition of buffer bloat on download added to buffer bloat on upload).
The Quality index of D means that the average detected packet loss and retransmit percentages is only 12% or less, i.e. poor compared to the best with 1% or less.
The assessment of speed is compared with others on the same technology in the same country, i.e. data is available for only one other test made in Luxembourg using this speedtest.
We can get a better idea of latency by looking at the different 'ping' times to the servers used in the latency tests (see below).

Latency Radar Plot

ISP and Comparision
Run Information
Server View
Run Log

The really cool thing about the DSLReports is that they also have a whole series of more specific tests on their 'Test and Tools' webpage. As an example you can run a 24 hour test on a connection for packet loss and latency variability.


The overall conclusion in looking at SourceForge's speedtest and DSLReports speedtest is that they both yield the same values and confirm that in moving to Velop I've gained a little in bandwidth, quite a lot in overall coverage inside the apartment, and above all I've removed a source of buffer bloat and a s
chizophrenic RTT. Thus we should not have any connectivity problems and no drops and reconnects in the wifi signal, and so my wife is happy again with the reception of her internet radio in the bathroom.



Checking the firmware version of your Velop system



Mac network utility

Apple wireless diagnostics

The first place to start should be Apple's own wireless diagnostics. To do this just hold down the 'option' key and click on the wifi network icon in the title bar.

wi-fi Network Icon in Title Bar

This will open a drop down menu with a 'wireless diagnostics' option. The problem is that the reporting of the diagnostics is not that user-friendly. The report is intended more for Apple to fault-find and investigate the operation of the wireless options on their hardware, and is a bit difficult to read and digest.

Wireless Diagnostics

In addition to the diagnostic report there is a diagnostic feedback panel with suggestions concern how to improve the network performance. You will see later that I prefer to use a scanner app to check out my wifi network. At the end of this webpage I will look more carefully at Apple's diagnostics performed on my new Velop mesh network.


Type “man port” at the command line prompt




buffer bloat and latency 2018

are often called
line codes, and are patterns of voltage or current transmitted down a transmission line. As such they are directly related to the history of the telegraph (or the Electric Telegraph), and more generally that of the propagation of electricity (including electrostatics, 'atmospheric electricity', classical electromagnetism, electrical networks, etc.).
Below I will try to pull together some key moments in the development of basic pulse electronics and coding schemes.
In 1746
Pieter van Musschenbroek (1692-1761) invented the first capacitor, otherwise known as the Leyden jar. This was the first way to store electric charge in a way that could be discharged at will, and derivatives of this invention were used up to ca. 1900 when the wireless telegraphy created a demand for standardised capacitors. In 1826 Félix Savary (1797-1841) noted that a Leyden jar when discharge did not always have the same polarity. It was in 1853 that Lord Kelvin (1824-1907) was able to propose an equation for the discharge of a capacitor through a conductor, and in doing so he described the so-called 'resonance circuit' or LC circuit. It is these circuits that are both able to generate signals at particular frequencies and pick out a particular frequency from a more complex signal (now called a bandpass filter or a filter that passes some frequencies and rejects others). These circuits are used to tune radio transmitters and receivers. It is this type of circuit that resonates for a particular carrier frequency. In 1881 it was Nikola Tesla (1856-1943) that invented the 'Tesla coil' which was still used through to the 1924 in the spark-gap transmitter for wireless telegraphy (check out this excellent historical review of spark-gap transmitters, the 'coherer' and early crystal detectors).

In 1799
Alessandro Volta (1745-1827) invented the 'pile' and by connecting one end of the 'pile' to the other produced a spark (he was always interested in what was called 'electrology' at the time). Many experts point to this as the first 'electric circuit'. Although the use of the term 'circuit' predates Volta, the 'pile' is considered by many as the 'most valuable piece of equipment in the whole of science'. The direct current from a 'pile' made possible the study of both the magnetoelectric effect and electrodynamics, the forefathers of 'the most noble form of energy' electricity. In 1800 William Nicholson (1753-1815) and Anthony Carlisle (1768-1840) discovered electrolysis by passing a voltaic current through water to liberate hydrogen and oxygen (check out this excellent introduction to electrochemistry). By 1802 Vasily Petrov (1761-1834) was using voltaic piles to discover the electric arc effect (an electrical breakdown in a gas). In 1888 Ernst Lecher (1856-1926) showed that the current through an electric arc coil could be oscillatory, and in 1892 Elihu Thomson (1853-1937) built a LC tuned circuit (i.e. a resonant circuit) placed in parallel with an electric arc. The arc oscillator had to be 're-discovered' again 1900 by William Duddell (1872-1917) as the "Singing Arc" because they produced audible humming, hissing, or even howling sounds (i.e. limited to audio frequencies). It would be Valdemar Poulsen (1869-1942) who would in 1902 extend Duddell's oscillator to the radio range, and make the first continuous wave radio transmitter. So the first practical oscillator was based upon the electric arc. These generated radio waves, but could not transmit sound. Instead they transmitted information by telegraphy, the operator tapped on a telegraph key which turned the transmitter on and off to produce pulses of radio waves spelling out the text messages in Morse code. The reality was that it took too much time to strike and operate the arc, so normal on-off keying could not be used. Instead they used frequency shift keying where the arc was operated continuously and the key altered the frequency. Just to give the reader an idea about an arc converted we can see below that it was neither desk-top nor hand-held. Fortunately these spark transmitters were replaced in the 1920's by vacuum tube transmitters.

Poulsen Arc Transmitter

Morse Code

Above we have an example of a continuous wave Morse code transmission first used in 1844, as compared with Amplitude Modulation (AM) first tested in 1900 and Frequency Modulation (FM) first patented 1914-1922.

Back in 1821
Michael Faraday (1791-1867) had demonstrated 'electromotive rotation' as seen today in electric motors and dynamos. However we would have to wait until 1827 for Georg Simon Ohm (1789-1854) to define 'resistance' and describe the fundamental laws of resistive circuits, i.e. Ohm's Law. In 1845 Gustav Kirchhoff (1824-1887) would generalise Ohm's Law in the form of the physical laws of galvanic circuits. Back in 1832 Joseph Henry (1797-1878) would use magnetic induction to invent the electromechanical switch (known also as a relay) and Hippolyte Pixii (1808-1835) would create the alternating current electrical generator. In 1862-64 James Clerk Maxwell (1831-1879) developed the equations for the electromagnetic field and demonstrated the electric and magnetic fields travelled through space as waves. In 1887 Heinrich Hertz (1857-1894) experimentally proved the existence of electromagnetic waves, and as such was one of the founders of wireless communications.

Samuel Morse (1791-1872) would use the relay of Henry to create Morse-code signals in ca. 1844, and by the 1890's Morse-code was used extensively for early radio communications. It remained in use throughout WW II and was only withdrawn as the maritime distress code in 1999.

Guglielmo Marconi (1874-1937) first demonstrated wireless transmission 1896 when he transmitted a Morse-code over about 6 kms, and by 1899 he was able to transmit across the English Channel. In 1902 he demonstrated that it was possible to transmit and receive wireless signals over a distance in excess of 3,400 kms (thus proving that it was not just a 'line-of-sight' technology). At the time Marconi employed the spark-gap to transmit Morse

In 1883
Léon Charles Thévinin (1857-1926) extended Ohm's Law to the analysis of complex electrical circuits .Thévenin's Theorem says that any one-port network can be reduced to a single voltage source and a single impedance (a resistance in AC circuits). In 1926 Edward Lawry Norton (1898-1983) proposed a generalisation of Thévenin's Theorem. Norton's Theorem states that a circuit of remittances and voltage and current sources can be replaced by an equivalent circuit with a current source in parallel with a resistance, and the theorem is also valid for AC source in parallel with a reactive impedance.


1902 marconi
1914 first cross continent telephone call
1916 first radio tuner
1930 first tv

Source coding von sommering 1808
Electrochemical telegraph
Cooke and Wheatstone telegraph 1839
Single needle telegraph 1850
Eiffel Tower telephone 1885
Candlestick telephone 1921

1831 Henry electric telegraph
1843 morse
1876 bell electric telephone
Lee de forest audion 1907
Edward Armstrong fm 1934

Analog- digital Conversion