CS6250: Advanced Computer Networks (focus on
router algorithms and architectures)
Fall 2007, College of Computing, Georgia Tech
Office: KCAB 1443
Office phone: 52168
Office hours: MW after class or by appointment
Email: jx at cc
Teaching Assistants: Bhumik Sanghavi (less than 5
hrs/wk)
Office hours: Fridays from 1 to 2
Email: sbhumik@cc
Annoucements
- No lecture on 10/24 (Wednesday)
- 1-page
project proposal due Oct. 22nd (Monday).
Table of Contents
- Class meeting times: MW 3:05-4:25
- Classroom: CCB 101
- In this semester, the syllabus will put a major emphasize on
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. 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".
- This course
reused some materials (including the choice of textbook) from last
year's CS6250 taught by Prof. Dovrolis with permissions.
Approximately half of the course material will come from the following
textbook:
by George Varghese, Morgan Kaufmann, 2005.
The other half will come from research papers (many by myself). We
will also cover parts of the following books (you don't need to
purchase them, but I highly recommend them if you are serious about
networking):
Additional good references on TCP/IP and web protocols:
- W. R. Stevens, TCP/IP Illustrated,
Volume 1: The Protocols, 1994.
- G. R. Wright and W. R. Stevens,
TCP/IP Illustrated, Volume 2: The Implementation, 1995.
- B. Krishnamurthy and J. Rexford,
Web Protocols and Practice: HTTP/1.1, Networking Protocols, Caching,
and Traffic Measurement, 2001
The following books are excellent references for UNIX network
programming, you may need them for the course project, and you will
find them useful for years to come.
The reading list will be updated every week, before we cover the
corresponding
topic.
First part: Router/switch architectures and
algorithms
Jun Xu, Mukesh Singhal, and Joanne
Degroat, "
A
Novel Cache Architecture to Support Layer-Four Packet Classification at
Memory Access Speeds,"
Proceedings of the IEEE INFOCOM 2000,
Tel-Aviv, Israel, March 2000.
Jun Xu and Mukesh Singhal, "
Cost-Effective
Flow Table Designs for High-Speed Internet Routers: Architecture and
Performance
Evaluation," I
EEE Transactions on
Computers, 51(9):1089--1099, September 2002.
- Week-2: Statistics counter array
architectures by Dr. Qi Zhao and multicast protocols by Prof. Mostafa
Ammar
Readings: Varghese chapter-16.2, references [SIPM02] and
[RV03] therein, and our
counter array paper , and SLIDES
(NEW !!!!!!)
- Weeks-3 and 4: Internet routing protocols
(OSPF etc. + BGP) by Prof. Nick Feamster (see slides below)
Readings: Varghese chapter-16 (I will cover the whole thing
in the fifth week).
http://www.cc.gatech.edu/~feamster/tmp/cs6250-fall2007-1.ppt
- Week-6: Packet
classification algorithms
Readings: Varghese chapter-12
- Week-7:
Readings:
- Week-8: Midterm on Oct 10th (Wed.)
in class
Readings:
- Week-9 and 10: Packet scheduling
algorithms and RED/AQM
Readings: Varghese chapter-14 (contents I covered in class and the
Virtual Clock scheduling algorithm)
- Week-11 and 12: Router algorithms for network measurements
(chapter-16, statistics counter array algorithms and trajectory
sampling ONLY)
Readings:
- Week-14 (thanksgiving week): Final exam review on Nov. 19th and
Project demo on Nov. 21st
Readings:
- Week-15: Project demo on Nov. 26th (Monday) and 30th
(Friday)
Readings:
- Week-16: Project demo on Dec. 3rd, Final
exam on Dec. 5th, 2007 in class.
Readings:
Perhaps the most exciting part of this course will be the term project.
In groups of 3-4 students, you will specify, design, and implement (if
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 absolutely not
necessary. Whatever excites you. I suggest that you look at the
recent (online)
proceedings of conferences such as SIGMETRICS, SIGCOMM, or IMC to get
some ideas
about novel
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
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: DUE Oct. 22nd, 2007
- Final deadline - final project report submission: DUE Dec.
5th in class
- Demos: Nov. 21st through Dec. 3rd
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:
http://www.sigcomm.org/sigcomm2004/papers.html#Exact_GPS
Then think about whether the augmented data structure can be further
improved (say by a constant factor) by playing with variants of
balanced trees.
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
it!).
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 (tentativ) such
homeworks
during the semester. The midterm and final exams will include similar
problems with the homeworks.
Homework-1 (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
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
Algorithms
for
Accurate
and Efficient Measurement of Traffic and Flow Matrices", Proc.
of ACM Sigmetrics 2005, Banff, Canada, June 2005,
p.350--361. ps pdf
- Midterm: 25%
- Final : 35%
- Project: 30%
- Homeworks: 10%
- 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.