In this semester, the syllabus will put a major emphasize on so-called network algorithmics (a.k.a.
router/switch architectures and algorithms). We will study
algorithms
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
particular vendors.
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
(see
below).
Every student MUST fill in the course survey form and print out
and submit the "receipt page".
IEEE Transacting on Networking, 1993. (We
only talked about
Theorems 1 in class) WF2Q : Worst-case Fair Weighted Fair Queueing.
J. Bennett, H. Zhang
IEEE Infocom, 1996. (We talked about the scheduler and its
equivalence to WFQ under certain traffic conditions)
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
(if
possible) something (an algorithm, hardware/software system, or
protocol) that is novel and/or requires significant effort. This project
must be related to network algorithmics. I suggest that
you look at the
recent (online)
proceedings of conferences such as SIGMETRICS, SIGCOMM, ANCS, or IMC to
get
some ideas
about novel
network algorithmics. 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
instructor.
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.
Project milestones:
Form groups, submit 1-page project proposal: TBD
Final deadline - final project report submission: TBD
Demos: TBD
The project grade will be determined at the end of the semester
taking into account all previous milestones.
The part that you NEED NOT turn in: (solution): p15 problem 1-1, p232
problem 10-1, p267 problems 11-1, 11-2, 11-3, 11-5, 11-14, p397
problems 16-2, 16-3, 16-4, p300 problems 12-1, 12-2, 12-3, 12-4, 12-6,
12-7
All work for this class, except the group project, is to be done
individually. You are strongly urged to familiarize yourselves with the
GT Student
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
the
corresponding handout.