14-814/18-637: Wireless Network Security - Spring 2016
Assignment #3 - Implementing MAC Layer Misbehaviors
- Assigned: February 11
- Due: March 3
- Description: The goal of this assignment is to modify the IEEE 802.11 MAC layer code in OMNET++ to include various options
for MAC layer misbehavior into your existing WiFi network simulation setup. The assignment has three primary components 1)
familiarize yourself with the WiFi MAC implementation in OMNET++, 2) demonstrate your understanding of MAC layer misbehavior,
and 3) come up with interesting new forms of MAC misbehavior. As with the previous assignments, we highly recommend that you
start working on the tasks as soon as possible.
- Tasks:
- Backup some Files! - Since you're about to modify important files in INET, it would be good to make a backup copy. 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 inet/src/linklayer/ieee80211/mac/Ieee80211MAC.h
and the corresponding .cc
file, 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 they use, 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
. Repeat your simulation above and create some interesting plots showing the
differences among misbehavior types.
- 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.
- 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 the
.h/.cc
code and
any other changes needed,
- Properly labeled and easy-to-understand plots created in each task, and
- Detailed descriptions of the results of each study, and any conclusions you reached in your experimentation.
The written report should be formatted according to the IEEE
conference proceedings template, using either Microsoft Word or LaTeX, and converted to a .pdf
document.
- 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 the writing and coding should be done individually.
- Grading: This assignment is worth 35 points: 18 points for task 1; 10 points for task 2; and 7 points for task 3. We reserve
the right to take off points for presentation aspects, e.g., incorrect format, poor writing, etc.