Creating Redundant Wireless Topology in Mininet-Wifi
In this article, we will explore how to create a redundant wireless topology using Mininet-Wifi. Our main idea is to apply creative redundant links for every station network. For example, we want to make it possible for any station to connect to any other station or access point in the network.
Mininet-Wifi Introduction
Mininet-Wifi is an extension of Mininet, which is a popular network emulator for creating and testing software-defined networks (SDNs). Mininet-Wifi extends Mininet's capabilities to support wireless network emulation, including 802.11 a/b/g/n/ac wireless LANs and 802.11s mesh networks.
Redundant Wireless Topology
Creating a redundant wireless topology involves adding multiple paths between the nodes in the network. This can be achieved by adding extra access points and stations and configuring them to connect to multiple peers in the network. Redundant topologies can help improve the reliability and performance of the network.
Creating the Topology
To create the redundant topology, we will first need to create a basic topology using Mininet-Wifi. Here's an example of a basic topology with two access points (AP1 and AP2) and three stations (STA1, STA2, and STA3).
This basic topology has two access points (AP1 and AP2) and three stations (STA1, STA2, and STA3). STA1 and STA2 connect to AP1, and STA2 and STA3 connect to AP2. This topology provides a basic connection between the nodes in the network, but it does not provide any redundancy.
Adding Redundancy
To add redundancy, we need to add additional links between the access points and stations in the network. Here's an example of how to add redundant links between the nodes:
net.addLink(ap1, sta3)
net.addLink(ap2, sta1)These new links provide additional paths between the nodes in the network, allowing traffic to flow through multiple paths. This can help improve the reliability of the network and reduce the impact of a single link failure.
Configuring the Topology
Once we have added the redundant links, we can configure the access points and stations to connect to multiple peers in the network. Here's an example of how to configure the access points:
ap1.setProp('associatedStationSet', set([sta1, sta2, sta3]))
ap2.setProp('associatedStationSet', set([sta1, sta2, sta3]))This configuration sets each access point to associate with all three stations. Similarly, we can configure the stations to connect to multiple access points:
sta1.addStation('ap1', ssid='my-ssid',
channel=1, enable_debug=True)
sta2.addStation('ap2', ssid='my-ssid',
channel=6, enable_debug=True)
sta3.addStation('ap2', ssid='my-ssid',
channel=6, enable_debug=True)This configuration sets each station to connect to both access points using the same SSID and channel. With this configuration, traffic can flow between any two stations in the network, even if one of the links fails.
Testing the Topology
Once we have created and configured the topology, we can test its performance by running various network tests. Here's an example of how to test the throughput between two stations:
sta1.cmd('iperf -s -p 5001 > throughput.txt 2>&1')
sta3.cmd('iperf -c 10.0.0.1 -p 5001 > throughput.txt 2>&1')This command starts a server on STA1 and sends traffic from STA3 to STA1. The results can be stored in a file called throughput.txt, which can be analyzed to determine the throughput between the two stations.
Summary and References
In this article, we explored how to create a redundant wireless topology using Mininet-Wifi. We covered the following key concepts:
- Mininet-Wifi Introduction
- Redundant Wireless Topology
- Creating and Configuring the Topology
- Testing the Topology
The following references were used in the creation of this article: