Connecting to multiple IEEE 802.11 networks with one WiFi card

March 24th, 2009


Connecting to multiple IEEE 802.11 networks with one WiFi card

via VirtualWiFi Home.

(VirtualWiFi is an old project, and we started working on it in 2002. We are not actively working on this project since 2006, and will not be supporting this software at Microsoft Research. Thanks for your interest. However, the software and code will still be available for you to play around with.)

VirtualWiFi (previously known as MultiNet) is a virtualization architecture for wireless LAN (WLAN) cards. It abstracts a single WLAN card to appear as multiple virtual WLAN cards to the user. The user can then configure each virtual card to connect to a different wireless network. Therefore, VirtualWiFi allows a user to simultaneously connect his machine to multiple wireless networks using just one WLAN card. This new functionality introduced by VirtualWiFi enables many new applications, which were not possible earlier using a single WLAN card. For example,

  • With VirtualWiFi, you can connect to a guest’s machine or play games over an ad hoc network, while surfing the web via an infrastructure network.
  • You can use VirtualWiFi to connect your ad hoc network, which may contain many nodes, to the Internet using only one node.
  • VirtualWiFi can help make your home infrastructure network elastic by extending its access to nodes that are out of range of your home WiFi Access Point.
  • We have explored three more applications of VirtualWiFi. The first application is called Client Conduit, which is a very useful tool for fault diagnosis and recovery in Wireless LANs. Client Conduit is a tool that provides a thin pipe of communication for disconnected clients to exchange diagnosis information with the back end servers. The thin pipe is achieved by running VirtualWiFi on the connected clients. These clients dynamically connect to disconnected clients over an ad hoc network, and send messages from them to the back end servers. VirtualWiFi enables this thin pipe without requiring the connected client to explicitly disconnect from the infrastructure network. A more detailed description of Client Conduit can be found in the paper titled: “Architecture and Techniques for Diagnosing Faults in IEEE 802.11 Infrastructure Networks”.

    The second application of VirtualWiFi that increases the capacity of wireless ad hoc networks using orthogonal channels is called Slotted Seeded Channel Hopping (SSCH). SSCH uses VirtualWiFi to virtualize a wireless card with as many instances as the number of orthogonal channels. It then connects each virtual wireless card on a different orthogonal channel. Furthermore, SSCH proposes a novel scheme of partial synchronization that can be used with VirtualWiFi. The details of the SSCH protocol are described in another paper, titled: “SSCH: Slotted Seeded Channel Hopping for Capacity Improvement in IEEE 802.11 Ad-Hoc Wireless Networks”.

    The third application of VirtualWiFi is called WiFiProfiler, which enables clients to cooperatively diagnose the root cause of various wireless problems. Clients, including the ones that are disconnected from the WLAN, use VirtualWiFi to form an information plane, which is different from the data plane (the WLAN). All clients then exchange configuration information over this information plane and use this information to diagnose the root cause of various wireless failures. The details of this idea are described in a technical paper, titled: “WiFiProfiler: Cooperative Diagnosis in Wireless LANs”.

    We have implemented VirtualWiFi on Windows XP. The current version is a prototype implementation of VirtualWiFi, and we are in the process of making our software more robust to include more features. Your comments are very welcome.