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.
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 Number||Date||Topic||Reading||Number Pages|
|1||Jan. 17||Objectives, Overview, Rapid Refresh of CS 3516||Kurose 1.5, 4.4.1-4.4.4||41|
|2||Jan. 21||LAN: Switching Basics (CS 3516 Refresher)||Kurose 6th Edition: 5.4.1, 5.4.2;|
5th Edition: 5.4, 5.5
|3||Jan. 24||LAN: Forwarding, Learning, VLANs, MPLS (CS 3516 Refresher)||Kurose 6th Edition: 5.4.3, 5.4.4, 5.5;|
5th Edition: 5.6, 5.8
|4||Jan. 28||Data Center Networking, Packet Lifecycle Refresher||Kurose 6th Edition: 5.6, 5.7;|
5th Edition: 5.9 (no equivalent for 5.6)
|5||Jan. 31||Mobility Management, Mobile IP||Kurose 6.5, 6.6||17|
|6||Feb. 4||Mobility in Cellular Networks, Impact on Higher Level Protocols||Kurose 6.7, 6.8||10|
|7||Feb. 7||Network Management and Infrastructure||Kurose 9.1, 9.2||10|
|8||Feb. 11||Standard Network Management Framework||Kurose 9.3||15|
|9||Feb. 14||Software-Defined Networking: OpenFlow: |
Enabling Innovation in Campus Networks
|Paper 1: OpenFlow||6|
|10||Feb. 18||Geolocation: From an IP Address to a Street Address:|
Using Wireless Signals to Locate a Target
|Paper 2: Marco Polo||8|
|11||Feb. 21||New Internet Architectures: Addressing||Paper 3: IPNL||12|
Internet Architectures: An Architecture for Content Routing|
Support in the Internet
|Paper 4: TRIAD||12|
|13||Feb. 28||Measuring Networks: Measuring ISP Topologies with Rocketfuel||Paper 5: RocketFuel||12|
|14||Mar. 4||Network Troubleshooting: EtherFuse: An Ethernet Watchdog||Paper 6: Etherfuse||12|
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.
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.
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.
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 https://ia.wpi.edu/classes/2014_c_term_cs4516/. InstructAssist uses a WPI SSL certificate for authenticity and encryption to protect student records.
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
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:
- Active Internet Traffic Filtering (AITF): Students will
use the existing
AITF research paper as a basis for their work. The team should
plan to build much of the AITF infrastructure and perform an
analysis on its performance and effectiveness.
- IP Spoofing Prevention: Students will
use the existing
IP spoofing prevention research paper as a basis for their work. The team should
plan to build much of the anti-spoofing infrastructure and perform an
analysis on its performance and effectiveness.
- Name-Based Routing: Students will consider both the holistic architecture for name-based routing, along with the work focused on host-name routing. Students will select a portion of these combined works and implement it. They will then measure the effectiveness or performance of the approach.
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
- 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
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.
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.
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.
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.
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.
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
- 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.
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.
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.