14-814/18-637: Wireless Network Security - Spring 2017
Assignment #1 - Set up your Experimentation Environment
- Assigned: January 17
- Due: January 31
- Description: The goal of this assignment is to set up and familiarize yourself with the experimentation environment that you will use for subsequent assignments in this course. In doing so, you will learn through first-hand experience how to use various features of your hardware or software setup for wireless networking. The assignment has three primary components: 1) configuring your development and testing environment, 2) learning how to execute and measure various features of a network simulation/implementation, and 3) collecting, analyzing, and visualizing your measurement data to extract useful information about network operation and performance. 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, these components will serve as the foundation for remaining assignments and possibly for the course project, so we recommend working on the assignment as soon as possible.
- Tasks for OMNET++:
- Set up the OMNET++/INET IDE - Follow the available installation and configuration guides to set up the development environment for OMNET++ including the optional INET add-on.
- Learn to use OMNET++ and INET - Go through the sample projects provided by OMNET++, starting with the
tictocproject, and the tutorials and examples provided in INET, including but not limited to the wireless examples, following the documentation and tutorials for OMNET++ and INET as needed. Pay particular attention to the definitions and parameter specifications in the
.nedfiles and how they integrate with the underlying C++ protocol implementations in the various included packages, e.g., implementation of the 802.11 WiFi protocols included in
- Use the built-in evaluation tools in OMNET++ - Open the INET example in the
inet/examples/wireless/hosttohost/folder, and run various configurations for 5 seconds each (probably using the "run until..." feature without animation), making sure to call
finish()after each run. In the
results/folder, you should see the scalar
.vecoutput files for each run. Following the documentation available, create a new Analysis
.anffile that analyzes the output files and creates plots or outputs scalars to visualize relevant performance statistics for each run, using the appropriate module and statistic name filters. Repeat your trials several times, re-configuring the network in each round by changing relevant parameters in the
.inifile, and create some attractive graphs to illustrate any interesting findings.
- Tasks for RP3:
- Configure your RP3 devices using open-source WiFi drivers and other networking tools - The WiFi chipset on the RP3 supports the open-source Broadcom WiFi drivers available online, as well as a variety of other Linux/Debian based networking tools (depending on what OS distribution you want on your RP3). Install the open-source drivers and verify they function by connecting your devices to each other or to other WiFi networks.
- Modify and instrumentation WiFi client and AP devices - Using available online resources, figure out how to modify the open-source firmware and instrument the code to collect and output a wide variety of statistics, initially at the level of standard pcap data but flexible enough to expand to additional metrics and statistics in the future. If possible, create configuration scripts that will allow you to re-configure relevant network parameters with ease.
- Create analysis and visualization capabilities - Instrumentation data is great, but it's not really useful unless you can analyze and visualize the results to get some useful intelligence about the wireless network operation and performance. Incorporate a selection of data analysis and visualization tools (either existing tools or new ones that you create) to allow creation of suitable plots of a variety of functions of your data (e.g., allowing smoothing of network performance traces). We can provide examples of what will be needed later, so you can try to choose the most suitable tools for your testbed. Once available, use your testbed and analysis tools to create a set of graphs that highlight interesting statistics that change meaningfully when you modify certain parameters in the WiFi firmware.
- Deliverables: Each student will submit a written summary of their efforts in the above tasks, including the following:
- A brief description of the steps you took in each of the assignment tasks including mention of any interesting observations,
- Interesting graphs/plots that you created in performing the assignment tasks including why the statistics shown are relevant, and
- A description of the graphs and the changes observed with the modified network parameters.
- Submission Instructions: Each student should submit a
- Grading Rubric: This assignment is worth 15 points total. Four (4) points are allocated to the detailed description of the steps taken in completing the assignment tasks, including a sufficient variety of example cases. One (1) point is allocated to discussion of interesting observations. Four (4) points are allocated to inclusion of graphs that show interesting or relevant statistics in a meaningful way (with appropriate axis labels, titles, legends, etc.). Six (6) points are allocated for description of results and discussion of how parameter changes influenced network performance. We reserve the right to take off points for presentation aspects, e.g., incorrect format, poor writing, etc.
- Due: January 31