Resources for WiFi

5 minute read

Published:

IEEE 802.11 (WiFi) has been used in most of the laptops, smartphones, tablets. The widespread use of WiFi has led to extensive research interests in the area of localization, security, sensing and produced massive successful research outcomes. This paper summarizes some hardware and software resources for WiFi for the research purpose.

Strictly speaking, IEEE 802.11 is the standard by IEEE and WiFi is a trademark of the WiFi alliance. However, they are used interchangably in this post.

Standard

IEEE 802.11 standard defines the physcai layer and media access control (MAC) layer protocols. It has undergone a number of amendments in the last twenty years, since its first release in 1997. A complete list of the IEEE 802.11 amendments is summarized at wikipedia.

PHY Layer

The main physical layer amendments include 802.11b (1999, DSSS), 802.11a (1999, OFDM, 5 GHz), 802.11g (2003, OFDM, 2.4 GHz), 802.11n (2009, MIMO OFDM, high throughput), 802.11ac (2013, MIMO OFDM, very high throughput), 802.11 ax(est late 2019, high efficiency).

OFDM Basics

IEEE 802.11 OFDM Receiver Design

MAC Layer

WiFi use CSMA/CA as the MAC layer protocol.

Frame Types

  • Control frames
  • Management frames
  • Data frames

How 802.11 Wireless Works 802.11 Association Process Explained

802.11 Wi-Fi Connection/Disconnection process

802.11 Wi-Fi Security Concepts

Testbed and Implementations

USRP Software Defined Radio (USRP)

Openwifi

  • openwifi is an SDR (Software Defined Radio) implementation for IEEE802.11/Wi-Fi design with Linux mac80211 compatible full-stack.
  • zynq FPGA + FMCOMMS2/3/4 RF board
  • For Chinese user, there is a presentation video introducing openwifi by Dr. Jiao.

WARP 802.11 Reference Design

There is an 802.11 reference design implemented for WARP boards, which is compatible with the commercial WiFi. An experimental framework is implemented by Python for the research development. The available variables/parameters can be found here, among which the CSI is made public.

WARP is being actively used for research in many areas like power management, architectures for wireless receivers, physical layer algorithms, access protocols, routing and cognitive radios.

A list of papers using WARP can be found at here.

PLEASE NOTE WARP IS DISCONTINUED.

Network Interface Cards CSI Extraction

The commercial network interface cards (NICs) only provide received signal strength indicator (RSSI) but not channel state information (CSI). RSSI represents the received power which is averaged over a packet, thus it is a coarse grained parameter. On the other hand, CSI is a fine grained parameter, and offers detailed channel response over different frequencies/subcarriers, when OFDM-based technique is used.

There are some CSI extraction tools for the commercial NICs.

Intel 5300 NIC

There is the Linux 802.11n CSI Tool for Intel 5300 NIC. This Intel NIC together with the CSI tool have been used extensively by researchers and led to many excellent research papers. A list of the relevant publications can be found at link.

Please note PCI-e interface is required for these NICs.

Atheros Chipsets

There is Atheros CSI Tool. A list of the relevant publications can be found at here.

Braodcom WiFi Chipsets

ESP32 CSI Toolkit

Software Tool

Matlab WLAN Toolbox

The Matlab WLAN Toolbox is very powerful. There are many useful functions and examples. Both PHY and MAC layers are supported. I strongly suggest to test your idea and algorithms using this Toolbox before you do it with real hardware.

Scapy

Scapy official website defines

Scapy is a Python program that enables the user to send, sniff and dissect and forge network packets. This capability allows construction of tools that can probe, scan or attack networks.

There is a library supporting IEEE 802.11.

Code Examples:

Radiotap

  • What is radiotap? link

Network Monitoring

Wireshark

  • Download Link
  • Wireshark User Guide

    Wireshark is a network packet analyzer. A network packet analyzer presents captured packet data in as much detail as possible. You could think of a network packet analyzer as a measuring device for examining what’s happening inside a network cable, just like an electrician uses a voltmeter for examining what’s happening inside an electric cable (but at a higher level, of course).

Misc Resources

WiFi Modes

iwconfig - Linux man page

Set the operating mode of the device, which depends on the network topology. The mode can be Ad-Hoc (network composed of only one cell and without Access Point), Managed (node connects to a network composed of many Access Points, with roaming), Master (the node is the synchronisation master or acts as an Access Point), Repeater (the node forwards packets between other wireless nodes), Secondary (the node acts as a backup master/repeater), Monitor (the node is not associated with any cell and passively monitor all packets on the frequency) or Auto.