Network Diagram

Course Information

CS 4516: Advanced Computer Networks
Time: C-Term, Tuesdays and Fridays, 1:00pm to 2:50pm
Location: Fuller Labs 320

Course Catalog Description

This course provides an in-depth look into computer networks. While repeating some of the areas from CS 3516, the goal is to go deeper into computer networks topics. This in-depth treatment in topics such as routing, congestion control, wireless layer protocols and physical signaling considerations will require the use of basic queuing theory and probability to provide a more formal treatment of computer networks performance. Other topics covered include: LAN and WLAN technologies, mobile wireless networks, sensor networks, optical networks, network security, intrusion detection and network management. Students will be expected to do more sophisticated network programming than seen in CS 3516 and will conduct laboratory activities involving measuring the performance of modern networking applications running on both wired networks and infrastructure wireless networks. Undergraduate credit may not be earned both for this course and for CS 513. Recommended background: CS 3013, CS 3516, and knowledge of probability. The course assumes a familiarity with operating systems including Unix or Linux, and significant experience with C/C++. This course will be offered in 2013-14 and in alternating years thereafter.

Teaching Staff

Course Instructor: Craig Shue
Email: please post via the class discussion board
Office: Fuller Labs 236
Office Hours: Walk-ins welcome (weekly schedule). Appointments also available, if desired.

Lecture Schedule and Readings

Roughly half of the readings for the course will come from the Kurose textbook that is required for the course. Another six readings will come from networking research papers. A zip archive of these papers is linked for each of these assigned readings.

Unless noted otherwise, the readings from the Kurose book are the same for both the 5th and 6th editions of the book. The 4th class uses content from the 6th edition of the book that is not available in the 5th edition. Students will be responsible for this material after it has been discussed in class, but that section will not be part of that day's reading quiz. In any case where the 5th and 6th edition of the book differ, the course will treat the 6th edition as authoritative.

For the first few class sessions, we will be rapidly reviewing content from CS 3516. Students may wish to skim the material and re-read sections that they do not clearly remember. In particular, the first class has a significant reading assignment associated with it; the instructor assumes most of this material will be familiar.

Please note that research papers tend to be formatted densely. Depending on the format, a single page may be equivalent to two textbook pages. Please plan accordingly.

Class NumberDateTopicReadingNumber Pages
1Jan. 17Objectives, Overview, Rapid Refresh of CS 3516Kurose 1.5, 4.4.1-4.4.441
2Jan. 21LAN: Switching Basics (CS 3516 Refresher)Kurose 6th Edition: 5.4.1, 5.4.2;
5th Edition: 5.4, 5.5
3Jan. 24LAN: Forwarding, Learning, VLANs, MPLS (CS 3516 Refresher)Kurose 6th Edition: 5.4.3, 5.4.4, 5.5;
5th Edition: 5.6, 5.8
4Jan. 28Data Center Networking, Packet Lifecycle RefresherKurose 6th Edition: 5.6, 5.7;
5th Edition: 5.9 (no equivalent for 5.6)
5Jan. 31Mobility Management, Mobile IPKurose 6.5, 6.617
6Feb. 4Mobility in Cellular Networks, Impact on Higher Level ProtocolsKurose 6.7, 6.810
7Feb. 7Network Management and InfrastructureKurose 9.1, 9.210
8Feb. 11Standard Network Management FrameworkKurose 9.315
9Feb. 14Software-Defined Networking: OpenFlow:
Enabling Innovation in Campus Networks
Paper 1: OpenFlow6
10Feb. 18Geolocation: From an IP Address to a Street Address:
Using Wireless Signals to Locate a Target
Paper 2: Marco Polo8
11Feb. 21New Internet Architectures: AddressingPaper 3: IPNL12
12Feb. 25New Internet Architectures: An Architecture for Content Routing
Support in the Internet
Paper 4: TRIAD12
13Feb. 28Measuring Networks: Measuring ISP Topologies with RocketfuelPaper 5: RocketFuel12
14Mar. 4Network Troubleshooting: EtherFuse: An Ethernet WatchdogPaper 6: Etherfuse12

Course Policies and Procedures

The following represent the official policies and procedures for the course. Please review this information and discuss any questions with the professor as soon as possible.


Required: Computer Networks, A Top-Down Approach, by Kurose and Ross. Both the Fifth and Sixth editions are acceptable.

Optional: Beej's Guide to Network Programming using Internet Sockets

Half of the readings will be assigned from the required textbook. Students will be assessed on their readings at the beginning of each class. To succeed, students will need to have the book.

Official Communication

Class discussion, class hand-outs, emails to the student's WPI email account, and the course Web pages are avenues for official course communication. Students are responsible for any information distributed through any of these venues.

Class Email

Students must check their email daily. The instructor and TAs will use email to send information to the class.

Students should post all questions about the course on the class discussion board. The teaching staff will use the discussion board to keep track of assistance requests. Further, posts on the discussion board will be available to all students, helping everyone learn from these questions.

If a question is of a more personal nature, students can choose to make the discussion topic visible only to the staff. This will allow students to have a private discussion with the staff while still allowing us to keep track of unresolved issues.


The MyWPI system used university-wide does not meet the course's needs. Instead, we will be using InstructAssist, a homebrew course management tool. This system will be used for posting grades, submitting projects, obtaining slides, scheduling project demonstrations, and posting partner evaluations. It is available at InstructAssist uses a WPI SSL certificate for authenticity and encryption to protect student records.

Course Projects

The course will have two projects: Project 0, which is a short sockets programming assignment due at the end of the first week, and the main Term Project, which will last the remaining 6 weeks of the course.

The term project will require students to demonstrate mastery of a particular computer networking area. All projects must include a significant programming component. Projects that simply combine existing tools in novel ways will not be considered acceptable for credit. Multiple teams may pursue the same project, though the staff will try to ensure there is at least one team on most of the projects. We will use a "first come, first served" approach to project topics.

Students may choose from one of two tracks of projects:

  • Track 1: "Replicate It:" In these projects, students will read a previously published networking research paper. The students will then replicate the basic project architecture, with occasional modifications or improvements, and perform similar analysis to the research authors. However, students must make at least one significant design change in the architecture and be able to defend this decision.

    Track 1 projects offer a bit more structure and students have a paper to reference when considering design decisions. However, by design, Track 1 projects will not make a novel contribution to the networking field. The results of Track 1 projects are unlikely to be publishable in a peer-reviewed networking venue.

    Students may not propose a new Track 1 project. All student-proposed projects must be a Track 2 (novel) project.
  • Track 2: "Innovate It:" In these projects, students will perform innovative research in the computer networking field. Starting with a project list from the instructor, students will explore new ideas in the field and try to build something new.

    Track 2 projects offer students a significant amount of freedom to design and the opportunity to make a novel contribution. Particularly well done Track 2 projects may be publishable in a peer-reviewed networking venue.

    A list of Track 2 project ideas will be distributed in class. With the prior approval of the instructor, students may propose an unlisted project as long as the work meets the novelty requirement.

The following are the available Track 1 project topics:

Each project will culminate in a term paper that is fashioned like the papers found in the network research literature. To make this problem tractable, it has been deconstructed into the following set of required deliverables (all page counts estimates assume dense page formatting). These deliverables must be completed in order (note, the "Introduction" section comes towards the end):

  • Project Proposal: The proposal will describe the work to be performed along with a detailed NABC (Needs, Approach, Benefits, Competition) analysis on the work. As part of the proposal, students are expected to ensure the work is novel (Track 2) or the required design deviation from the example paper (Track 1). In the proposal, students are expected to describe their basic methodology and the resources needed to complete the work. The research proposal will likely be at least two pages.
  • Methodology: The methodology write-up will describe the experiments, in detail, that the students will perform as part of the project. The methodology must be articulated to the extent that another researcher in the field could replicate the methodology without prior knowledge of the project. The methodology section will likely be at least one page.
  • Empirical Results: Students should describe the results of conducting their research experiments. This section should identify what exactly the outcomes are and whether the results are significant.

    If the results are not yet ready, the student may use placeholders. However, the results section must be written in detail such that results could simply be plugged into the writing/tables and be perfectly readable. This section will likely be at least a page.
  • Conclusion: Students should write a conclusion for the work, summarizing the contributions, the impact, and potential for follow-on work. This section will likely be at least half a page.
  • Introduction: Once the project is nearly finished, the students should write an introduction to the work, describing the motivations (likely reusing the NABC analysis in the proposal), the intended goals (again, from the proposal), highlights of the methodology (from the methodology section) and the key results of the work (from the results section). The introduction will likely be at least a page.
  • Abstract: The abstract will summarize the motivation, contributions, and key results of the work in a concise manner. The abstract will likely be at most three paragraphs.

Throughout the term, teams will be expected to participate in mentor meetings and status reports. Students that fail to do so will be penalized. These components are described further below.

Mentor Meetings

All students teams will be assigned a Teaching Assistant (TA) as a mentor. Each week, the TA will meet with the student teams for 30 minutes to check in with the group, give feedback on the team performance, and answer any questions the team may have. These meetings will be scheduled outside of class and each student is expected to attend the meetings.

Teams are expected to use their mentor meetings effectively. Students should come with specific questions and trouble-spots where they need help. Students are expected to meet as a team outside these mentor meetings to manage duties and internal progress; such activities should NOT be conducted during the mentorship meeting.

These small group meetings will largely replace traditional office hours in the course. While the TAs will be available for a few hours a week for low-level help, students are largely expected to be autonomous programmers in this course and we will be focusing on providing higher-level mentorship support.

Status Reports

Roughly twice a week (on class days), the student groups are expected to post a status report in the class discussion board. The post should be made as a new topic with the subject line: "Group [GROUP_NUMBER]: [PROJECT_LABEL]: Status Report [REPORT_NUMBER]". This report should be marked as viewable class-wide. The team's mentor and the course instructor may reply to the group with feedback on the status report and other students may view the post to compare progress. The status report should indicate whether all members of the group are contributing equally or not.

These reports are to help the students keep on track with the project by regularly checking in with their mentor on a formal schedule. They need not be long, but they should describe the group's activities, progress, and any problems encountered. This will allow the teaching staff to assist and provide advice in a timely fashion.

Project Deadlines

We will use the following deadlines for the project. All deadlines are at 11:59pm Eastern Time (ET).

  • Jan. 22: Project Teams Formed
  • Jan. 24: Team Status Report #1 Due
  • Jan. 26: Project 0 Due
  • Jan. 28: Team Status Report #2 Due
  • Jan. 31: Team Status Report #3 Due
  • Feb. 2: Proposal Due
  • Feb. 4: Team Status Report #4 Due
  • Feb. 7: Team Status Report #5 Due
  • Feb. 9: Methodology Section Due
  • Feb. 11: Team Status Report #6 Due
  • Feb. 14: Team Status Report #7 Due
  • Feb. 16: Results Section Due
  • Feb. 18: Team Status Report #8 Due
  • Feb. 21: Team Status Report #9 Due
  • Feb. 23: Conclusion Section Due
  • Feb. 25: Team Status Report #10 Due
  • Feb. 28: Team Status Report #11 Due
  • Mar. 2: Introduction/Abstract Due (full paper)

Course Participation and Professionalism

During lectures, students are to be focused on the course. Students should not use materials or electronic devices that would inhibit their attention to the course lecture and discussion. Laptops may only be used for note-taking purposes; transmission capabilities on these devices must be disabled and only an appropriate note-taking application may be used in class. Mobile devices, such as phones or PDAs, are not to be used in class. Significant penalities may be assessed for repeated infractions.

Students must treat each other and the teaching staff with respect at all times. Disagreement, debates, and criticism of ideas are healthy aspects of academic environments; however, students should avoid demeaning language or comments which can be taken personally. The ability to handle conflict professionally and work with a variety of people is an acquired skill, yet is increasingly important in technical careers.

Late Submission

Deliverables for the course project may be submitted late, but with a 10% penalty for each day the assignment is late (with the first day starting at 1 second late). However, Project 0 may not be submitted late and will be awarded no credit if not turned in on time. Finally, no submissions will be graded if they are supplied after 4pm on March 7, 2014.

Course Grading

The course projects and in-class quizzes form the basis for 90% of the course grade. The remaining 10% of the course grade will be attributed to in class participation and professionalism associated with the course. Details on each of these components are as follows:

  • Quizzes (45%): The will be a 10-15 minute quiz at the beginning of each class (except for the first day). The two lowest quiz scores will automatically be dropped, allowing for absences, illnesses, or simply "bad days". The quizzes will be short, typically only two questions long. The first question will cover material from reading due before class and will be more factual (and simplistic) in nature. The second question will be more application-oriented, requiring students to apply concepts from prior class discussions to new challenges.
  • Projects (45%): The course will have an introductory project in the first week. The remainder of the course will be devoted to a multi-part course project.
  • Participation and Professionalism (10%): Students are expected to be engaged in class, answer questions from the instructor and asking questions when needed. Students must regularly attend classes and show up to the mentorship meetings. Disregard for course policies or unprofessional conduct with students or the teaching staff will be penalized. This grading component is a signed value, allowing students to earn a negative score for abusive behavior.

Student Disabilities

If you need course adaptations or accommodations because of a disability, or if you have medical information that you need to share with the instructor, please make an appointment with the instructor as soon as possible. If you have not already done so, students with disabilities who believe that they may need accommodations in this class are encouraged to contact the Office of Disability Services (ODS) as soon as possible to ensure that such accommodations are implemented in a timely fashion. This office is located in the West St. House (157 West St) and their phone number is 508.831.4908.

Academic Honesty

The WPI Academic Honesty Policy describes types of academic dishonesty and requirements in documentation. We take these matters seriously. In the case of academic dishonesty, the instructor is required to report the incident to the Dean of Student Affairs. The instructor's penalty for academic dishonesty is to assign a NR grade for the course.