Graduate Computer Networks

CS 6250, Georgia Tech Spring 2014

This project-based course will explore research topics in computer networking, primarily at the IP layer and above. You will gain exposure to burgeoning areas of computer networking and learn how to use the tools commonly used for networking research today.

Students will gain hands-on experience with various networking tools and techniques, and be well-equipped to perform research in the area of computer networking. Students will also gain exposure to and experience with current "tools of the trade" in computer networking that will aid them in preparing for a job in industry in this dynamic field.

You will be expected to read 2-3 papers a week. There are no required textbooks for the course.

Contact:
Prof. Nick Feamster
Klaus 3347
<my last name>@cc.gatech.edu

Class Location and Time:
Tuesdays and Thursdays, 4:35pm-5:55pm, CULC 102

Office Hours:
Thursdays, 6-7pm and by appointment

TAs:
Muhammad Shahbaz and Sean Donovan

Technology Requirements:
You must bring a laptop to every class. If you would like to take the course, but do not have access to a laptop, contact the instructor, as a small number of "loaner" laptops for class time may be available for this purpose.

Students are expected to abide by the Georgia Tech Honor Code. Honest and ethical behavior is expected at all times. All incidents of suspected dishonesty will be reported to and handled by the office of student affairs. You are to do all assignments yourself, unless explicitly told otherwise. You may discuss the assignments with your classmates, but you may not copy any solution (or part of a solution) from a classmate.

Course Format

The course will meet twice a week for eighty minutes per session. The course will be offered in a "flipped" style, with students watching video lectures before coming to class. Classroom time will be used for discussion of technical topics and research problems and in-class lab time.

The first half of each session will be devoted to paper and topic discussion. You should read the papers, watch the videos, and participate in online discussion before coming to class.

The last half of each session will be devoted to in-class activities and lab time.

Assignments for the course will be lab-based programming assignments, building off of the Mininet software developed at Stanford University, which can run networks in emulated environments on a single laptop.

Recommended Background

Students should have taken at least an undergraduate-level networking course and have programming experience in Python. Experience with virtual machines and other virtual networking environments may also be useful.

Getting Started

There are some useful videos available online; these might be a good starting point for many people: You may find the additional reading useful for introductory material:

Grading

Grading will be based on seven problem sets, three quizzes, and a semester-long project with a presentation and writeup. Participation will count for "fudge factors".

  • 50% Problem Sets
  • 30% Quizzes
  • 20% Final Project

Participation includes:

  • Watching the videos (as determined with in-class quizzes).
  • Participating in online discussion on Piazza.
  • Attending class.

The project can be done in groups of any size, subject to approval of the instructor. Important milestones:

  • One-page project proposal (due by February 4).
  • Project video/demo posted to YouTube.
  • Code release on github.
  • Project writeup (pre-publication draft)

Please watch all videos and read all papers before class. The teaching style will be "flipped", so class time will be devoted to discussion and questions.

Videos, assignments, and papers will be posted by the beginning of the corresponding week of class. Assignments will generally be due immediately before the subsequent assignment is released.

Date Modules Readings Assignment
January 7
January 9
January 14
January 16 VirtualBox and Mininet Setup
January 21
January 23 Mininet Topology
January 28
January 30
February 4
  • iSLIP

  • February 6 Buffer Sizing
    February 11
    • Quiz 1


    February 13
    February 18
    • Binomial congestion control
    • SR-RTP
    Parking Lot
    February 20
    February 25
    February 27 Bufferbloat
    March 4
    March 6
    • Quiz 2


    March 11
    March 13
    March 25 TCP Fast Open
    March 27
    April 1
    April 3
    April 8 MAC Learning in SDN
    April 10
    April 15
    April 17 Replicate DDoS Attack
    April 22
    • Quiz 3


    April 24
    • Project Presentations


    Course Resources

    Software Resources

    Readings

    • Cristian Lumezanu's SDN Reading List
    • SDN Bibliography (To be built during the course.)