CS619: Advanced Computer Networking

Fall 2004

Instructor: Paul Francis
4108 Upson, x5-9223
office hours Tues 1:45 - 2:45, Thurs 11:00 - 12:00

TA: Manpreet Singh, Upson 338 Phone: x5-7987
Manpreet's office hours are TBD

Classes: Tuesdays and Thursdays, 2:55 - 4:10PM; HO368
Course discussion mailing list (click here to join):  cs619-l@lists.cs.cornell.edu
Course staff mailing list:  cs619-staff-l@

Grading will be posted on CMS:  http://cms2.csuglab.cornell.edu/

CS 619 an advanced computer networking course targeted towards both graduate students and advanced non-graduate students. By and large the course operates as any "seminar" course, in that the lectures consist of presentations by the students themselves.  The topics, however, represent practical aspects of networking, covering both "fundamentals" (advanced topics that are no longer hot research items per se, but should be understood by researchers) and important "hot topics" (current research topics).  Morever, CS619 borrows from both the research literature and the IETF standards and operations literature.  This is important because certain advances in networking that occur outside the research community are never-the-less intelletually compelling.  It is also important for researchers who wish to do relevent work to understand what happens in the IETF and the operational communities (i.e. NANOG, RIPE, WIDE).
In order to accomodate both graduate and non-graduate students, CS619 offers two tracks of study, a research track and (for lack of a better term) a non-research track.  Both tracks require a substantial implementation project.  In the research track, however, the project will be executed in the style of research---the student must write a survey paper, and must write a peer-reviewed research paper (i.e. one that positions the paper among current literature) describing the project.  The peer review is done by the students themselves.  Non-research track students must produce a project report, but not a research paper per se.  In lieu of a research report, non-research track students must do an additional mini-project.

The research track is ideal for early graduate students who are looking for a field of study and want the experience of surveying an area within networking and "doing research", albiet in the small.  The non-research track is better for students, grad or otherwise, who want project experience and an advanced understanding of networking.  Either way, all  students must declare which track they will take by 9/7 and may not change afterwards.  The following table summarizes the requirements for the two tracks:

Before each class
This is a critical aspect of the class, without which you will gain little from the class.  Not only
must you read the papers, but prior to each class you must email the staff (cs619-staff-l@lists.cs.cornell.edu)  two paragraphs discussing the contributions and at least one major weakness of each of the two papers (one paragraph for each paper).  In addition, I may post a question or two on the website that you must additionally answer.

Lively class discussion is important, and will factor into your grade!
a Paper

Each lecture will consist of a formal presentation, and is expected to go into considerable depth by focusing on some aspect of the material and treating it thoroughly. We’ll be using Powerpoint slides (we'll make the slides available on the web). A presentation will normally last perhaps 30 to 45 minutes.  (Each presenter is required to meet with either me or the TA before class in order to discuss the slides.)  The lecture period will be followed by a broader discussion that I’ll lead (or the TA should I not be able to make class). During the discussion following each presentation, we’ll try to understand the broader context and importance of each result.  All students in the class are expected to participate.
TCP Proj
The goal of this project is to determine how breaking TCP's E2E reliability semantics effects real applications.  Each student will analyze one application.  The project is described here.

Students in the research track must pick an area of interest by this time (i.e. BGP performance, reliable multicast).  Students must also commit to one track or another by this time. 

Do a literature survey, and write a short survey paper (2-3 pages) describing the literature in the area you have selected..
Choose project
For the research track, you must describe the topic of your research (including of course the results you plan to produce and how you will produce them).  The research must have a project component.  For the non-research track, you must describe your project.  You must discuss these with me before this due date.

The project may be an implementation, a measurement study, a simulation, or any combination of these.

This initial full paper has to conform to the format and submission rules used by ACM Sigcomm, which is the major conference in this area. Many of the papers we’ll be reading were originally published in this conference.  Tips on preparing a paper appear appear here.
Initial Project Prototype

Non-research track students must demo a prototype of their project by this date.  The idea here is that you'll have a full month to correct faults and do performance testing.

The students in the research track will peer review each other's papers.  This review will be double blind.  The reviews of your paper will not contribute to your grade.  However, the quality of your reviews of other papers will contribute to your grade.
Demo Project
11/29 - 12/3
All students must demo their project during this week.  I will post a first-come-first-serve sign-up sheet on 11/22 for a demo slot.  Students must submit copies of their software on the day of their demo. 

Revise the research paper based on the reviews.  Also, write a rebuttal of the reviews.

Write a project report.  While not a research paper per se, this report should never-the-less succintly describe what problem is being solved, how it is solved, and must include a thorough performance evaluation. 
 * Non-research track students may have to present a paper if there are not enough research track students.  The goal is that no student presents more than once.


The following should be treated as a rough guideline.  I reserve the right to increase or decrease your overall grade by as much as 10% based on "intangibles".
Research Track
Non-research Track
  • 10% Paper summaries
  • 10% Class presentation and participation
  • 10% Mini-project 1
  • 10% Survey paper
  • 15% Project
  • 15% Final paper, first pass
  • 10% Review of papers
  • 20% Final paper + rebuttal, second pass
  • 10% Paper Summaries
  • 10% Class participation and presentation
  • 10% Mini-project 1
  • 15% Mid-term Project
  • 40% Final Project
  • 15%  Project Report


This course assumes a solid understanding of computer networking basics, particularly TCP, IP and addressing, and routing.  An undergraduate networking course equivalent to CS419 (formerly CS519), or equivalent experience, is required.

Other Details

Interactions between students:  Student interaction is allowed and encouraged.  You may discuss the papers and projects with each other, and use the course mailing list (cs619-l@lists) is provided to facilitate this discussion.  However, all turned in materials, including reports, emails, and software, must be authored by you.  Research track students must particularly avoid plagerism and "cooked" (falsified) data in your research papers.   Both of these are professionally unethical and can destroy your research career---I consider them way worse than cheating.  If portions of your software are from the public domain, please note this in your write-ups and your software comments.  If your projects contain significant ideas or contributions derived from discussions with other students, these must be acknowledged.

Mailing lists:  All materials will be handed-in via email, to cs619-staff-l@lists.  Class discussion as well as announcements from the staff will be posted to cs619-l.  You must join this latter list yourself.

Machines:  For heavy simulations, you can use any of  <linus, schroeder, sally, joecool, marcie, redbaron>.csuglab.cornell.edu.  You can access these from off campus (or on) with ssh, provided you have a CSUG account.

Lecture Syllabus:

How to prepare a CS619 presentation

See Ken Birman's description at the bottom of his CS614 course description.  (Except that his suggestion of up to 30-35 text slides and 10-15 picture slides for a 45-minute talk seems excessive to me!)

Credits:  This course used the structure of Ken Birman's CS614 as its starting point, and much of the course description is cut-and-paste directly from his CS614 course description.  Suggestions for the syllabus come from Bruce Davie, Jim Kurose, Vern Paxson, Jennifer Rexford, Pablo Rodriguez, Manpreet Singh, George Varghese

Last Updated:  8/25/04