direkt zum Inhalt springen

direkt zum Hauptnavigationsmenü

Sie sind hier

TU Berlin

Page Content

Service Announcement Using Beacon Stuffing In 802.11 Networks


Over the last few years, it's a tendency that people are getting used to being around by all kinds of information shown on their personal devices in daily lives. Traditionally, most of these service information will be announced through two methods – Wifi and GPS. But both of them have some disadvantages which cannot be ignored of. Considering the disadvantages of current service announcement solutions, i.e, limitation in the indoor environment and the long procedure before connection, a new solution using beacon stuffing to announce services comes up in this project.

Beacon frame is a kind of management frame in MAC layer and used for wireless network discovery. A user equipment (UE) will receive the beacon frames broadcast by an AP to get the information of AP’s SSID, BSSID, QoS information, etc, when it enters an area covered by the AP. Service announcement by overloading Beacon frames is called Beacon stuffing, which is a low bandwidth communication protocol for IEEE 802.11 networks that enables APs (Access Point) to communicate with clients without association.

IEEE 802.11 standard allows adding non-standard, vendor-specific information in the ”vendor specific” Information Element (IE) field of beacon frame. By overloading this IE filed, the beacon frames don’t need to be specially defined and a higher bandwidth can also be provided compared with the other fields.

Since there are only limited Bytes in the vendor specific field, it is really important to find a proper way to encode the information before inserting them into the beacons. A small and easily used open source API called protocol buffers which is offered by google developer is used for the encoding.

To fulfill this service announcement solution, the project is made up by three subcomponents: Database, Transmitting side and Receiving side:

Project structure




  • 2 Laptops, one behaves as an access point (AP) on the Tx side, another as a client user on the Rx side
  • 2 wireless cards: WAG511, driver ath5k


  • Rx: Ubuntu 13.10,kernel version 3.12.0
  • Tx: ubuntu 12.10,kernel version 3.9.4

Software setup:

  • Google protobuf
  • hostapd
  • libpcap

Database and Encoding Structure

Several classes and structs are built to realize all the expected functions in the database. The data flow showing the functions of the database is shown as follows:

Flow chart describing database functions

There are two approaches to encode the messages. One will use a prototype to encode all the information and the other approach allows service providers to define the attributes they want and throw the unused attributes away. In this project, the default set up will use the second approach.

Encoding Approach

Beacon Information embedding

After the encoding, the binary information has to be embedded into the beacon frames which should be done in this project in the kernel space of linux OS and then transmitting and receiving through 2 wireless cards.

The transmission and receiving path in Linux OS and the software structure can be described as follows:

TX side software structure

To enable the communication between the user space and kernel space in Linux for TX side, a Netlink based module is used.

Netlink based communication module

To receive and filter beacon frames, library libpcap is used to help with extracting the embedded information out of the kernel space.

RX side software structure

Result analysis

The whole system can encode a service information, embed it into beacon frame and finally correctly receive and decode it.

Information before encoding, in the Linux kernel and after decoding

A beacon interval can be set from about 15ms to 65535ms. However, since we use busy waiting in the Netlink kernel module, it will cost a lot of resources when the beacon interval becomes longer. So the performance of the system will decrease when increasing the beacon interval.

CPU usage along Beacon interval


In this project we go further for the idea of beacon stuffing. To make use of the beacon stuffing in service announcement, we designed a relative integrated system including service announcement database, beacon frames transmission part, beacon frames receiving part and implemented the several APIs, which are used to help with service encoding, transmission, receiving and decoding. Our system can basically fulfil the tasks of beacon stuffing. Since the user equipment doesn’t need to go through the whole procedure of being connected to wifi as usual, the beacon stuffing can show a big advantage for service discovery. Combined with a service filter, it will be faster for the users to get the services they want. Nowadays more and more space are covered by hotspots/access points, and in this situation, the beacon stuffing shows a huge potential and a pretty good outlook.

Zusatzinformationen / Extras

Quick Access:

Schnellnavigation zur Seite über Nummerneingabe

Auxiliary Functions


Jing Cao
Xiangnan Yin