In this semester, the syllabus will put a major emphasize on
router/switch architectures and algorithms. We will study
and protocols used by modern routers/switches to do routing,
forwarding, address/prefix lookups, switching, scheduling, counting,
flow classification, flow monitoring and measurement, IP traceback and
other security functions, etc. Whenever possible, we focus on
general design principles rather than specific choices adopted by
The pre-requisite for this course is CS 4251 here or equivalent
(An undergarudate networking course that covers OSI/ISO 7 layers and
TCP/IP will suffice). However, this is a very heavy course
because I will cover advanced algorithm techniques and will NOT have
time to refresh you on undergraduate algorithms and data
structures. Whenever necessary, students are expected to make up
the gap on their own. The objective is to go well beyond the
basic level of understanding that is typically offered at an
undergraduate networking course.
The course also includes a research project. In groups of 3-4
students, you will produce some results that either demonstrate
creativity or significant effort.
Every student MUST fill in the course survey form and print out
and submit the "receipt page".
Perhaps the most exciting part of this course will be the term project.
In groups of 3-4 students, you will specify, design, and/or implement
possible) something (an algorithm and/or protocol) that is novel (never
been done before). It might be helpful for your project to be
related to the course materials, but that is not
necessary. Whatever excites you. I suggest that you look at the
proceedings of conferences such as SIGMETRICS, SIGCOMM, or IMC to get
network protocols and algorithms. So, start thinking
about project partners and cool project ideas!
There are some constraints however:
Your project proposal will need to be approved by the
Talk to the instructor whenever you have a concrete idea. Do not
wait for the first project milestone.
The project will need to be sufficiently complex and appropriate
for this course. Something like a simple client-server program or a
basic routing protocol would not be challenging enough.
On the other hand, it must not be too hard either.
It should be feasible for 3-4 students
to finish the project within a couple of months.
Form groups, submit 1-page project proposal: DUE ????
Final deadline - final project report submission: DUE ????
Demos: ??? through ???
The project grade will be determined at the end of the semester
taking into account all previous milestones.
Possible project ideas:
1. Read the paper "Exact GPS Simulation with Logarithmic
Complexity, and its Applications to an Optimally Fair Scheduler" by
Paolo Valente (U. Pisa) that appeared in Sigcomm 2004. URL:
Then think about whether the augmented data structure can be further
improved (say by a constant factor) by playing with variants of
2. Read the paper by Hao Wang and Bill Lin, "Pipelined van Emde Boas
Tree: Algorithms, Analysis, and Applications," IEEE Infocom,,
Anchorage, AK, May 7-11, 2007. Think about whether other
algorithms and data structures that are useful for computer networking
can be implemented in hardware (you do NOT need to actually implement
These are "paper-and-pencil" problems, based both on material
we cover at the lectures and on references that you will be
asked to study on your own. We will have several (tentative) such
during the semester. The midterm and final exams will include similar
problems with the homeworks.
Hints for problem 16-4, Sec. 4.2 of the following paper offered a
solution: Zhao, Q., Kumar, A., Wang, J., Xu, J., "Data Streaming
and Efficient Measurement of Traffic and Flow Matrices", Proc.
of ACM Sigmetrics 2005, Banff, Canada, June 2005,
All work for this class, except the group project, is to be done
individually. You are strongly urged to familiarize yourselves with the
Honor Code rules.
Specifically, the following is not allowed:
Copying, with or without modification, someone else's work
when this work is not meant to be publicly accessible (e.g., a
classmate's program or solution).
Submission of material that is wholly or substantially
identical to that created or published by another person or persons,
without adequate credit notations indicating authorship (plagiarism).
You are encouraged to discuss problems and papers with others as long
as this does not involve copying of code or solutions. Any public
material that you use (open-source software, help from a text, or
substantial help from a friend, etc...) should be acknowledged
explicitly in anything you submit to us. If you have any doubt about
whether something is legal or not please do check with the class
Instructor or the TA.
No late homeworks, assignments, or projects will be accepted.
The deadline for each homework/assignment/project will be specified at