Computer communication networks are among the most important and influential global infrastructures that humanity has created. CS 538 will explore the guts of the systems that have given rise to so much innovation, how networking is continuing to evolve to support new environments, and challenges in building networked systems that are simultaneously highly robust, efficient, flexible, and secure.
The course provides a foundational and current view of communication networks in order to enable students to perform high-quality research in the area. Topics will include Internet architecture and core protocols for congestion control, forwarding, naming, and routing; approaches to achieve reliability, scalability, and security; and design of data center networks, wireless networks, content delivery, and peer-to-peer networks. Material will range from the classics to the latest results, and from analytical foundations to systems design and real-world deployment.
The course consists of:
Each of these components of the course is discussed below, along with several other administrative issues.
Class sessions combine lectures, discussions of reading, and presentations by students.
In all cases, the class is focused around discussion. Please comment, question, and interact! I ask that you do not use laptops during class. This way, we'll all be maximally engaged.
Readings and reviews
Most classes will have one or two assigned readings, which we will all read prior to class and discuss during the class. Reading the papers is essential to get the most out of this course!
You must submit (on the class discussion site) a paper review for each of the assigned readings. A one-paragraph review is sufficient (longer is usually not better!). Your reviews should not summarize the paper or repeat the abstract — we all read the paper already. Instead your review should comprise at least two comments on the paper. Your comments should supply information that is not in the paper itself. For example, a comment might be:
- a criticism of the paper
- an advantage of the paper's design that was not discussed in the paper
- a suggestion of a way to extend or build on the paper in future work
- a response to another student's comment
Here is an example of a review that is not good:
The paper introduces Inter-Galactic Networking, or IGN, which solves the problem of sending messages between galaxies. The authors introduce a novel protocol that can send packets long distances via a distributed array of wormhole actuators. The paper evaluated the design with a simulation and showed a 57% improvement over IP. Then the authors analyzed the delivery probability of messages and tradeoffs between delivery time and cost of replication along multiple paths. Also, on page 7 the authors misspelled "ambidextrous". The first author's mother was a hamster and his father smelt of elderberries.
That review is bad because it summarizes the paper (old news: we already read the paper!) and gives no interesting new thoughts or information. Worse still, it's long. Here is an example of a review that is good:
(1) The simulation was relatively realistic, but didn't measure the total round-trip latency including wormhole setup time for a new destination. So it was hard to know the range of distances at which IGN works better than traditional Inter-Planetary Networking. If most communication is local, IGN would help for only a minority of traffic. (2) The theoretical analysis is particularly valuable because their statistical techniques can probably be applied to terrestrial delay-tolerant and underwater networks too.
Submit your review by 11:59 pm the night before the lecture for which the paper was assigned, by posting it on the class discussion site.
You are encouraged to read, think about, and comment on the other students' reviews, so that our time will be productive when we are all together discussing the papers. However, it would be prudent to at least jot down notes on your own thoughts independently, before you read the other students' comments. Your reviews should contain material that doesn't appear in the other students' reviews. (If you independently produce the same idea, that's fine. Copying other students' reviews, however, is obviously plagiarism.)
You may skip any 2 paper reviews over the course of the semester without affecting your grade. You may find this useful if you attend a conference, have a qualifying exam, etc. Except in extreme cases, the instructor will not grant additional free passes on the reviews.
Reviews that are submitted on time and meet the guidelines above will be given full credit. The overall review grade for the course may be determined based on a random sample of reviews over the semester.
The research project is one of the highlights of the course. The goal is to conduct novel research related to networking that, by the end of the semester, would be publishable as a short paper in a top quality workshop like HotNets, and when expanded to a full paper would be publishable in a top-quality conference.
Past projects in this class have been quite successful. Here are some projects that went on to be published (this list shows only the CS 538 student author for each publication; click the link for full citation showing all authors):
- Hilfi Alkaff et al., CrowdWatch: Enabling In-Network Crowdsourcing, Second Mobile Cloud Computing (MCC) Workshop, 2013
- Haohui Mai et al., Debugging the Data Plane with Anteater, SIGCOMM 2011
- Giang Nguyen et al., Slick Packets, SIGMETRICS 2011
- Shen Li et al., TAPA: Temperature Aware Power Allocation in Data Center with Map-Reduce, 2nd International Green Computing Conference, 2011
- Ashish Vulimiri et al., Resilient Routing in the Pathlet Architecture, demo at 9th GENI Engineering Conference, 2010
- Md. Yusuf Sarwar Uddin et al., RELICS: In-network Realization of Incentives to Combat Selfishness in DTNs, ICNP 2010
You may work alone or in groups of 2-3. Larger groups should discuss with the instructor first.
The steps in the research project are as follows:
- During the first two weeks of the course, you should think about projects you might like to do. The instructor will suggest some topics, but it's even better if you have ideas of your own.
- Project proposal: Submit a project proposal to the instructor via email. Your group should send a single email, with all group members cc'd. Simple plain text with no attachments is preferred. If you use an attachment, it must be plaintext or PDF. The specific deadline will be posted on the course schedule. The proposal should be at most a half page of text, describing each of the following:
- the problem you plan to address
- what will be your first steps to attack the problem
- what is the most closely related work, with at least 3 full academic paper citations (title, authors, publication venue, year) plus paper URLs, and why your proposed problem is different than those or why your proposed solution is better. You should actively search for related work, not just cite papers that the instructor mentions.
- if there are multiple people on your project team, who they are and how you plan to partition the work among the team
- Midterm presentation: Give a 5-minute presentation in class describing what problem you are solving, why existing approaches will not solve your problem, your solution approach, and your progress in your solution. You must demonstrate progress in your solution and the midterm presentation is worth 10% of your final course grade, so it would be good to start work on the project early!
- Final paper: This is a short paper suitable for submission to a workshop. It should clearly state the problem being solved, importance of problem, Related work, Your approach, evaluation, and results, Summary of conclusions, discussion of limitations, and future work. The paper should be at most 8 pages for one-person projects, and at most 12 pages for two-person projects. But you will be judged on results, not pagecount!
- Poster presentation: At the end of the course, during the final exam period, we will have a poster session. This will be an opportunity for the instructor to ask questions about your project, and also for other students and faculty in the department to see the cool work that you've done.
Dates for the above steps will be announced on the class schedule. In general, you are encouraged to meet with the instructor and seek advice on the project as often as you like.
Can a project be shared with another course's project or independent research? It is OK, and often a good idea, to work on a class project that complements your other ongoing projects and has a related topic. However, you should identify the piece of the larger project that you are working on for 538, with separate pieces for other courses. Check with your other instructors as well.
There will be 2 assignments during the semester. The first will be a homework introducing several tools for experimental networking research. The second will be a take-home assignment with written questions covering roughly the first 2/3 of the course. There will be no final exam, but we do have a poster session during the final exam period (see below).
- Project (40%)
- Proposal (5%)
- Midterm presentation (10%)
- Final paper and poster presentation (25%)
- Paper reviews (40%)
- Assignment 1 (10%)
- Assignment 2 (10%)
The overall score will be converted to a letter grade, with the following "worst-case" cutoffs:
- 93: A
- 90: A-
- 87: B+
- 83: B
- 80: B-
- 77: C+
- 73: C
- 70: C-
- 67: D+
- 63: D
- 60: D-
- 0: F
These are "worst-case" in the sense that the cutoffs might be lowered, but won't be raised.
There is no required textbook. If you haven't taken an undergraduate networking course, or if you need a refresher, you might take a look at standard books such as
- Peterson and Davie, Computer Networks
- Tanenbaum, Computer Networks
- Kurose and Ross, Computer Networking: A Top-Down Approach
There are two recent graduate-level books focusing on mathematical aspects of networking:
- R. Srikant and Lei Ying, Communication Networks An Optimization, Control and Stochastic Networks Perspective (draft available free online)
- S. Keshav, Mathematical Foundations of Computer Networking
Academic honesty and cheating
The author of all writing, ideas, and other work must be clearly credited. For example, if your presentation of a past paper uses some slides from the author, you must credit the author.
The standard penalty for a first instance of cheating is a grade of zero on the assignment in question, plus a reduction of one full letter grade in your final course grade.
For details, please see the departmental honor code.