Syllabus

Course Meeting Times

Lectures: 2 sessions / week, 1.5 hours / session

Goals

The goals of 6.829 are to train the next generation of networking researchers, practitioners, and engineers. In particular, our goals are:

  1. To understand the state-of-the-art in network protocols, architectures and applications.
  2. To understand how networking research is done.
  3. To investigate novel ideas in the area via semester-long research projects.

The past few years have seen a remarkable growth in the global network infrastructure. The Internet has grown from a research curiosity to something we all take for granted, and is becoming as essential as the ubiquitous telephone and utility networks. It has been able to withstand rapid growth fairly well and its core protocols have been robust enough to accommodate applications that were unforeseen by the original Internet designers, such as the World Wide Web.

How does this global network infrastructure work and what are the design principles on which it is based? In what ways are these design principles compromised in practice? How do we make it work better in today's world? How do we ensure that it will work well in the future in the face of rapidly growing scale and heterogeneity? And how should Internet applications be written, so they can obtain the best possible performance both for themselves and for others using the infrastructure? These are some issues that we will grapple with in this course. The course will focus on the design, implementation, analysis, and evaluation of large-scale networked systems.

Topics include internetworking philosophies, unicast and multicast routing, congestion control, network quality of service, mobile networking, router architectures, network-aware applications, content dissemination systems, network security, and performance issues. Material for the course will be drawn from research papers, industry white papers, and Internet RFCs.

Prerequisites

Undergraduate systems or networks course covering basic networking concepts (e.g., 6.033 or equivalent). Consent of instructor if you are an undergraduate.

If your networking background is rusty, you should page material in from one of these excellent books. In particular, I highly recommend the book by Peterson and Davie or the book by Kurose and Ross.

Knowledge of elementary probability (e.g., 6.041, 6.042, or equivalent) and some applied statistics will be helpful.

Enrollment may be limited.

If you feel you know enough about networking, an alternative subject to 6.829 is 6.824. 6.824 is a graduate equivalent of 6.829, but focuses on the engineering of computer systems. If you are a graduate (esp. PhD) student in systems or networking, we recommend that you take both classes during your graduate career at MIT. You must not take them both in the same term, though, since both have heavy-duty projects.

If you're an undergraduate and want practical experience with computer systems, consider 6.097, where you'll learn how to build a stripped-down functioning kernel from scratch.

Course Structure

Lectures will discuss assigned readings from the literature. 6.829 will emphasize the practical aspects of computer networks and the Internet, and will be centered around discussions and arguments! Class participation is therefore very important and will count towards your grade.

Grading

The largest contributor to the final grade is a significant course project with a research emphasis. At the end of the term, students will submit a conference-style paper describing the project and its key contributions/findings, and make a 20-minute presentation of their work at the end of the term. This will constitute 40% of your grade. Start early!

In addition, there will be a few problem sets assigned during the term. We expect to use the VINT network simulator, ns-2 for some of the problem set questions. In many cases, we expect ns-2 to be useful for your project too. We strongly encourage you to get familiar with ns-2 as soon as you can, by installing it on your machine and playing with it. While not comprehensive, the available documentation is quite good and adequate to start using it. Problem sets will constitute 25% of your grade.

We will have two in-class quizzes. These count for 30% of your final grade.

Finally, class participation and performance in surprise quizzes (we reserve the right to hand out a few of these during the term) counts for 5% of your grade.

In summary:

40% - Course project (paper + presentation)
25% - Problem sets
30% - Two quizzes
5% - Class participation, enthusiasm and energy-level!

Remember, this is a graduate class and grades should not be your primary or only motivator! What matters is how much you learn about research in networking and how much it excites you. We hope that this class and the project you work on meet that goal.