Network Diagram

Course Information

CS 3516: Computer Networks
Time: B-Term, Tuesdays and Fridays, 2:00pm to 3:50pm
Location: WB229

Course Catalog Description

This course provides a broad view of computer networks. The course exposes students to all seven layers of OSI Reference Model while providing an introduction into newer topics such as wireless networking and Internet traffic concerns. The objective is to focus on an understanding of fundamental concepts of modern computer network architecture from a design and performance perspective. Topics covered include: physical layer considerations, network protocols, wide area networks, local area networks, wireless networks, switches and routing, congestion, Internet traffic and network security. Students will be expected to do systems/network programming and make use of simulation and measurement tools to gain an appreciation of current network design and performance issues. This course is also highly recommended for RBE and IMGD majors.

Teaching Staff

Course Instructor: Craig Shue
Email: cshue at
Office: Fuller Labs 236
Office Hours: Walk-ins welcome. Appointments also available, if desired.

Teaching Assistant: Evan Frenn
Email: ejfrenn at
Office: SA/TA Room, Fuller Labs A22
Office Hours: Tuesdays, 12pm-2pm; Wednesdays 2pm-3:30pm

Teaching Assistant: Russell Toris
Email: rctoris at
Office: Fuller Labs B16
Office Hours: Mondays, 9am-10:30am; Thursdays, 9am-11am

Senior Assistant: Richard Brown
Email: rpb111 at
Office: SA/TA Room, Fuller Labs A22
Office Hours: Mondays, 1pm-3pm; Wednesdays, 10am-12pm; Thursdays, 12pm-2pm; Fridays, 4pm-6pm

Lecture Schedule and Readings

This schedule is subject to change. Any changes will be announced in class with at least one week's advance notice, when possible. All readings are out of Kurose and Ross unless otherwise noted. All readings are due before class on the date indicated. Students are expected to have read the readings prior to arriving for class.

October 25
Topic:Objectives, Course Procedures, Introduction, Internet History
Reading:1.1, 1.2, 1.7
October 28
Topic:OSI Architecture, Sockets
Reading:1.5, 2.7
November 1
Topic:Architecture, Network Switching
Assignment:Wireshark Assignment due at 12:01am
November 4
Topic:Performance Measures, Intro. to Physical Layer
Reading:1.4, 1.2.3 2.1
Assignment:Program 1 due at 12:01am on Nov. 6 (extension)
November 8
Topic:Physical and Application Layer, HTTP
Reading:2.1, 2.2
November 11
Topic:DNS, Review
Reading:2.3, 2.4, 2.5
November 15
Topic:Intro. to Security, MIDTERM EXAM
November 18
Topic:Transport Layer, UDP, TCP
November 22
Topic:Reliable Transport, Sliding Windows
Assignment:Program 2 due at 12:01am
November 25
Thanksgiving Break
November 29
Topic:Distance Vector Routing
December 2
Topic:TCP Congestion Control Network Layer, Link State Routing
Reading:3.6, 3.7
December 6
Topic:Network Layer, Link State Routing, Ethernet, ARP
Reading:4.1-4.4, 5.1-5.6
December 9
Topic:Wireless Networks, Review
Assignment:Program 3 due at 12:01am
December 13

Course Policies and Procedures

The following represent the official policies and procedures for the course. Please review this information and, if you have questions, discuss them with the professor as soon as possible.

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 posted through these venues.


Required: Computer Networks, A Top-Down Approach, Fifth Edition, Kurose and Ross
Optional: Beej's Guide to Network Programming using Internet Sockets

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. This text will also be used in CS 4516 (Advanced Computer Networks) in D-Term, 2012.

Class Email

Students must check their email daily. The class email list is automatically created based on official registration information. The TAs and I will use this mailing list to send information to the class.

Questions about the course should be sent to cs3516-staff at The TAs and SA will monitor this list and answer detailed questions while I will handle all policy issues.

MyWPI and InstructAssist

This course will use some features of MyWPI (blackboard), such as the grade book. However, the course lectures and slides will primarily be managed through InstructAssist, a Web-based program that records in class participation. During lectures, I will use the Quiz Bowl and Activities features to evaluate comprehension and participation. After lecture, transcripts of these interactions will be available online. We are participating in the Blackboard 9.1 trial of MyWPI, which is available at

A note on security: InstructAssist is hosted on a separate server, This server, run by the instructor, uses a self-signed certificate for SSL to protect student records and account information. While self-signed certificates offer confidentiality of communication, they do not provide authenticity (you cannot be sure you are interacting with the correct server the first time you connect). To be secure, you must verify these certificates are authentic before accepting them. The authentic fingerprints of the Cerebro system certificate are:

  • SHA1: 09:99:19:24:68:A5:32:3E:7D:FD:EC:43:DB:D9:53:0F:00:23:D6:76
  • MD5: 61:A2:D3:B6:72:62:0E:35:9A:77:1A:DB:5F:99:2D:B0

You must also verify the authenticity of these fingerprints are legitimate. A copy of this syllabus is being distributed in class from the instructor, providing a trusted source of authenticity. Alternatively, you can view this Web page via SSL ( and verify the Web site is operated by the WPI Computer Science Department and that the URL reflects a Web page that only the instructor can edit.

Programming Assignments

The CS Department Documentation Format should be used when programming. Documentation rules will be discussed in class prior to the first programming assignment due date. All programming assignments are to be done alone or in teams designated by the instructor.

Program submission will be handled via the Web Turn-In system, available at Submissions must include a README file and a make file for compilation. All programs must compile and execute on one of the WPI Linux platforms. Programs that do not compile, or programs lacking commenting, will not be graded and will be assigned a score of 0.

Programming Languages

Students with a strong computer science background develop the ability to quickly pick up a new programming language as needed. This provides them the flexibility to adapt to changing work requirements and the ability to recognize the most efficient tool for the job. Students pick up these abilities through exposure to different programming languages, especially those that serve as the model for future languages.

In this course, we will be using C and/or C++. These languages are the basis of many common operating systems and network programs, with operating system APIs designed with these languages in mind. While most other languages have a networking component to them, they abstract the details and prevent students from realizing what is happening "under the covers."

Students without experience in these languages will have to develop it concurrently with learning network programming. This can be challenging, but is a good way to gain exposure to the language. The C Programming Language, by Kernighan and Ritchie, (ISBN: 0-13-110362-8) is the de facto standard guide to programming in C and provides a good reference in addition to the textbook.

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 appropriate note-taking application may be used in class.

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 be careful to 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

Assignments submitted late will not receive credit.

Programming projects may be submitted late, but with significant penalties. Programs that are late, where t represents the amount of time late, will have the following penalties:

0 minutes < t ≤ 1 day10% deduction from maximum grade before the rest of the grading begins
1 day < t ≤ 3 days30% deduction from maximum grade before the rest of the grading begins
3 days < t ≤ 5 days50% deduction from maximum grade before the rest of the grading begins
5 days < tno credit will be awarded

I exclude weekend days (Saturday and Sunday) and the Thanksgiving Holiday from the count of late days. However, programs are due at the exact time specified.

Any programs submitted after 4pm on Thursday, December 15, 2011 will not be graded.

Course Grading

To receive credit for the course, students must have a passing grade on 1) the programming assignment and 2) the examinations.

Wireshark Assignment10
Program 140
Program 240
Program 360
Midterm Exam80
Final Exam100
Participation and


Student Disabilities

If you need course adaptations or accommodations because of a disability, or if you have medical information to share with me, please make an appointment with me 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. In the case of academic dishonesty, I am required to report the incident to the Dean of Student Affairs. Further, my penalty for academic dishonesty is to assign a NR grade for the course.