• Checkpoint 1: Problem Statement, Preliminary Literature Review: Due December 1st, 11:59PM ET.

  • Checkpoint 2: Report Outline, Preliminary Code and Data Analysis Due: December 8th, 11:59PM ET.

  • Completed Project: Due: Monday, December 14th, 11:59 PM ET

1. Project Goals

  • Identify and articulate a specific, and concise problem statement in a nascent networks topic to research.

  • Build your skill set based on your understanding of core networking topics, and apply them to real-world networks problems, through implementation, data analysis or literature review.

  • Write a well-researched report of 4-5 pages on a topic, presented with a complete bibliography.

2. Overview

In this lab, your group will investigate a networks topic in depth, and should be able to convey through a small implementation, network measurement analysis or through a literature review of a problem in a nascent networks topic.

  • You can choose from a very broad range of projects, but your project must have a main focus on Network Systems. There should be a high-level question that you should frame and answer though your project.

  • You can come up with your own project idea or start with one of the suggestions below. Any of the following suggestions will function as just a starting point for a project idea, and are not fully investigated concepts. As a result, all of them will require some background investigative work and further definition of the problem you are solving and how you plan to solve it.

3. Getting Started

You should begin with a general idea of the problem you want to look at, then do one or more of the following:

  • a literature search of related work

  • related projects to get some ideas of what has been done

  • what some approaches are to solving your problem.

It is fine to do a project whose goal is to reproduce other researcher’s results, and/or to compare different, already developed, approaches to a particular problem.

You can work in groups of 2 to 3. If you would like to change your group membership, please send me an email with all of your group members.

3.1. Your Lab 6 Starting Point

Log into CS43 Github for our class and get the ssh-URL to your lab git repository. Follow along with the prompts below to SSH, create a lab directory and clone your lab repos.

# ssh into our lab machines
ssh yourusername@lab.cs.swarthmore.edu

# cd into your cs43/labs sub-directory and clone your lab2 repo
cd ~/cs43/labs
git clone [your-ssh-URL]

# change directory to list its contents
cd lab6-user1-user2

# ls should list the following contents
ls
 problem_statement.md final_report_outline.md code/ results/

You should find the following files and directory structure in your Github repositories.

  • There is no starting point code, since your group will decide on the kind of project you plan to implement.

  • There is a problem_statement.md that you is due for Checkpoint-1, and final_report_outline.md that is due for Checkpoint-2.

  • There are also two folders to organize your implementation and results that you generate. Feel free to add more folders to keep your Github repo organized.

4. Deliverables

  • Checkpoint 1: Complete and submit problem_statement.md.

  • Checkpoint 2: Start your final report outline. Please name your final report Report-username1-username2.pdf

  • Final Project: Your completed report, with results, discussion and references.

5. Project Ideas

There are three categories of projects that you can choose to implement.

5.1. Projects based on lab extensions

The projects in this list are based on lab extensions.

  • Since these might involve some new ways of working through labs, we can go over your design choices, and C functions you would need to get started with implementation.

  • With these projects, you can keep the report length shorter, to about 1-2 pages, describing your improvements on the specific lab, your design choices, and testing strategy.

  • Extend the threaded-concurrent server you’ve built in Lab 2 to run using event-driven concurrency with select.

  • Build Selective Repeat - reliable transport functionality to Lab 5.

  • Extend your GBN protocol in Lab 5, such that both lab5_sender and lab5_receiver can send and receive data, using simple HTTP requests and responses.

  • Build a producer-consumer threaded implementation of your GBN protocol in Lab 5, and measure the run-time performance compared to a non-threaded implementation.

5.2. Dataset Analysis based on Network Measurements

The projects in this list are based on data analysis of real-world network measurements. These projects will involve:

  • understanding and parsing the formats of these datasets

  • experimenting with how to visualize data

  • replicating existing results, or generating basic statistics of the measurements you’ve observed.

  • for this project, understanding and parsing the dataset, and reporting on the results can take up half of your report. The other half of your report should be dedicated to

    • why this problem is important, and

    • presenting a short discussion of your results: what the key observations that this dataset in related literature, and your results in context.

If you would like to investigate one of these topics, setup a meeting with me to getting started with the data analysis, and the types of results you plan to visualize before Checkpoint 2.

5.3. Literature Review Projects

The projects in this list involve an in-depth analysis of a specific research topic related to Networks. This would have little or no implementation and testing, but would involve an in-depth literature investigation of a topic and an in-depth written report on what you learned that would include an extensive bibliography (5 - 10 references).

  • The topics presented in the list are broad, as a part of your checkpoint 1 submission, you should narrow down the problem statement, to a specific aspect of these topics that you would like to investigate.

  • To do so, you might want to identify a topic that interests all group members, and perform a preliminary literature search using Google Scholar to find recent and relevant literature on this topic.

  • Since your report is primarily based on a literature review, or a case-study, your report should have the following components:

    • Motivation & Introduction

    • Problem Statement

    • Up to 3 topics that you investigate within this problem statement

    • Discussion & Concluding remarks

Some possible topics include (but are not limited to):

  • Privacy aspects of Internet-of-Things

  • Event-driven vs. Thread-driven Concurrency

  • Security aspects of DNSSEC, TLS, IP-SEC, Security in BGP, Public-Private Keys

  • End-to-End argument: Violations in System Design

  • Network Ossification: "Protocols set in stone and hard to change"

  • TCP fairness in the wild.

  • Differentiating Packets in the Network Core.

  • Network Neutrality: Arguments for and against, and perspectives.

  • Equitable Internet Access across the globe

  • Public vs. Private Internet (e.g. Google’s Network Infrastructure)

  • Software Defined Networking: Improvements, Deployment.

  • Special Topics: Data-Center Computing, Mobile Networks and Roaming

7. Grade

This project will count for 5% of your grade.

Your grade is not based on how novel your results are, but rather in your ability to convey your understanding of the problem, and how to properly frame and analyze your discussion or experimental results.

The final grade for for this is based on

  • the design and execution of the experiment (regardless of outcome) or report argument

  • the thoroughness and readability of the report.