14-814/18-637: Wireless Network Security - Spring 2017
Assignment #3 - Implementing MAC Layer Misbehaviors
- Assigned: February 14
- Due: March 2
- Description: The goal of this assignment is to modify the IEEE 802.11 MAC layer code to include various options for MAC layer misbehavior
into your existing WiFi network simulation/experimentation setup. The assignment has three primary components 1) familiarize yourself with
the WiFi MAC implementation in your system, 2) demonstrate your understanding of MAC layer misbehavior, and 3) come up with interesting
new forms of MAC misbehavior. Students have an option to complete the assignments using either the OMNET++ network simulator (following the Tasks
for OMNET++ instructions) or with their own Raspberry Pi 3 or similar devices (following the Tasks for RP3 instructions). In either case,
we recommend working on the assignment as soon as possible.
- Tasks for OMNET++:
- Backup some Files! - Since you're about to modify important files in INET, it would be good to make backups. As you progress, please
create backup copies of any
.cc
, .h
, and .ned
files in INET before you change them...just in case.
- Modify the WiFi MAC - Directly modify the 802.11 MAC implementation included in INET to allow for cheating and misbehavior at the MAC layer,
without breaking the native functionality of the WiFi MAC. To do this, define a new variable
cheatType
in the IEEE 802.11 MAC
implementation in the folder inet/src/inet/linklayer/ieee80211/mac/
(most likely in the Contention.h/.cc
files), then modify
the logic in the .cc
file such that
- the default behavior is used when
cheatType = 0
,
- the client sets a backoff value of 0 when
cheatType = 1
, and
- the client uses 1/2 the normal contention window size (i.e., replace
cw
with cw/2
) when cheatType = 2
.
Create a new network setup that allows you to specify (1) the total number of WiFi clients, (2) the number of these clients that misbehave, and (3)
which type of misbehavior each of these clients is using, all configurable through the .ini
file, for example using statements like
**.cliHost[0].wlan.mac.cheatType = 1
**.cliHost[1].wlan.mac.cheatType = 2
Simulate a WiFi network with 4 clients using various combinations of cheaters, collect some data, and create some interesting plots.
- Extend your Misbehavior Profile - Building on the material discussed in class, implement another form of MAC misbehavior by creating another
behavior under
cheatType = 3
, focusing on misbehavior not related to the backoff counter. Repeat your simulation above, and create
some interesting plots showing the differences among misbehavior types. Comment on the tradeoffs between different types of misbehavior.
- Think about Detection - Collect and visualize some data that, from the perspective of the WiFi access point or controller, could be useful in
detecting the various forms of cheating. Note that some forms of cheating are easier to detect than others, so try to find a few different measurement
types that enable misbehavior detection. You don't have to actually implement the detector, just show the data trends that can differentiate cheating
from compliance. Be sure to pay attention to what measurements are actually observable from the perspective or the access point/controller.
- Tasks for RP3:
- Backup some Files! - Since you're about to modify important drivers and system files, it would be good to make some backups, so you don't lose
your previous work. As you progress, please create backup copies of any driver code, scripts, and other files before you change them...just in case.
- Modify the WiFi MAC - Directly modify the 802.11 MAC implementation in the open source driver that you're using for your RP3 testbed to allow
for cheating and misbehavior at the MAC layer, without breaking the native functionality of the WiFi MAC. To do this, define a new variable
cheatType
in the IEEE 802.11 MAC implementation (specifically, in whatever file(s) implement MAC-layer contention, such that
- the default behavior is used when
cheatType = 0
,
- the client uses the minimum allowed backoff value (usually 0 or 1, look for checks and error conditions) when
cheatType = 1
, and
- the client uses 1/2 the normal contention window size (i.e., replace
cw
with cw/2
) when cheatType = 2
.
Create a new initialization/execution script that allows you to specify the type of misbehavior the client should exhibit when loaded with this firmware.
Include as many clients as you can in your study, and experiment with different combinations of cheaters. Collect data for each experiment, and create
some interesting plots/tables to summarize the outcomes of your study.
- Extend your Misbehavior Profile - Building on the material discussed in class, implement another form of MAC misbehavior by creating another
behavior under
cheatType = 3
, focusing on misbehavior not related to the backoff counter. Repeat the relevant parts of the previous
task, and create some interesting plots showing the differences among misbehavior types. Comment on the tradeoffs between different types of misbehavior.
- Think about Detection - Collect and visualize some data that, from the perspective of the WiFi access point or controller, could be useful in
detecting the various forms of cheating. Note that some forms of cheating are easier to detect than others, so try to find a few different measurement
types that enable misbehavior detection. You don't have to actually implement the detector, just show the data trends that can differentiate cheating
from compliance. Be sure to pay attention to what measurements are actually observable from the perspective or the access point/controller.
- Deliverables: Each student will submit a written summary of their efforts in the above tasks, including the following:
- A brief description of what you did to fulfill each task, including details of the changes made to any code or other components,
- Properly labeled (with description and units) and easy-to-understand plots created in each task, and
- Detailed descriptions of the results of each study, with any insights gained or conclusions reached in your study.
The written summary should be no longer than five (5) pages in a single-column format using font size 10 or greater.
- Submission Instructions: Each student should submit a
.pdf
version of their written summary via Blackboard, using
the format requested above. All students are expected to complete the assignment on their own; discussion about the assignment is allowed
and encouraged, but all writing and coding must be done individually.
- Grading Rubric: This assignment is worth 35 points total. Fifteen (15) points are allocated to the detailed description of the steps
taken in completing task 1, fifteen (15) points are given for task 2, and five (5) points are given for task 3. We reserve the right to take off points
for presentation aspects, e.g., incorrect format, poor writing, etc.