CS519 / 619: Advanced Computer Networking

Fall 2006

Instructor: Paul Francis
4108 Upson, x5-9223
office hours TBD

 

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


Syllabus is posted on CMS3:  http://cms3.csuglab.cornell.edu/ (sign in as "guest" to see the syllabus)


CS 519/619 an advanced computer networking course targeted towards both graduate students and advanced non-graduate students. By and large the course operates as a "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).  Moreover, 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 intellectually compelling.  It is also important for researchers who wish to do relevant work to understand what happens in the IETF and the operational communities (i.e. NANOG, RIPE, WIDE).
 
In order to accommodate both graduate and non-graduate students, CS 519/619 offers two tracks of study, a research track (called the 619 track) and (for lack of a better term) a non-research track (called the 519 track).  Both tracks require a substantial implementation project.  In the 619 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.  For 619 track students, the implementation may very well be a simulation.  The peer review is done by the students themselves. 

The 519 track students will participate in a single large project, which is a peer-to-peer file back-up and brokering system.  The system is targeted to the large and growing number of consumers that need to store and backup their photos and home videos.  The goal is to produce, by the end of the semester, a working alpha system that can be tested with real users.  Some students will stay on with the project next semester, at which point we should have a production beta system.  The project will be run as a proper software engineering project, with an intensive design phase, a short software development phase, and an extensive testing and integration phase. 

The 619 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", albeit in the small.  The 519 track is better for students, grad or otherwise, who want project experience and an advanced understanding of networking. 

Following is the schedule:


Track
Due
Date
Comments
Read
Papers
ALL Imme-diately 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 upload into CMS3 a short summary of each paper.  (Note:  The 619-track students must write a summary of both required papers.  The 519-track students only need to select one paper per lecture.)

The summary must answer the following questions:  What problem does the paper solve, and how?  What is the major contribution of the paper (relative to earlier contributions)?  In your opinion, what is the major strength and the major weakness of the paper?  Comment on the feasibility of the technique in a real network (would it have performance issues?  deployability issues?  complexity issues?  What is the existing practice, and is the technique really better than existing practice?  For 619-track students:  what would be good follow-on research? 

None of you should be spending more than two hours reading any given paper (which means that you certainly won't read it through cover-to-cover), and one hour may be more typical.  A well-written paper will have most of these questions answered directly.  You can start with the abstract and summary to get the basic idea,  go to the "contributions" part to see what the novel contributions are, go to the "prior work" section to see how it compares with previous work, and cherry-pick the body of the paper for the basic approach and results.  (Obviously, when you write a paper the reader ought to be able to do the same for your paper!) 

Having said that, throughout you need to be on the lookout for spin---these papers almost always overstate their contributions and even their results, and you need to be on the lookout for that.

Class
Discussion

Lively class discussion is important, and will factor into your grade!
Present
a Paper*
619
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 (and likewise ignoring other parts of the material).  A presentation will normally last perhaps 30 to 45 minutes.   Note that this means that the presenter won't have time for more than 10-15 slides per paper. I strongly advise you to come meet with me at least several days before your presentation to go over the slides.

The lecture period will be followed by a broader discussion that I’ll lead. During the discussion we'll try to answer the questions in the handed-in summaries.  All students in the class are expected to participate.

Choose research
area
9/5
Students in the 619 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. 
Survey
Paper
9/21
Do a literature survey, and write a short survey paper (2-3 pages) describing the literature in the area you have selected..
Choose research project 9/26
For the 619 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 519 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.
Initial
Research
Paper
11/7
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.
Peer
Review
11/14
The students in the 619 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 Implemen-tation 11/27 - 12/1
Demo the research implementation 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. 
Final
Research
Paper
11/31 Revise the research paper based on the reviews.  Also, write a rebuttal of the reviews.
Modular architecture 519 9/4 Written mainly by the Software VP, this document outlines the major modules and what they do.  This document will attach two names to each module:  one is the software engineer and the other is the tester.
User Functional Requirements 9/11 Written mainly by the Product Manager, this document specifies the user functions (i.e. exactly what the end user can do with this product).
Software Design 10/11 This document contains a highly detailed software architecture.  It specifies the language and development environment, the system requirements, and for each module: how it will run (as threads, processes, etc.), its exact interface (data structures, classes, message formats), its exact behavior, its system requirements, and how to test it. 
Software 10/23 Both the individual module software and the test software must be submitted at this time.  Note that if the software design document is well written, it is very easy to write the actual software.
Test results 10/30 This document gives the initial test results for each module.
Final (software and test results) 11/27 This document describes the final test results.  An integrated and working system will be demo'd.  All final software will be submitted.
Go live 12/4
Service is brought on-line.  Alpha testing starts...
 * 519 track students may have to present a paper if there are not enough 619 track students.  The goal is that no student presents more than once.

Grading

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".
619 track
519 Track
  • 10% Paper summaries
  • 20% Class presentation and participation
  • 20% Survey paper
  • 15% Final paper, first pass
  • 10% Review of papers
  • 25% Final paper + rebuttal, second pass, demo of implementation
  • 10% Paper Summaries
  • 10% Class participation and presentation
  • 20% software design
  • 15% midterm demo of software
  • 20% Test results
  • 25% Final software


Prerequisites

This course assumes a solid understanding of computer networking basics, particularly TCP, IP and addressing, and routing.  An undergraduate networking course equivalent to CS419 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.  619 track students must particularly avoid plagiarism 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.

Regarding materials for class presentations:  You may use any presentation materials you can find on the internet, including those generated by students last semester.  However, you must indicate, on every "borrowed" slide, where you got the material.  And you had better understand it...I will not be happy if you have borrowed material, and it is clear that you are not sure what the material means...

 

Machines:  For heavy simulations (619 track), 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.  519 project will be done on CSUG lab equipment.